Low-degree functions over ZMod 3 -- definitions #
Smolensky's lower bound approximates circuits by low-degree polynomials over
the field with three elements. This module avoids formal polynomials: it works
with functions {0,1}^n → ZMod 3 directly, reading each input bit as 0 or 1
in ZMod 3. The monomial of a set S of coordinates is the function
x ↦ ∏_{i ∈ S} x_i, and a function has degree at most D when it is a
ZMod 3-linear combination of monomials of at most D coordinates. On Boolean
inputs every polynomial function is multilinear, so this is the usual notion of
degree for functions on the Boolean cube.
Main definitions #
Smolensky.bitVal— a bit read as0or1inZMod 3Smolensky.monomial— the functionx ↦ ∏_{i ∈ S} x_iSmolensky.lowDegree— the submodule of functions of degree at mostD
The monomial of a set S of coordinates: the product of the selected input
bits, read in ZMod 3. The empty monomial is the constant 1.
Equations
- Complexity.Smolensky.monomial S x = ∏ i ∈ S, Complexity.Smolensky.bitVal (x i)