Documentation

Complexitylib.BooleanAnalysis.PolynomialCorrelation.Internal.Blocks

Products of the block interpolation family #

The generators consist of one low-degree monomial per block, optionally multiplied by that block's majority. We only need their spanning property.

theorem Complexity.BooleanAnalysis.PolynomialCorrelation.Internal.lowSpan_map_mem {m : ℕ} {V : Type u_1} [AddCommMonoid V] [Module (ZMod 2) V] (L : (Finset (Fin (2 * m + 1)) → ZMod 2) →ₗ[ZMod 2] V) (W : Submodule (ZMod 2) V) (h : ∀ (a : Low (Fin (2 * m + 1)) m), L (monomial ↑a) ∈ W) {q : Finset (Fin (2 * m + 1)) → ZMod 2} (hq : q ∈ lowSpan m) :
L q ∈ W
theorem Complexity.BooleanAnalysis.PolynomialCorrelation.Internal.product_mem_span {k m : ℕ} (f : Fin k → Finset (Fin (2 * m + 1)) → ZMod 2) :
(fun (x : BlockCube k m) => ∏ i : Fin k, f i (x i)) ∈ Submodule.span (ZMod 2) (Set.range termEval)

The block product family spans every function on the input cube.