Documentation

Mathlib.NumberTheory.FunctionField

Function fields #

This file defines a function field and the ring of integers corresponding to it.

Main definitions #

Implementation notes #

The definitions that involve a field of fractions choose a canonical field of fractions, but are independent of that choice. We also omit assumptions like Finite Fq or IsScalarTower Fq[X] (FractionRing Fq[X]) F in definitions, adding them back in lemmas when they are needed.

References #

Tags #

function field, ring of integers

@[reducible, inline]
abbrev FunctionField (Fq : Type u_1) (F : Type u_2) [Field Fq] [Field F] [Algebra (RatFunc Fq) F] :

F is a function field over the finite field Fq if it is a finite extension of the field of rational functions in one variable over Fq.

Note that F can be a function field over multiple, non-isomorphic, Fq.

Instances For
    theorem functionField_iff (Fq : Type u_1) (F : Type u_2) [Field Fq] [Field F] (Fqt : Type u_3) [Field Fqt] [Algebra (Polynomial Fq) Fqt] [IsFractionRing (Polynomial Fq) Fqt] [Algebra (RatFunc Fq) F] [Algebra Fqt F] [Algebra (Polynomial Fq) F] [IsScalarTower (Polynomial Fq) Fqt F] [IsScalarTower (Polynomial Fq) (RatFunc Fq) F] :

    F is a function field over Fq iff it is a finite extension of Fq(t).

    theorem FunctionField.algebraMap_injective (Fq : Type u_1) (F : Type u_2) [Field Fq] [Field F] [Algebra (Polynomial Fq) F] [Algebra (RatFunc Fq) F] [IsScalarTower (Polynomial Fq) (RatFunc Fq) F] :
    Function.Injective ⇑(algebraMap (Polynomial Fq) F)
    noncomputable def FunctionField.ringOfIntegers (Fq : Type u_1) (F : Type u_2) [Field Fq] [Field F] [Algebra (Polynomial Fq) F] :

    The function field analogue of NumberField.ringOfIntegers: FunctionField.ringOfIntegers Fq Fqt F is the integral closure of Fq[t] in F.

    We don't actually assume F is a function field over Fq in the definition, only when proving its properties.

    Instances For
      theorem FunctionField.ringOfIntegers.algebraMap_injective (Fq : Type u_1) (F : Type u_2) [Field Fq] [Field F] [Algebra (Polynomial Fq) F] [Algebra (RatFunc Fq) F] [IsScalarTower (Polynomial Fq) (RatFunc Fq) F] :
      Function.Injective ⇑(algebraMap (Polynomial Fq) β†₯(ringOfIntegers Fq F))

      The place at infinity on Fq(t) #

      noncomputable def FunctionField.inftyValuationDef (Fq : Type u_1) [Field Fq] [DecidableEq (RatFunc Fq)] (r : RatFunc Fq) :

      The valuation at infinity is the nonarchimedean valuation on Fq(t) with uniformizer 1/t. Explicitly, if f/g ∈ Fq(t) is a nonzero quotient of polynomials, its valuation at infinity is exp (degree(f) - degree(g)).

      Instances For
        @[simp]
        theorem FunctionField.inftyValuation_of_nonzero (Fq : Type u_1) [Field Fq] [DecidableEq (RatFunc Fq)] {x : RatFunc Fq} (hx : x β‰  0) :
        noncomputable def FunctionField.inftyValuation (Fq : Type u_1) [Field Fq] [DecidableEq (RatFunc Fq)] :

        The valuation at infinity on Fq(t).

        Instances For
          theorem FunctionField.inftyValuation_apply (Fq : Type u_1) [Field Fq] [DecidableEq (RatFunc Fq)] {x : RatFunc Fq} :
          @[simp]
          theorem FunctionField.inftyValuation.C (Fq : Type u_1) [Field Fq] [DecidableEq (RatFunc Fq)] {k : Fq} (hk : k β‰  0) :
          theorem FunctionField.inftyValuation.X_zpow (Fq : Type u_1) [Field Fq] [DecidableEq (RatFunc Fq)] (m : β„€) :
          theorem FunctionField.inftyValuation.polynomial (Fq : Type u_1) [Field Fq] [DecidableEq (RatFunc Fq)] {p : Polynomial Fq} (hp : p β‰  0) :
          @[implicit_reducible]
          noncomputable def FunctionField.inftyValuedFqt (Fq : Type u_1) [Field Fq] [DecidableEq (RatFunc Fq)] :

          The valued field Fq(t) with the valuation at infinity.

          Instances For
            theorem FunctionField.inftyValuedFqt.def (Fq : Type u_1) [Field Fq] [DecidableEq (RatFunc Fq)] {x : RatFunc Fq} :
            @[implicit_reducible]
            noncomputable def FunctionField.FqtInfty.instUniformSpaceRatFunc (Fq : Type u_1) [Field Fq] [DecidableEq (RatFunc Fq)] :

            The uniform space structure on RatFunc Fq coming from the valuation at infinity.

            Instances For
              def FunctionField.FqtInfty (Fq : Type u_1) [Field Fq] [DecidableEq (RatFunc Fq)] :
              Type u_1

              The completion Fq((t⁻¹)) of Fq(t) with respect to the valuation at infinity.

              Instances For
                @[implicit_reducible]
                noncomputable instance FunctionField.FqtInfty.instField (Fq : Type u_1) [Field Fq] [DecidableEq (RatFunc Fq)] :
                @[implicit_reducible]
                noncomputable instance FunctionField.FqtInfty.instAlgebraRatFunc (Fq : Type u_1) [Field Fq] [DecidableEq (RatFunc Fq)] :
                @[implicit_reducible]
                noncomputable instance FunctionField.FqtInfty.instCoeRatFunc (Fq : Type u_1) [Field Fq] [DecidableEq (RatFunc Fq)] :
                Coe (RatFunc Fq) (FqtInfty Fq)
                @[implicit_reducible]
                noncomputable instance FunctionField.FqtInfty.instInhabited (Fq : Type u_1) [Field Fq] [DecidableEq (RatFunc Fq)] :
                Inhabited (FqtInfty Fq)
                @[implicit_reducible]
                noncomputable instance FunctionField.valuedFqtInfty (Fq : Type u_1) [Field Fq] [DecidableEq (RatFunc Fq)] :

                The valuation at infinity on k(t) extends to a valuation on FqtInfty.