The monic polynomial represented by a raw level, including its implicit leading coefficient.
Equations
- level.polynomial lower = level.defining.push (Hex.NumberTower.Arithmetic.fixedCoeffs (Hex.NumberTower.levelsDim lower) #[1])
Instances For
A rational-presentation level relation agrees with the monic rational associate of the stored absolute root's checked integer polynomial.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Meaningful construction evidence for one level. The base constructor ties the relation directly to a checked irreducible integer presentation and its selected root. A relative constructor records successful execution of the recursive Trager irreducibility checker and the fixed-embedding zero check.
- rational {level : Level} {lower : List Level} (relation : level.RationalRelation lower) : level.Certificate lower
- relative {level : Level} {lower : List Level} (degree_gt_one : 1 < level.degree) (irreducible : Factor.isIrreducible lower (level.polynomial lower) = true) (embedding : RawEvaluation.vanishesAt? lower (level.polynomial lower) level.root = some true) : level.Certificate lower
Instances For
Every top-first level has canonical coefficient widths relative to the tail beneath it and carries constructor-produced irreducibility and fixed- embedding evidence.
Equations
- Hex.NumberTower.LevelsValid [] = True
- Hex.NumberTower.LevelsValid (level :: lower) = (level.Structural (Hex.NumberTower.levelsDim lower) ∧ level.Certificate lower ∧ Hex.NumberTower.LevelsValid lower)
Instances For
A validated, fixed-embedding tower of successive algebraic extensions of
Rat. Construction is sealed, and checked smart constructors are the
only API for extending towers.
The extension levels, stored top-first.
- valid : LevelsValid self.levels.toList
Every level passed its structural, irreducibility, and fixed-embedding checks at construction time.
Instances For
The rational tower, with no algebraic extension levels.
Equations
- Hex.NumberTower.rat = { levels := #[], valid := True.intro }
Instances For
Internal checked boundary for adjoining one proper extension level. Raw level arrays are accepted only after structural, recursive irreducibility, and fixed-embedding checks all succeed.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The internal extension constructor succeeds once all of its explicit checks have been discharged.
A successful checked extension prepends exactly the admitted level.
A successful checked extension multiplies the lower tower dimension by the admitted relative degree.
Number of proper algebraic extension levels.
Instances For
Canonical mixed-radix rational coordinates in a fixed tower.
The flattened mixed-radix rational coordinates.
The coordinate array has exactly the tower's dimension.
Instances For
Normalize an arbitrary coordinate array to the tower dimension by truncating excess coordinates and padding missing coordinates with zero.
Equations
- T.normalizeCoeffs coefficients = (Vector.ofFn fun (i : Fin T.dim) => coefficients.getD (↑i) 0).toArray
Instances For
Normalization fixes an array that already has the tower width.
Construct the unique fixed-width element represented by a raw coordinate array.
Equations
- T.ofCoeffs coefficients = { data := T.normalizeCoeffs coefficients, size_eq := ⋯ }
Instances For
Construct an element from coordinates whose exact tower width is already
known. Arithmetic kernels use this internal boundary to avoid copying a fresh
fixed-width result through normalizeCoeffs a second time.
Equations
- Hex.NumberTower.Internal.ofCoeffs T coefficients hsize = { data := coefficients, size_eq := hsize }
Instances For
Canonical flattened rational coordinates.
Equations
Instances For
Every element exposes exactly the tower's mixed-radix width.
Reading a freshly normalized element returns its normalized coordinates.
Equality is exact coordinate equality inside a fixed tower.
Equality is exact coordinate equality inside a fixed tower; the generated
iff form of Hex.NumberTower.Elem.ext.
Equations
- Hex.NumberTower.instDecidableEqElem a b = match decEq (Hex.NumberTower.coeffs a).toList (Hex.NumberTower.coeffs b).toList with | isTrue h => isTrue ⋯ | isFalse h => isFalse ⋯
Embed a rational number into the constant mixed-radix coordinate.
Instances For
Rational embedding is the singleton-coordinate constructor.
A dependent extension result carries the canonical lower-field embedding, the new generator, and its selected absolute algebraic root.
- tower : NumberTower
The extended tower.
The canonical embedding of the lower field.
The adjoined generator as an element of the extended tower.
- root : AlgebraicRoot
The absolute algebraic root selected for the generator.
Instances For
Primitive associate with positive leading coefficient. This leaves every complex root fixed and only normalizes a possible global sign.
Equations
Instances For
Checked integer irreducibility forces primitive content.
A checked positive-degree polynomial's positive associate has positive leading coefficient.
Sign association preserves positive degree.
Sign association preserves the executable simple-root certificate.
Global sign normalization preserves the Mahler refinement precision.
Transport a refined isolation across global sign normalization.
Equations
Instances For
Build a one-level tower for a checked rational presentation. The level
relation is the monic rational associate of p; its absolute generator uses
the supplied isolation, transported only across a possible global sign.
Equations
- One or more equations did not get rendered due to their size.