Minsky–Papert symmetrization #
Averaging a function on the cube over each layer of inputs of a given weight turns it into a
function of the weight. For a function of degree at most D this function of the weight is a
univariate polynomial of degree at most D [MP69]
(BitString.exists_natDegree_le_eval_eq_layerAverage): the monomial of a set S of s
coordinates is 1 on (n - s).choose (k - s) of the n.choose k inputs of weight k, an average
of k.choose s / n.choose s, and k.choose s = k (k - 1) ⋯ (k - s + 1) / s! is a polynomial of
degree s in k. Conversely, a univariate polynomial of degree D evaluated at the weight has
degree at most D on the cube (BitString.eval_weight_mem_lowDegree).
Substituting into a function of degree at most D a map whose output bits each have degree at most
1 keeps the degree at most D (BitString.comp_mem_lowDegree), so restricting a function to
the cube spanned by disjoint blocks of coordinates, as in block sensitivity, and then symmetrizing
reduces questions about the degree of a Boolean function to univariate polynomials.
Main definitions #
Cslib.BitString.layerAverage: the average of a function over the inputs of weightk.
Main results #
Cslib.BitString.exists_natDegree_le_eval_eq_layerAverage: Minsky–Papert symmetrization.Cslib.BitString.eval_weight_mem_lowDegree: a polynomial in the weight has degree at most its degree.Cslib.BitString.comp_mem_lowDegree: substituting functions of degree at most1preserves degree.
References #
Substitution preserves degree: if every output bit of φ, read in R, is a function of
degree at most 1, then f ∘ φ has degree at most that of f.
A univariate polynomial evaluated at the weight has degree at most its degree on the cube.
The average of f over the inputs of weight k.
Instances For
The monomial of a set of s coordinates averages to k.choose s / n.choose s over the inputs
of weight k ≤ n.
Minsky–Papert symmetrization: the layer averages of a function of degree at most D are
the values at the weights of a univariate polynomial of degree at most D.