Documentation

Complexitylib.Algebraic.LowerBound.Fusion.Arithmetic.Progress.Separated.Closure.Weighted.Exact

Weighted Schnorr closure over exact-support coefficient semirings #

For any zero-sum-free commutative semiring without zero divisors, polynomial support obeys the same addition, multiplication, and substitution rules as it does over Nat. We therefore assign a polynomial the weighted Schnorr value of the natural coefficient-one polynomial with the same support and transport all local enrichment laws across the cross-coefficient support theorem.

This gives one reusable addition lower-bound theorem for arbitrary named constants over every exact-support coefficient semiring. Nat and ℚ≥0 are canonical instances.

noncomputable def Algebraic.Fusion.Arithmetic.Progress.Separated.Closure.Weighted.Exact.canonical {R : Type u_1} [CommSemiring R] {Variable : Type u_2} (polynomial : MvPolynomial Variable R) :
MvPolynomial Variable ℕ

Natural coefficient-one representative of a polynomial's support.

Equations
Instances For
    @[simp]
    theorem Algebraic.Fusion.Arithmetic.Progress.Separated.Closure.Weighted.Exact.canonical_support {R : Type u_2} [CommSemiring R] {Variable : Type u_1} (polynomial : MvPolynomial Variable R) :
    (canonical polynomial).support = polynomial.support
    noncomputable def Algebraic.Fusion.Arithmetic.Progress.Separated.Closure.Weighted.Exact.value {R : Type u_1} [CommSemiring R] {Variable : Type u_2} (polynomial : MvPolynomial Variable R) :

    Weighted Schnorr value transported through monomial support.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      theorem Algebraic.Fusion.Arithmetic.Progress.Separated.Closure.Weighted.Exact.value_eq_of_support_eq {R : Type u_2} [CommSemiring R] {Variable : Type u_1} {left right : MvPolynomial Variable R} (supportEqual : left.support = right.support) :
      value left = value right

      The transported value depends only on support.

      @[simp]
      theorem Algebraic.Fusion.Arithmetic.Progress.Separated.Closure.Weighted.Exact.value_X {R : Type u_1} [CommSemiring R] [Nontrivial R] {variableCount : ℕ} (coordinate : Fin variableCount) :
      value (MvPolynomial.X coordinate) = 0

      A single variable has zero transported value.

      Reverse-addition variable images have the same support over R and Nat.

      Reverse-product variable images have the same support over R and Nat.

      Natural zero-or-one weight recording whether a scalar is nonzero.

      Equations
      Instances For

        A scalar and its zero-or-one natural representative have equal constant support.

        theorem Algebraic.Fusion.Arithmetic.Progress.Separated.Closure.Weighted.Exact.add_substitution_le {R : Type u_1} [CommSemiring R] [Nontrivial R] [NoZeroDivisors R] [ExactSupport.ZeroSumFree R] {variableCount : ℕ} (polynomial : MvPolynomial (Fin (variableCount + 1)) R) (left right : Fin variableCount) :
        value ((MvPolynomial.bind₁ fun (i : Fin (variableCount + 1)) => Fin.lastCases (MvPolynomial.X left + MvPolynomial.X right) MvPolynomial.X i) polynomial) ≤ value polynomial + 1

        Reverse addition grows the transported weighted value by at most one.

        theorem Algebraic.Fusion.Arithmetic.Progress.Separated.Closure.Weighted.Exact.mul_substitution_le {R : Type u_1} [CommSemiring R] [Nontrivial R] [NoZeroDivisors R] [ExactSupport.ZeroSumFree R] {variableCount : ℕ} (polynomial : MvPolynomial (Fin (variableCount + 1)) R) (left right : Fin variableCount) :
        value ((MvPolynomial.bind₁ fun (i : Fin (variableCount + 1)) => Fin.lastCases (MvPolynomial.X left * MvPolynomial.X right) MvPolynomial.X i) polynomial) ≤ value polynomial

        Reverse multiplication cannot increase the transported weighted value.

        theorem Algebraic.Fusion.Arithmetic.Progress.Separated.Closure.Weighted.Exact.constant_substitution_le {R : Type u_1} [CommSemiring R] [Nontrivial R] [NoZeroDivisors R] [ExactSupport.ZeroSumFree R] {variableCount : ℕ} (polynomial : MvPolynomial (Fin (variableCount + 1)) R) (scalar : R) :
        value ((MvPolynomial.bind₁ fun (i : Fin (variableCount + 1)) => Fin.lastCases (MvPolynomial.C scalar) MvPolynomial.X i) polynomial) ≤ value polynomial

        Substitution of any scalar, zero included, cannot increase the transported weighted value.

        Weighted Schnorr closure as an addition-cost progress measure over an exact-support coefficient semiring.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          Ordinary support separation is bounded by the transported value.

          theorem Algebraic.Fusion.Arithmetic.Progress.Separated.Closure.Weighted.Exact.circuit_addition_lowerBound {R : Type u_2} [CommSemiring R] [Nontrivial R] [NoZeroDivisors R] [ExactSupport.ZeroSumFree R] {K : Type u_1} {n : ℕ} (constant : K → R) (target : MvPolynomial (Fin n) R) (circuit : Circuit (Arithmetic.signature K) n 1) (constructs : { inputCount := n, inputs := MvPolynomial.X, target := target }.Constructs circuit (General.polynomialInterpretation constant (Fin n))) :

          Weighted Schnorr closure lower-bounds additions over every exact-support coefficient semiring.

          Ordinary support separation is an addition lower bound over every exact-support coefficient semiring.

          theorem Algebraic.Fusion.Arithmetic.Progress.Separated.Closure.Weighted.Exact.circuit_addition_lowerBound_of_isSeparated {R : Type u_2} [CommSemiring R] [Nontrivial R] [NoZeroDivisors R] [ExactSupport.ZeroSumFree R] {K : Type u_1} {n : ℕ} (constant : K → R) (target : MvPolynomial (Fin n) R) (targetSeparated : IsSeparated target.support target.support) (circuit : Circuit (Arithmetic.signature K) n 1) (constructs : { inputCount := n, inputs := MvPolynomial.X, target := target }.Constructs circuit (General.polynomialInterpretation constant (Fin n))) :

          Full-support Schnorr theorem over every exact-support coefficient semiring.