Module

PrimitiveRoot.lean

Nyll.ClassFieldTheory.LubinTate.FiniteLevel.PrimitiveRoot
18 declarations indexed from sourceView source ↗

Primitive roots and standard Lubin--Tate level fields

For a local field F with uniformizer π, this file maps the primitive division polynomial from the valuation ring to the fraction field. Gauss's lemma transfers its Eisenstein irreducibility to the field. We also prove separability directly, choose a root in SeparableClosure K, and identify the degree of the simple extension generated by that root.

The separability argument works in both mixed and equal characteristic. It uses the identity

(f^[n])'(0) = π ^ n

for f(X) = X ^ q + π * X, together with the fact that q - 1 is nonzero in the base field.

Imports4
Imported by2

Declarations

LubinTate.standardLubinTatePolynomial_derivative_eval_zero

The derivative of the standard polynomial at zero is its linear coefficient.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
universe u v
namespace LubinTate
open LocalFieldTheory.DiscreteValuationField
variable {K : Type u} [Field K]
theorem standardLubinTatePolynomial_derivative_eval_zero
    (F : LocalField.{u, v} K) (π : F.valuationSubring) :
    (standardLubinTatePolynomial F π).derivative.eval 0 = π
LubinTate.standardLubinTatePolynomialIterate_derivative_eval_zero

The derivative at zero of the n-fold standard iterate is π ^ n.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
universe u v
namespace LubinTate
open LocalFieldTheory.DiscreteValuationField
variable {K : Type u} [Field K]
theorem standardLubinTatePolynomialIterate_derivative_eval_zero
    (F : LocalField.{u, v} K) (π : F.valuationSubring) (n : ℕ) :
    (standardLubinTatePolynomialIterate F π n).derivative.eval 0 =
      π ^ n
LubinTate.standardLubinTatePrimitivePolynomialOverField

The primitive division polynomial after extending coefficients from the valuation ring to the base field.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
universe u v
namespace LubinTate
open LocalFieldTheory.DiscreteValuationField
variable {K : Type u} [Field K]
def standardLubinTatePrimitivePolynomialOverField
    (F : LocalField.{u, v} K) (π : F.valuationSubring) (n : ℕ) :
    Polynomial K
LubinTate.standardLubinTatePrimitivePolynomialOverField_formula

The field-valued primitive polynomial has the expected formula.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
universe u v
namespace LubinTate
open LocalFieldTheory.DiscreteValuationField
variable {K : Type u} [Field K]
theorem standardLubinTatePrimitivePolynomialOverField_formula
    (F : LocalField.{u, v} K) (π : F.valuationSubring) (n : ℕ) :
    standardLubinTatePrimitivePolynomialOverField F π n =
      (standardLubinTatePolynomialIterate F π n).map
          (algebraMap F.valuationSubring K) ^
        (Nat.card F.residueField - 1) +
      Polynomial.C (π : K)
LubinTate.standardLubinTatePrimitivePolynomialOverField_monic

The field-valued primitive polynomial is monic.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
universe u v
namespace LubinTate
open LocalFieldTheory.DiscreteValuationField
variable {K : Type u} [Field K]
theorem standardLubinTatePrimitivePolynomialOverField_monic
    (F : LocalField.{u, v} K) (π : F.valuationSubring) (n : ℕ) :
    (standardLubinTatePrimitivePolynomialOverField F π n).Monic
LubinTate.standardLubinTatePrimitivePolynomialOverField_natDegree

The field-valued primitive polynomial has degree (q - 1) * q ^ n.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
universe u v
namespace LubinTate
open LocalFieldTheory.DiscreteValuationField
variable {K : Type u} [Field K]
theorem standardLubinTatePrimitivePolynomialOverField_natDegree
    (F : LocalField.{u, v} K) (π : F.valuationSubring) (n : ℕ) :
    (standardLubinTatePrimitivePolynomialOverField F π n).natDegree =
      (Nat.card F.residueField - 1) *
        Nat.card F.residueField ^ n
LubinTate.standardLubinTatePrimitivePolynomialOverField_irreducible

Gauss's lemma transfers Eisenstein irreducibility from the valuation ring to the base field.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
universe u v
namespace LubinTate
open LocalFieldTheory.DiscreteValuationField
variable {K : Type u} [Field K]
theorem standardLubinTatePrimitivePolynomialOverField_irreducible
    {F : LocalField.{u, v} K} {π : F.valuationSubring}
    (hπ : F.toCompleteDVF.valuation.IsUniformizer (π : K)) (n : ℕ) :
    Irreducible (standardLubinTatePrimitivePolynomialOverField F π n)
LubinTate.residueFieldNatCard_sub_one_cast_ne_zero

The natural number q - 1 is nonzero in the local field.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
universe u v
namespace LubinTate
open LocalFieldTheory.DiscreteValuationField
variable {K : Type u} [Field K]
theorem residueFieldNatCard_sub_one_cast_ne_zero
    (F : LocalField.{u, v} K) :
    ((Nat.card F.residueField - 1 : ℕ) : K) ≠ 0
LubinTate.standardLubinTatePrimitivePolynomialOverField_derivative_ne_zero

The field-valued primitive polynomial has nonzero derivative.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
universe u v
namespace LubinTate
open LocalFieldTheory.DiscreteValuationField
variable {K : Type u} [Field K]
theorem standardLubinTatePrimitivePolynomialOverField_derivative_ne_zero
    {F : LocalField.{u, v} K} {π : F.valuationSubring}
    (hπ : F.toCompleteDVF.valuation.IsUniformizer (π : K)) (n : ℕ) :
    (standardLubinTatePrimitivePolynomialOverField F π n).derivative ≠ 0
