Interpret raw coordinates for a validated level list. The fallback is
unreachable when the list comes from a Hex.NumberTower.
Equations
- Hex.NumberTower.Norm.rawToComplex levels a = (Option.map Hex.AlgebraicRoot.toComplex (Hex.NumberTower.RawEvaluation.evalCoords? levels a)).getD 0
Instances For
The total raw evaluator agrees with direct mixed-radix denotation.
Interpret a raw lower-tower dense polynomial in Polynomial ℂ.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Interpret an outer dense polynomial over raw lower-tower polynomials.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Horner fold defining rawPolynomial has the expected
coefficients: coefficient n is the complex denotation of the n-th raw
coefficient, with 0 beyond the end.
Coefficients of a semantically interpreted raw polynomial are the denotations of its executable coefficients.
Raw semantic interpretation preserves the polynomial zero.
The transferred field with its zero projection pinned to the executable
coefficient instance. This lets existing DensePoly values retain their
instance-indexed type while the Mathlib laws are available locally.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Proof-local Mathlib ring laws for executable dense-polynomial operations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Embed the canonical lower coefficient field as the constant block of the next extension. The construction is parameterized by top-level injectivity, which is exactly the hypothesis available inside the recursive Trager proof.
Equations
- Hex.NumberTower.Norm.lowerHom level lower hvalid hinjectiveTop = { toFun := Hex.NumberTower.LevelSemantics.liftCoeff level lower, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
The lower-coefficient embedding lowerHom acts by lifting a raw
lower-tower coefficient into the constant block of the extended tower.
The executable representative of the newest generator denotes the selected root. In relative degree one the generator is already the lower constant forced by the monic linear relation.
The executable newest-generator representative evaluates to any root of the current monic relation, including the relative-degree-one encoding.
Coefficientwise semantic interpretation is a ring homomorphism once the canonical lower tower has its transferred field structure.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The bundled ring homomorphism rawPolynomialHom agrees pointwise
with the direct Horner interpretation rawPolynomial, so the latter
inherits all homomorphism laws.
Raw polynomial interpretation is coefficientwise mapping through the fixed complex denotation.
Injective coefficient denotation makes raw polynomial interpretation injective coefficientwise.
Semantic interpretation sends the executable one polynomial to 1.
Semantic interpretation turns executable raw-polynomial multiplication
into multiplication in Polynomial ℂ.
A constant executable polynomial denotes the corresponding constant complex polynomial.
Evaluation at a conjugate root, bundled using the proof-local field whose zero agrees definitionally with the executable coefficient carrier.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Horner fold defining conjugatePolynomial has the expected
coefficients: coefficient n evaluates the n-th raw coefficient at the
conjugate x, with 0 beyond the end.
Conjugate coefficient interpretation is coefficientwise mapping through the corresponding ring homomorphism.
The runtime-indexed derivative has the ordinary formal derivative after coefficient denotation.
Under the transferred coefficient field, the custom runtime-indexed derivative is the ordinary executable dense derivative.
The executable gcd-based squarefreeness test is exactly ordinary polynomial squarefreeness after semantic coefficient interpretation.
The Horner fold defining rawOuter has the expected coefficients:
coefficient n is the raw interpretation of the n-th inner polynomial,
with 0 beyond the end.
Defaulted indexing through Array.toList agrees with defaulted array
indexing for inner dense polynomials.
Coefficients of the outer interpretation are the raw interpretations of the executable inner coefficients.
The outer interpretation is coefficientwise mapping through
rawPolynomialHom, exposing rawOuter to Polynomial.map lemmas.
Specialize a polynomial in the outer elimination variable at the newest
generator, while embedding its lower[X] coefficients into
(level :: lower)[X].
Equations
- One or more equations did not get rendered due to their size.
Instances For
Evaluate an outer polynomial in the newest generator while embedding its
lower[X] coefficients into (level :: lower)[X].
Equations
- One or more equations did not get rendered due to their size.
Instances For
The evaluation homomorphism outerEvalHom acts by mapping inner
coefficients through the lower embedding and evaluating the outer variable at
the constant top generator.
Mapping outerEval into the fixed complex embedding is specialization of
the semantic outer polynomial at the selected root.
After interpreting the lower tower, a lifted top-level coefficient specializes at a conjugate root to the corresponding constant polynomial.
The linear substitution base specializes to X - c·x at the chosen
conjugate x.
Specializing the shifted bivariate input at a conjugate gives ordinary
polynomial composition by X - c·x.
The executable outer defining polynomial is the constant-coefficient lift of the ordinary lower-field relation.
The outer defining polynomial vanishes when specialized at the executable top generator.
Rebuilding a raw dense polynomial from its flattened coordinate arrays is
the identity: Factor.polyCoords is a section of Factor.rawPoly.
Shifting at the executable newest generator specializes at every conjugate to the corresponding scalar affine shift.
Specializing the shifted outer presentation at the executable generator is exactly the current-level shifted polynomial.