mathlib documentation

number_theory.function_field

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 is_scalar_tower Fq[X] (fraction_ring Fq[X]) F in definitions, adding them back in lemmas when they are needed.

References #

Tags #

function field, ring of integers

def function_field (Fq F : Type) [field Fq] [field F] [algebra (ratfunc Fq) F] :
Prop

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.

@[protected]
theorem function_field_iff (Fq F : Type) [field Fq] [field F] (Fqt : Type u_1) [field Fqt] [algebra Fq[X] Fqt] [is_fraction_ring Fq[X] Fqt] [algebra (ratfunc Fq) F] [algebra Fqt F] [algebra Fq[X] F] [is_scalar_tower Fq[X] Fqt F] [is_scalar_tower Fq[X] (ratfunc Fq) F] :

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

theorem algebra_map_injective (Fq F : Type) [field Fq] [field F] [algebra Fq[X] F] [algebra (ratfunc Fq) F] [is_scalar_tower Fq[X] (ratfunc Fq) F] :
noncomputable def function_field.ring_of_integers (Fq F : Type) [field Fq] [field F] [algebra Fq[X] F] :

The function field analogue of number_field.ring_of_integers: function_field.ring_of_integers 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.

Equations
@[protected, instance]

The place at infinity on Fq(t) #

noncomputable def function_field.infty_valuation_def (Fq : Type) [field Fq] [decidable_eq (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 multiplicative.of_add(degree(f) - degree(g)).

Equations
noncomputable def function_field.infty_valuation (Fq : Type) [field Fq] [decidable_eq (ratfunc Fq)] :

The valuation at infinity on Fq(t).

Equations
noncomputable def function_field.infty_valued_Fqt (Fq : Type) [field Fq] [decidable_eq (ratfunc Fq)] :

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

Equations

The topology structure on Fq(t) induced by the valuation at infinity.

Equations

The uniform structure on k(t) induced by the valuation at infinity.

Equations
def function_field.Fqt_infty (Fq : Type) [field Fq] [decidable_eq (ratfunc Fq)] :
Type

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

Equations
@[protected, instance]
noncomputable def function_field.Fqt_infty.field (Fq : Type) [field Fq] [decidable_eq (ratfunc Fq)] :
Equations
@[protected, instance]
Equations
@[protected, instance]

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

Equations