LubinTate.standardLubinTatePrimitivePolynomialOverField_separable

The field-valued primitive polynomial is separable.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
universe u v
namespace LubinTate
open LocalFieldTheory.DiscreteValuationField
variable {K : Type u} [Field K]
theorem standardLubinTatePrimitivePolynomialOverField_separable
    {F : LocalField.{u, v} K} {π : F.valuationSubring}
    (hπ : F.toCompleteDVF.valuation.IsUniformizer (π : K)) (n : ℕ) :
    (standardLubinTatePrimitivePolynomialOverField F π n).Separable
LubinTate.exists_standardLubinTatePrimitivePolynomialOverField_root

The primitive polynomial has a root in the chosen separable closure.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
universe u v
namespace LubinTate
open LocalFieldTheory.DiscreteValuationField
variable {K : Type u} [Field K]
theorem exists_standardLubinTatePrimitivePolynomialOverField_root
    {F : LocalField.{u, v} K} {π : F.valuationSubring}
    (hπ : F.toCompleteDVF.valuation.IsUniformizer (π : K)) (n : ℕ) :
    ∃ x : SeparableClosure K,
      ((standardLubinTatePrimitivePolynomialOverField F π n).map
        (algebraMap K (SeparableClosure K))).IsRoot x
LubinTate.chosenStandardLubinTatePrimitiveRoot

A chosen primitive level-n+1 root in SeparableClosure K.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
universe u v
namespace LubinTate
open LocalFieldTheory.DiscreteValuationField
variable {K : Type u} [Field K]
def chosenStandardLubinTatePrimitiveRoot
    {F : LocalField.{u, v} K} {π : F.valuationSubring}
    (hπ : F.toCompleteDVF.valuation.IsUniformizer (π : K)) (n : ℕ) :
    SeparableClosure K
LubinTate.chosenStandardLubinTatePrimitiveRoot_isRoot

The chosen primitive element is a root of the field-valued primitive polynomial.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
universe u v
namespace LubinTate
open LocalFieldTheory.DiscreteValuationField
variable {K : Type u} [Field K]
theorem chosenStandardLubinTatePrimitiveRoot_isRoot
    {F : LocalField.{u, v} K} {π : F.valuationSubring}
    (hπ : F.toCompleteDVF.valuation.IsUniformizer (π : K)) (n : ℕ) :
    ((standardLubinTatePrimitivePolynomialOverField F π n).map
      (algebraMap K (SeparableClosure K))).IsRoot
        (chosenStandardLubinTatePrimitiveRoot hπ n)
LubinTate.chosenStandardLubinTatePrimitiveRoot_isIntegral

The chosen primitive root is integral over the base field.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
universe u v
namespace LubinTate
open LocalFieldTheory.DiscreteValuationField
variable {K : Type u} [Field K]
theorem chosenStandardLubinTatePrimitiveRoot_isIntegral
    {F : LocalField.{u, v} K} {π : F.valuationSubring}
    (hπ : F.toCompleteDVF.valuation.IsUniformizer (π : K)) (n : ℕ) :
    IsIntegral K (chosenStandardLubinTatePrimitiveRoot hπ n)
LubinTate.standardLubinTatePrimitivePolynomialOverField_eq_minpoly

The field-valued primitive polynomial is the minimal polynomial of the chosen root.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
universe u v
namespace LubinTate
open LocalFieldTheory.DiscreteValuationField
variable {K : Type u} [Field K]
theorem standardLubinTatePrimitivePolynomialOverField_eq_minpoly
    {F : LocalField.{u, v} K} {π : F.valuationSubring}
    (hπ : F.toCompleteDVF.valuation.IsUniformizer (π : K)) (n : ℕ) :
    standardLubinTatePrimitivePolynomialOverField F π n =
      minpoly K (chosenStandardLubinTatePrimitiveRoot hπ n)
LubinTate.standardLubinTateLevelField

The simple extension generated by the chosen primitive root.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
universe u v
namespace LubinTate
open LocalFieldTheory.DiscreteValuationField
variable {K : Type u} [Field K]
def standardLubinTateLevelField
    {F : LocalField.{u, v} K} {π : F.valuationSubring}
    (hπ : F.toCompleteDVF.valuation.IsUniformizer (π : K)) (n : ℕ) :
    IntermediateField K (SeparableClosure K)
LubinTate.standardLubinTateLevelField_finiteDimensional

Every standard Lubin--Tate level field is finite-dimensional over the base field.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
universe u v
namespace LubinTate
open LocalFieldTheory.DiscreteValuationField
variable {K : Type u} [Field K]
theorem standardLubinTateLevelField_finiteDimensional
    {F : LocalField.{u, v} K} {π : F.valuationSubring}
    (hπ : F.toCompleteDVF.valuation.IsUniformizer (π : K)) (n : ℕ) :
    FiniteDimensional K (standardLubinTateLevelField hπ n)
LubinTate.standardLubinTateLevelField_finrank

The standard primitive level-n+1 extension has degree (q - 1) * q ^ n.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
universe u v
namespace LubinTate
open LocalFieldTheory.DiscreteValuationField
variable {K : Type u} [Field K]
theorem standardLubinTateLevelField_finrank
    {F : LocalField.{u, v} K} {π : F.valuationSubring}
    (hπ : F.toCompleteDVF.valuation.IsUniformizer (π : K)) (n : ℕ) :
    Module.finrank K (standardLubinTateLevelField hπ n) =
      (Nat.card F.residueField - 1) *
        Nat.card F.residueField ^ n