Low-individual-degree polynomials for the low individual degree test #
Multivariate low-degree polynomial objects and their restrictions.
Note: this module contributes declarations to the comparator statement closure
of mainFormal, which must elaborate in the same environment as the
Mathlib-only Challenge.lean. Keep the full import Mathlib; do not narrow
it. See docs/comparator.md, "Environment alignment".
Renaming a polynomial along the old-coordinate inclusion does not introduce the appended last coordinate.
Evaluation of the stored multivariate polynomial on a coded point.
Equations
- g.toFun = MIPStarRE.LDT.evalPolynomialModel params g.poly
Instances For
The stored polynomial indeed certifies low individual degree.
The constant polynomial with value a.
Equations
- MIPStarRE.LDT.Polynomial.const params a = { poly := MvPolynomial.C (MIPStarRE.LDT.decodeScalar a), lowIndividualDegree := ⋯ }
Instances For
Equations
- MIPStarRE.LDT.Polynomial.instInhabited = { default := MIPStarRE.LDT.Polynomial.const params default }
The constant polynomial evaluates to its prescribed value.
The total degree of a low-individual-degree polynomial is bounded by
m * d.
A low-individual-degree polynomial with degree bound 0 is constant.
A low-individual-degree polynomial with degree bound 0 has the same value
at every two points.
Renaming a low-degree polynomial along the coordinate embedding preserves the
low-individual-degree bound in m + 1 variables.
Extend a global polynomial to the slice at height x by ignoring the new variable.
Equations
- MIPStarRE.LDT.Polynomial.appendAtHeight params g _x = { poly := (MvPolynomial.rename (MIPStarRE.LDT.embedCoord params)) g.poly, lowIndividualDegree := ⋯ }
Instances For
Evaluating an old polynomial after appending a new coordinate ignores the appended coordinate.
Coordinate map for restricting a polynomial in m+1 variables to the slice X_m = x.
Equations
- MIPStarRE.LDT.Polynomial.restrictAtHeightCoordinateMap params x i = if h : ↑i < params.m then MvPolynomial.X ⟨↑i, h⟩ else MvPolynomial.C (MIPStarRE.LDT.decodeScalar x)
Instances For
Restricting a polynomial to a coordinate slice via eval₂Hom preserves the
low-individual-degree bound: each variable's degree stays at most d.
Restrict a global polynomial in m + 1 variables to the slice at height x.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Coordinate polynomial for restricting to an axis-parallel affine line.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Restricting a low-degree polynomial to an axis-parallel line via eval₂Hom yields a
univariate polynomial whose natural degree is at most d.
Restrict a global polynomial to an axis-parallel line.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Evaluating an axis-parallel restriction agrees with evaluating the original polynomial at the corresponding point on the line.
Coordinate polynomial for restricting to a diagonal affine line.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Restricting a low-degree polynomial to a diagonal line via eval₂Hom yields a
univariate polynomial whose natural degree is at most m · d.
Restrict a global polynomial to a diagonal line.
Equations
- One or more equations did not get rendered due to their size.