The degree of a Boolean function #
The degree deg(f) of a Boolean function is the total degree of its values 0 and 1 read in ℝ
(QueryComplexity.degree), that is, the least D such that f is a real combination of monomials
of at most D coordinates (QueryComplexity.degree_le_iff_mem_lowDegree) [NS94],
[BdW02]. Reading the values as the signs ±1 gives the same degree
(QueryComplexity.degree_eq_totalDegree_signVal), and so does negating the output or the input bits
(QueryComplexity.degree_not, QueryComplexity.degree_comp_not). A decision tree of depth d
computes a function of total degree at most d over any commutative ring, since a node querying
i computes (1 - xᵢ) f₀ + xᵢ f₁ from the functions f₀ and f₁ of its subtrees
(DecisionTree.comp_eval_mem_lowDegree), so deg(f) ≤ D(f)
(DecisionTree.degree_le_complexity). Parity, conjunction and disjunction of n bits have degree
n.
The general theory of BitString.totalDegree and the equivalence between
BitString.lowDegree ℝ ι D and Fourier degree on the cube live in
Complexity.Foundations.BooleanAnalysis.Degree.
Main definitions #
Cslib.QueryComplexity.degree: the degreedeg(f)of a Boolean function.
Main results #
Cslib.DecisionTree.comp_eval_mem_lowDegree: decision trees of depthdcompute functions of total degree at mostd.Cslib.QueryComplexity.degree_le_iff_mem_lowDegree:deg(f) ≤ Difff, read with values0and1, lies inlowDegree ℝ (Fin n) D.Cslib.QueryComplexity.degree_eq_totalDegree_signVal: the degree of a Boolean function does not depend on reading its values as bits or as signs.Cslib.DecisionTree.degree_le_complexity:deg(f) ≤ D(f).Cslib.QueryComplexity.degree_parity,Cslib.QueryComplexity.degree_threshold_self,Cslib.QueryComplexity.degree_threshold_one_right: parity, conjunction and disjunction ofnbits have degreen.
References #
Decision trees compute low-degree functions: a function of the output of a decision tree
of depth d is a combination of monomials of at most d coordinates, over any commutative
ring.
A function of the output of a decision tree has total degree at most the depth of the tree.
The degree deg(f) of a Boolean function: the degree of the unique multilinear real
polynomial that agrees with f on {0,1}ⁿ, reading the values of f as 0 and 1.
Instances For
deg(f) ≤ D exactly when f, read with values 0 and 1, is a real combination of monomials
of at most D coordinates.
Reading the values of a Boolean function as 0 and 1 or as the signs ±1 gives the same
degree: signVal b = 1 - 2 bitVal b.
deg(f) ≤ n.
Negating a Boolean function preserves its degree: bitVal (!b) = 1 - bitVal b.
Negating every input bit of a Boolean function preserves its degree.
A nonzero Fourier coefficient of f, read as signs, bounds deg(f) below.
Degree is at most decision tree complexity: deg(f) ≤ D(f).