Separated-monomial progress measures #
Schnorr's additive-complexity measure is the largest size, minus one, of a set of target monomials separated inside the entire polynomial support. A set is separated when no support monomial other than the chosen pair divides the product of two chosen monomials.
This file separates the finite combinatorics from polynomial substitution.
Pullback is the exact interface needed from one enrichment step: a separated
set after substitution can be pulled back to a separated set before
substitution, losing at most loss elements. SubstitutionPullbacks then
turns addition pullbacks of loss one and multiplication pullbacks of loss zero
into the generic reverse-substitution Progress.Measure.
Exponent vectors for monomials over an arbitrary variable type.
Equations
- Algebraic.Fusion.Arithmetic.Progress.Separated.Exponent Variable = (Variable →₀ ℕ)
Instances For
selected is separated inside ambient: whenever an ambient monomial
divides the product of two selected monomials, it is one of that pair.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every separated candidate supplies a lower bound on the separation number.
The separation number never exceeds support cardinality minus one.
If the entire support is separated, its separation number is exactly its cardinality minus one.
A singleton support is separated.
Separation number of a natural-coefficient polynomial. Coefficients are irrelevant; only exact support matters.
Equations
Instances For
A certificate that separated sets can be pulled back across one support transformation with a bounded loss in cardinality.
Instances For
A pullback certificate implies the corresponding separation-number inequality.
Exact support pullbacks required for the two reverse substitutions. This is the polynomial-specific seam in Schnorr's argument; the circuit telescope does not depend on how these certificates are established.
- add (variableCount : ℕ) (polynomial : MvPolynomial (Fin (variableCount + 1)) ℕ) (left right : Fin variableCount) : Pullback polynomial.support ((MvPolynomial.bind₁ fun (i : Fin (variableCount + 1)) => Fin.lastCases (MvPolynomial.X left + MvPolynomial.X right) MvPolynomial.X i) polynomial).support 1
- mul (variableCount : ℕ) (polynomial : MvPolynomial (Fin (variableCount + 1)) ℕ) (left right : Fin variableCount) : Pullback polynomial.support ((MvPolynomial.bind₁ fun (i : Fin (variableCount + 1)) => Fin.lastCases (MvPolynomial.X left * MvPolynomial.X right) MvPolynomial.X i) polynomial).support 0
Instances For
The separated-monomial measure obtained from exact enrichment pullbacks. Addition costs one and multiplication is free.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Schnorr's separation number lower-bounds the number of additions once the two exact support-pullback lemmas have been supplied.
If the entire target support is separated, all but one target monomials must be paid for by additions.