Documentation

HexNumberFieldMathlib.Basic

A computationally checked irreducible integer polynomial remains irreducible after extension of coefficients to the rationals.

A computationally checked irreducible integer polynomial is separable over the rationals. The factorization correspondence supplies irreducibility; this is the semantic bridge used by quotient-root interpretation.

The complex value selected by a factorization-lazy algebraic root.

Equations
Instances For

    The selected value zeros the enclosing integer polynomial.

    The complex value selected by a canonical algebraic number.

    Equations
    Instances For

      A canonical algebraic number stores its primitive positive associate of the rational minimal polynomial.

      noncomputable def Hex.PolyQuot.toComplex {p : ZPoly} {x : SimpleRoot p} (a : PolyQuot p x) (rep : RefinedIsolation p) (_h : SimpleRoot.mk rep = x) :

      Evaluate canonical fixed-field coordinates at their selected complex root. The representative and quotient equality are explicit inputs so this semantic map does not depend on an irreducibility proof.

      Equations
      Instances For

        Reduction modulo the defining polynomial preserves evaluation at the selected root.

        theorem Hex.PolyQuot.map_add {p : ZPoly} {x : SimpleRoot p} (a b : PolyQuot p x) (rep : RefinedIsolation p) (h : SimpleRoot.mk rep = x) :
        (a + b).toComplex rep h = a.toComplex rep h + b.toComplex rep h

        Fixed-presentation addition agrees with complex addition.

        theorem Hex.PolyQuot.map_mul {p : ZPoly} {x : SimpleRoot p} (a b : PolyQuot p x) (rep : RefinedIsolation p) (h : SimpleRoot.mk rep = x) :
        (a * b).toComplex rep h = a.toComplex rep h * b.toComplex rep h

        Fixed-presentation multiplication agrees with complex multiplication.

        Canonical algebraic numbers are determined by their represented complex value.

        @[simp]

        Canonical zero denotes complex zero.

        theorem Hex.AlgebraicNumber.ofNormalized?_toComplex (p : ZPoly) (prim : p.Primitive) (pos_lc : 0 < DensePoly.leadingCoeff p) (pos_degree : 0 < DensePoly.natDegree p) (checked : p.CheckedIrreducible) (squarefree : HasOnlySimpleRoots p) (rep : RefinedIsolation p) {a : AlgebraicNumber} (h : ofNormalized? p prim pos_lc pos_degree checked squarefree rep = some a) :

        Successful canonicalization preserves the complex root selected by the supplied refined isolation, including the explicit canonical-zero path.

        Canonical Boolean equality is equality of represented complex values.

        Canonical Boolean equality agrees with Lean equality.

        The executable zero predicate recognizes exactly the complex value zero.

        The canonical algebraic-number zero test recognizes exactly complex zero.