Documentation

HexNumberFieldMathlib.AdjoinRoot

The monic rational associate used for the quotient-field comparison.

Equations
Instances For

    The rational defining polynomial is the monic associate of the checked integer polynomial.

    Monic normalization preserves the executable defining degree.

    The monic rational defining polynomial remains irreducible.

    noncomputable def Hex.PolyQuot.toAdjoinRoot {p : ZPoly} {x : SimpleRoot p} (a : PolyQuot p x) :

    Send reduced executable coordinates to the corresponding AdjoinRoot class. This function is defined before a ring structure is installed on Hex.PolyQuot.

    Equations
    Instances For

      Reduced coordinates give a bijection with the quotient by the monic rational defining relation.

      The selected complex root zeros the monic rational defining polynomial.

      Evaluate the quotient presentation at its selected complex root.

      Equations
      Instances For

        Quotient evaluation agrees with direct evaluation of executable coordinates.

        Evaluation at the selected root is injective for a checked irreducible presentation.

        theorem Hex.PolyQuot.isZero_iff {p : ZPoly} {x : SimpleRoot p} (a : PolyQuot p x) :
        a.isZero = true a = 0

        The executable coordinate test recognizes precisely the zero element.

        Irreducibility and the reduced-degree invariant make the executable gcd guard in Hex.PolyQuot.inv succeed for every nonzero element.

        theorem Hex.PolyQuot.map_zero {p : ZPoly} {x : SimpleRoot p} (rep : RefinedIsolation p) (h : SimpleRoot.mk rep = x) :
        toComplex 0 rep h = 0

        Fixed-presentation zero evaluates to complex zero.

        theorem Hex.PolyQuot.map_one {p : ZPoly} {x : SimpleRoot p} (rep : RefinedIsolation p) (h : SimpleRoot.mk rep = x) :
        toComplex 1 rep h = 1

        Fixed-presentation one evaluates to complex one.

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

        Fixed-presentation negation agrees with complex negation.

        theorem Hex.PolyQuot.map_sub {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 subtraction agrees with complex subtraction.

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

        The executable rational scalar action is semantic scalar multiplication.

        theorem Hex.PolyQuot.map_inv {p : ZPoly} {x : SimpleRoot p} [p.CheckedIrreducible] (a : PolyQuot p x) (rep : RefinedIsolation p) (h : SimpleRoot.mk rep = x) :
        a⁻¹.toComplex rep h = (a.toComplex rep h)⁻¹

        Executable extended-GCD inversion agrees with complex inversion.

        theorem Hex.PolyQuot.map_div {p : ZPoly} {x : SimpleRoot p} [p.CheckedIrreducible] (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 division agrees with complex division.

        theorem Hex.PolyQuot.map_natPow {p : ZPoly} {x : SimpleRoot p} (a : PolyQuot p x) (n : ) (rep : RefinedIsolation p) (h : SimpleRoot.mk rep = x) :
        (a.natPow n).toComplex rep h = a.toComplex rep h ^ n

        Executable natural powers preserve the selected interpretation.

        theorem Hex.PolyQuot.map_intPow {p : ZPoly} {x : SimpleRoot p} [p.CheckedIrreducible] (a : PolyQuot p x) (n : ) (rep : RefinedIsolation p) (h : SimpleRoot.mk rep = x) :
        (a.intPow n).toComplex rep h = a.toComplex rep h ^ n

        Executable integer powers preserve the selected interpretation.

        @[reducible]
        noncomputable def Hex.PolyQuot.field (p : ZPoly) (x : SimpleRoot p) [p.CheckedIrreducible] :

        The law-bearing field whose operations are exactly the existing executable reduced-coordinate operations.

        Equations
        Instances For

          Opt-in irreducibility witness for the monic rational defining polynomial.

          @[instance_reducible]

          Opt-in field instance for a checked fixed presentation. It is scoped so computational imports never acquire a noncomputable proof dictionary. Opening the scope makes field notation proof-bearing and therefore noncomputable; executable code should use the unscoped operations instead.

          Equations
          Instances For

            A checked rational presentation has characteristic zero.

            The quotient comparison preserves executable zero.

            The quotient comparison preserves executable one.

            The quotient comparison preserves executable addition.

            The quotient comparison preserves executable multiplication.

            The quotient comparison preserves executable rational scalar multiplication.

            The reduced-coordinate comparison as a ring homomorphism.

            Equations
            Instances For

              Reduced executable coordinates are ring-equivalent to the monic rational AdjoinRoot presentation.

              Equations
              Instances For
                @[simp]

                The packaged ring equivalence acts by the underlying comparison map.

                noncomputable def Hex.PolyQuot.embedding {p : ZPoly} {x : SimpleRoot p} [p.CheckedIrreducible] (rep : RefinedIsolation p) (h : SimpleRoot.mk rep = x) :

                Evaluation at the selected root as an injective ring homomorphism.

                Equations
                Instances For
                  @[simp]
                  theorem Hex.PolyQuot.embedding_apply {p : ZPoly} {x : SimpleRoot p} [p.CheckedIrreducible] (a : PolyQuot p x) (rep : RefinedIsolation p) (h : SimpleRoot.mk rep = x) :
                  (embedding rep h) a = a.toComplex rep h

                  The packaged ring homomorphism acts by evaluation at the selected root.

                  The selected-root ring homomorphism is an embedding.

                  theorem Hex.PolyQuot.eq_iff_toComplex {p : ZPoly} {x : SimpleRoot p} [p.CheckedIrreducible] (a b : PolyQuot p x) (rep : RefinedIsolation p) (hrep : SimpleRoot.mk rep = x) :
                  a = b a.toComplex rep hrep = b.toComplex rep hrep

                  Equality in a checked presentation is exactly equality of interpreted complex values.