Documentation

LeanPool.BooleanMultiplication.N4.Degree

Homogeneous degree and seed predicates #

The Boolean ANF multiplication lowers degree when variables repeat, so the formal development records degree by coefficients rather than by a polynomial quotient API. This file supplies the high-part predicates used by the seed and defect arguments.

Keep exactly the monomials of cardinality d.

Equations
Instances For

    Linear projection onto the squarefree monomials of exactly the specified degree.

    Equations
    Instances For

      The ANF has no monomial above degree d.

      Equations
      Instances For
        theorem UnrestrictedBooleanMul.N4.DegreeLE.mul {m d e : ℕ} {p q : ANF m} (hp : DegreeLE d p) (hq : DegreeLE e q) :
        DegreeLE (d + e) (p * q)

        Boolean ANF degree is subadditive under multiplication. This uses only the support inclusion for monoid algebras and card (s ∪ t) ≤ card s + card t; repeated Boolean variables can lower, but never raise, the degree.

        theorem UnrestrictedBooleanMul.N4.DegreeLE.mono {m d e : ℕ} {p : ANF m} (hp : DegreeLE d p) (hde : d ≤ e) :

        There is a genuinely high monomial (degree at least three).

        Equations
        Instances For

          The degree-four homogeneous component vanishes.

          Equations
          Instances For

            A seed whose only possible nonzero high component is cubic.

            Equations
            Instances For

              The fourth gate has a nonzero component of degree greater than two.

              Equations
              Instances For

                The fourth gate has no degree-four homogeneous component.

                Equations
                Instances For

                  The linear subspace of Boolean ANFs of degree at most two.

                  Equations
                  Instances For
                    theorem UnrestrictedBooleanMul.N4.affine_coeff_zero_of_two_le {m : ℕ} {p : ANF m} (hp : p ∈ affine m) (s : Monomial m) (hs : 2 ≤ s.vars.card) :
                    p.coeff s = 0
                    theorem UnrestrictedBooleanMul.N4.affine_coeff_zero_of_three_le {m : ℕ} {p : ANF m} (hp : p ∈ affine m) (s : Monomial m) (hs : 3 ≤ s.vars.card) :
                    p.coeff s = 0
                    theorem UnrestrictedBooleanMul.N4.wireSpace_le_quadratic_of_prefix {m r j : ℕ} (g : Fin r → ANF m) (hgate : ∀ (i : Fin r), ↑i < j → g i ∈ quadraticANFSpace m) :
                    theorem UnrestrictedBooleanMul.N4.inf_unchanged_of_first_high (V A : Submodule F₂ (ANF 8)) (g : ANF 8) (hV : V ≤ quadraticANFSpace 8) (hA : A ≤ quadraticANFSpace 8) (hg : g ∉ quadraticANFSpace 8) :
                    (V ⊔ F₂ ∙ g) ⊓ A = V ⊓ A

                    Adjoining a first high-degree vector to an entirely quadratic state cannot create a new direction in a quadratic ambient target.

                    theorem UnrestrictedBooleanMul.N4.first_high_gate_not_useful (C : Circuit 8 8) (j : Fin 8) (hprev : ∀ (i : Fin 8), ↑i < ↑j → C.gate i ∈ quadraticANFSpace 8) (hhigh : HasNonzeroHigh (C.gate j)) :

                    If the normalized seed were quadratic, every later gate would remain quadratic: the first high suffix gate would be a forbidden second non-useful gate.

                    Zero defect means the entire final wire space lies in Aff + T; in particular every gate output has degree at most two.