Evaluate a fixed tower element in its chosen absolute embedding.
Equations
Instances For
Exact lazy Horner evaluation of a tower polynomial at an absolute candidate root.
Equations
- Hex.NumberTower.Evaluation.evalPoly? f candidate = Hex.NumberTower.RawEvaluation.evalPoly? T.levels.toList (Array.map Hex.NumberTower.coeffs (Hex.DensePoly.toArray f)) candidate
Instances For
Certified ball Horner evaluation at the tower's fixed embedding and one
absolute candidate root. Each exact coefficient is refined far enough to
supply the common 2^-prec input-error unit consumed by
Hex.Disambiguation.evalMajorant.
Equations
- Hex.NumberTower.Evaluation.evalBall? f candidate prec = Hex.NumberTower.RawEvaluation.evalBall? T.levels.toList (Array.map Hex.NumberTower.coeffs (Hex.DensePoly.toArray f)) candidate prec
Instances For
Decide, with the prescribed finite precision endpoint, whether a tower polynomial vanishes at an absolute candidate root.
Equations
- Hex.NumberTower.Evaluation.vanishesAt? f candidate = Hex.NumberTower.RawEvaluation.vanishesAt? T.levels.toList (Array.map Hex.NumberTower.coeffs (Hex.DensePoly.toArray f)) candidate
Instances For
Lift an integer polynomial coefficientwise to a tower polynomial.
Equations
- T.liftZPoly p = Hex.DensePoly.ofCoeffs (Array.map (fun (coefficient : Int) => T.ofRat ↑coefficient) (Hex.DensePoly.toArray p))
Instances For
Retain the unique multiplicity-one irreducible factor that vanishes at the specified absolute root under the tower's fixed embedding.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Encode a selected monic relative factor as one raw extension level.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Root data for a polynomial over a completed splitting tower.
- all {T : NumberTower} : T.Roots
- finite {T : NumberTower} (roots : Array (T.Elem × Nat)) : T.Roots
Instances For
The recorded roots with multiplicity, or none for the zero polynomial,
every element being a root of that.
Equations
- (Hex.NumberTower.Roots.finite roots).finite? = some roots
- Hex.NumberTower.Roots.all.finite? = none
Instances For
A checked extension together with all roots of the original polynomial in that extension.
- extension : T.Extension
The extension over which the polynomial splits into linear factors.
All roots of the input polynomial in the extended tower.
Instances For
Map polynomial coefficients through an explicitly supplied tower embedding.
Equations
- Hex.NumberTower.mapPoly embed f = Hex.DensePoly.ofCoeffs (Array.map embed (Hex.DensePoly.toArray f))
Instances For
The identity extension, used when no generator needs to be adjoined.
Equations
- Hex.NumberTower.Extension.identity T = { tower := T, embed := id, gen := 0, root := Hex.AlgebraicNumber.zero.toRoot }
Instances For
The identity extension is the default, so (adjoin? T r).get! unwraps
an adjunction that adjoin?_isSome shows never fails.
Equations
- T.instInhabitedExtension = { default := Hex.NumberTower.Extension.identity T }
Compose dependent tower extensions while retaining the most recently adjoined generator.
Equations
Instances For
The carrier of a composed extension is the carrier of its inner step.
Whole-record normal form for pulling an inner splitting back through an extension. Stating the equality at this level keeps the dependent root carrier aligned while clients reason about the explicit composite.
Adjoin the specified absolute algebraic root. A selected linear factor
produces the identity extension; a nonlinear factor is admitted only through
Hex.NumberTower.Internal.extend?, which reruns structural,
relative-irreducibility, and fixed-
embedding checks before constructing the new carrier index.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Squarefree primitive integer eliminant obtained by taking the selected factor's norm through every tower level.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Retain exactly the absolute candidates at which the relative factor vanishes, preserving isolation order.
Equations
Instances For
Isolate the absolute eliminant and retain the first root that zeros the relative factor under the current fixed embedding.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Fuel-bounded split/refactor loop. Each recursive call works over the local tower and composes its checked extension on return, retaining the intermediate embedding needed by proof-facing consumers. Every successful nonlinear iteration consumes one fuel unit and must strictly increase the tower dimension.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct an extension in which the input polynomial splits into linear factors, retaining multiplicities from checked factorization.
Equations
- One or more equations did not get rendered due to their size.