Documentation

LeanPool.BooleanMultiplication.Mul

Binary polynomial multiplication targets #

noncomputable def UnrestrictedBooleanMul.aVar (n : ℕ) (i : Fin n) :
ANF (2 * n)

The variable a_i among the 2n multiplication inputs.

Equations
Instances For
    noncomputable def UnrestrictedBooleanMul.bVar (n : ℕ) (j : Fin n) :
    ANF (2 * n)

    The variable b_j among the 2n multiplication inputs.

    Equations
    Instances For
      @[simp]
      theorem UnrestrictedBooleanMul.aVar_mem_affine (n : ℕ) (i : Fin n) :
      aVar n i ∈ affine (2 * n)
      @[simp]
      theorem UnrestrictedBooleanMul.bVar_mem_affine (n : ℕ) (j : Fin n) :
      bVar n j ∈ affine (2 * n)
      noncomputable def UnrestrictedBooleanMul.mulCoefficient (n s : ℕ) :
      ANF (2 * n)

      Coefficient s of the product of two n-term binary polynomials.

      Equations
      Instances For
        noncomputable def UnrestrictedBooleanMul.Mul (n : ℕ) :
        Fin (2 * n - 1) → ANF (2 * n)

        Binary n-term polynomial multiplication in Boolean ANF.

        Equations
        Instances For
          noncomputable def UnrestrictedBooleanMul.mulTarget (n : ℕ) :

          The linear target space spanned by all multiplication coordinates.

          Equations
          Instances For
            noncomputable def UnrestrictedBooleanMul.mulAmbient (n : ℕ) :

            Affine functions plus the multiplication target.

            Equations
            Instances For

              Coefficient projection onto a chosen finite family of squarefree monomials.

              Equations
              Instances For
                theorem UnrestrictedBooleanMul.coefficient_eq_zero_of_mem_affine {m : ℕ} {p : ANF m} (hp : p ∈ affine m) (s : Monomial m) (hs : s.vars.card = 2) :
                p.coeff s = 0
                theorem UnrestrictedBooleanMul.coefficientProjection_kills_affine {m d : ℕ} (anchor : Fin d → Monomial m) (degree_two : ∀ (i : Fin d), (anchor i).vars.card = 2) :