Semantic bridge for quadratic ANFs #
The Reed--Muller argument is phrased recursively as a code. This file connects that code to canonical Boolean ANFs without enumerating functions. Only sparse evaluations and finite sums of monomials are used.
The constant coefficient of a recursively encoded affine polynomial.
Equations
- (UnrestrictedBooleanMul.N4.AffineCode.nil c).constantCoeff = c
- (a.cons head).constantCoeff = a.constantCoeff
Instances For
The linear coefficients of a recursively encoded affine polynomial.
Equations
- (UnrestrictedBooleanMul.N4.AffineCode.nil c).linearCoeff = fun (i : Fin 0) => i.elim0
- (a.cons head).linearCoeff = fun (i : Fin (n + 1)) => Fin.cases head a.linearCoeff i
Instances For
Encode an affine polynomial from its constant and linear coefficients.
Equations
- UnrestrictedBooleanMul.N4.AffineCode.ofCoeffs 0 x✝ x_3 = UnrestrictedBooleanMul.N4.AffineCode.nil x✝
- UnrestrictedBooleanMul.N4.AffineCode.ofCoeffs n.succ x✝ l = (UnrestrictedBooleanMul.N4.AffineCode.ofCoeffs n x✝ fun (i : Fin n) => l i.succ).cons (l 0)
Instances For
Convert an eight-variable affine code to its squarefree Boolean ANF.
Equations
- a.anf = a.constantCoeff • 1 + ∑ i : Fin 8, a.linearCoeff i • UnrestrictedBooleanMul.X i
Instances For
The ANF agrees on every Boolean input with a quadratic code.
Equations
- UnrestrictedBooleanMul.N4.QuadraticSemantic p = ∃ (q : UnrestrictedBooleanMul.N4.QuadraticCode 8), ∀ (x : Fin 8 → UnrestrictedBooleanMul.F₂), q.eval x = UnrestrictedBooleanMul.eval p x
Instances For
The subspace of ANFs representing quadratic Boolean functions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Retain only the coefficients of squarefree monomials of degree at most two.
Equations
- UnrestrictedBooleanMul.N4.lowReconstruct p = ∑ s : UnrestrictedBooleanMul.Monomial 8, if s.vars.card ≤ 2 then p.coeff s • UnrestrictedBooleanMul.monomial s.vars else 0
Instances For
Evaluate an ANF on the indicator assignment of a finite set.
Equations
Instances For
Extract the coefficient supported on the specified pair of variables.
Equations
Instances For
The constant-one quadratic code in eight variables.
Equations
- UnrestrictedBooleanMul.N4.quadraticOneCode = (UnrestrictedBooleanMul.N4.AffineCode.ofCoeffs 8 1 fun (x : Fin 8) => 0).toQuadratic
Instances For
The quadratic expression 1 + p + q + g used for the zero-zero fiber.
Equations
Instances For
The quadratic expression q + g used for the zero-one fiber.
Equations
- UnrestrictedBooleanMul.N4.fiber01 q g = q.add g
Instances For
The quadratic expression p + g used for the one-zero fiber.
Equations
- UnrestrictedBooleanMul.N4.fiber10 p g = p.add g