Documentation

HexNumberFieldTowerMathlib.Arithmetic

The fixed complex interpretation is injective.

The canonical coefficient denotation of a certified tower is injective.

Executable zero denotes complex zero.

Executable one denotes complex one.

theorem Hex.NumberTower.map_add (T : NumberTower) (a b : T.Elem) :
T.toComplex (a + b) = T.toComplex a + T.toComplex b

Coordinate addition computes complex addition.

Coordinate negation computes complex negation.

theorem Hex.NumberTower.map_sub (T : NumberTower) (a b : T.Elem) :
T.toComplex (a - b) = T.toComplex a - T.toComplex b

Coordinate subtraction computes complex subtraction.

theorem Hex.NumberTower.map_mul (T : NumberTower) (a b : T.Elem) :
T.toComplex (a * b) = T.toComplex a * T.toComplex b

Recursive reduced multiplication computes complex multiplication.

Recursive extended-gcd inversion computes complex inversion, including the executable convention 0⁻¹ = 0.

theorem Hex.NumberTower.map_div (T : NumberTower) (a b : T.Elem) :
T.toComplex (a / b) = T.toComplex a / T.toComplex b

Tower division computes complex division.

theorem Hex.NumberTower.map_smul (T : NumberTower) (q : ) (a : T.Elem) :
T.toComplex (q a) = q * T.toComplex a

The executable rational scalar action is semantic scalar multiplication.

theorem Hex.NumberTower.map_natPow (T : NumberTower) (a : T.Elem) (n : ) :
T.toComplex (natPow a n) = T.toComplex a ^ n

Natural powers preserve the selected complex interpretation.

theorem Hex.NumberTower.map_intPow (T : NumberTower) (a : T.Elem) (n : ) :
T.toComplex (intPow a n) = T.toComplex a ^ n

Integer powers preserve the selected complex interpretation.

@[reducible]
noncomputable def Hex.NumberTower.elemField (T : NumberTower) :

The law-bearing field whose operations are the existing executable tower coordinate operations. The remaining casts and scalar actions use the canonical rational embedding.

Equations
Instances For
    @[instance_reducible]

    Opt-in field instance for tower elements. It is scoped so importing the Mathlib correspondence layer does not make executable downstream definitions depend on a noncomputable semantic proof dictionary.

    Equations
    Instances For

      The selected complex interpretation as an injective ring homomorphism.

      Equations
      • T.embedding = { toFun := T.toComplex, map_one' := , map_mul' := , map_zero' := , map_add' := }
      Instances For

        The selected complex ring homomorphism is an embedding.

        The Boolean zero test recognizes exactly semantic zero.

        Mixed-radix coordinate equality is exactly semantic equality.

        Tower coordinate fields have characteristic zero, through the injective complex embedding.

        @[instance_reducible]

        Opt-in Lean.Grind.Field law package for the executable tower operations, derived from the scoped field instance through the standard Mathlib bridge. It is scoped together with the field instance so executable downstream code does not silently depend on the semantic dictionary.

        Equations
        Instances For

          The field's rational cast is the executable rational embedding.

          theorem Hex.NumberTower.ratCast_mul_eq_smul (T : NumberTower) (q : ) (a : T.Elem) :
          q * a = q a

          Multiplication by an embedded rational is the executable scalar action.

          The mixed-radix coordinate representation as a -linear equivalence with the fixed-width function space.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[reducible, inline]

            The element type of a validated tower, regarded as the certified coordinate field. The field, characteristic-zero, and -algebra structures are the scoped instances of the TowerField namespace.

            Equations
            Instances For

              The executable mixed-radix dimension is the -vector-space dimension of the coordinate field.

              An extension embedding preserves the fixed absolute embedding. This is a property of checked constructors, not of arbitrary Hex.NumberTower.Extension records.

              Equations
              Instances For

                The distinguished generator denotes the extension's stored absolute root.

                Equations
                Instances For

                  A checked extension embedding is injective.

                  theorem Hex.NumberTower.Extension.embed_add {T : NumberTower} (E : T.Extension) (hE : E.PreservesEmbedding) (a b : T.Elem) :
                  E.embed (a + b) = E.embed a + E.embed b

                  A checked extension embedding is additive.

                  theorem Hex.NumberTower.Extension.embed_mul {T : NumberTower} (E : T.Extension) (hE : E.PreservesEmbedding) (a b : T.Elem) :
                  E.embed (a * b) = E.embed a * E.embed b

                  A checked extension embedding is multiplicative.

                  A checked extension embedding fixes the embedded rationals.

                  theorem Hex.NumberTower.Extension.embed_smul {T : NumberTower} (E : T.Extension) (hE : E.PreservesEmbedding) (q : ) (a : T.Elem) :
                  E.embed (q a) = q E.embed a

                  A checked extension embedding preserves the executable rational scalar action.

                  A checked extension embedding as a -algebra homomorphism between the certified coordinate fields. Injectivity is embedAlgHom_injective.

                  Equations
                  • E.embedAlgHom hE = { toFun := E.embed, map_one' := , map_mul' := , map_zero' := , map_add' := , commutes' := }
                  Instances For
                    @[simp]

                    The algebra homomorphism packaging acts by the executable embedding.

                    The -algebra homomorphism packaging of a checked extension embedding is injective.