FLT/Mathlib/RingTheory/Unramified/LocalRing.lean

GitHub source file

Explanation legend Lean4 Domain Explanation Language (L4DEL)

L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.

L4DEL
Lean4 Domain Explanation Language

Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.

Project sources: Pinned project documentation, Pinned FLT blueprint introduction

1 declarations, 0 contain sorry, 0 declared as axioms

Unramified lifts of separable residue field extensions

Material for Mathlib.RingTheory.Unramified.LocalRing, whose characterization of unramified extensions of local rings (Algebra.FormallyUnramified.iff_map_maximalIdeal_eq) this complements with an existence statement.

A finite separable extension k' of the residue field k of a discrete valuation ring R (with fraction field K) lifts to an unramified extension L/K of the same degree: writing k' = k[X]/(p̄) via a power basis (primitive element), we lift p̄ to a monic P ∈ R[X] and set L = K[X]/(P). The integral extension S = R[X]/(P) is again a discrete valuation ring, with S/πS ≅ k[X]/(p̄) = k' — so its maximal ideal is generated by a uniformizer π of R (ramification index 1) and its residue field is k'.

The ingredients — AdjoinRoot.isDiscreteValuationRing_of_irreducible_map_residue (R[X]/(P) is an unramified discrete valuation ring for monic P with irreducible reduction, in FLT.Mathlib.RingTheory.AdjoinRoot) and the separability transfer Polynomial.Monic.separable_map_algebraMap_of_separable_map_residue (in FLT.Mathlib.RingTheory.DiscreteValuationRing.Basic) — are assembled here into

The quadratic case of the lifting theorem is the local-field input to WeierstrassCurve.exists_quadraticTwist_hasSplitMultiplicativeReduction.

Imports (5)
Imported by 2 files
  1. theorem exists_unramified_extension_of_residueField Unramified lifting, arbitrary degree line 56 source

    Source documentation

    Unramified lifting, arbitrary degree. A finite separable extension k' of the residue field of a discrete valuation ring R lifts to an unramified extension L of its fraction field K: there is a finite separable extension L/K with [L : K] = [k' : k] and a discrete valuation ring S with fraction field L, containing R via a local homomorphism, whose residue field is k'. (The residue degree being [L : K] forces ramification index 1.)

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: CommRing, IsDomain, IsDiscreteValuationRing, Field, Algebra, IsFractionRing, IsLocalRing.ResidueField, FiniteDimensional, Algebra.IsSeparable, Exists, IsScalarTower, Module.Finite, IsLocalHom, RingHom, Algebra.algebraMap, And, Eq, Nat, Module.finrank, Nonempty and 1 more

    Proof uses: Polynomial, Polynomial.Monic, Polynomial.Separable, Irreducible, Polynomial.natDegree, AdjoinRoot, Field.exists_monic_irreducible_adjoinRoot_algEquiv, LT.lt, OfNat.ofNat, Eq.rec, Module.finrank_pos, Eq.symm, Polynomial.map, IsLocalRing.residue, IsLocalRing.exists_monic_map_residue_eq, Eq.mpr, id, congrArg, Polynomial.Monic.irreducible_of_irreducible_map, Ne and 62 more

    117 instances, coercions and auxiliary constants left out.

    Tactic trace: 32 steps

    Open to load the checked before-and-after goal states.

    theorem exists_unramified_extension_of_residueField
        (k' : Type u) [Field k'] [Algebra (ResidueField R) k']
        [FiniteDimensional (ResidueField R) k'] [Algebra.IsSeparable (ResidueField R) k'] :
        ∃ (L : Type u) (_ : Field L) (_ : Algebra K L) (_ : FiniteDimensional K L)
          (_ : Algebra.IsSeparable K L) (_ : Algebra R L) (_ : IsScalarTower R K L) (S : Type u)
          (_ : CommRing S) (_ : IsDomain S) (_ : IsDiscreteValuationRing S) (_ : Algebra R S)
          (_ : Module.Finite R S) (_ : Algebra S L) (_ : IsScalarTower R S L) (_ : IsFractionRing S L)
          (_ : IsLocalHom (algebraMap R S)),
          Module.finrank K L = Module.finrank (ResidueField R) k'
            ∧ Nonempty (ResidueField S ≃ₐ[ResidueField R] k') := by
    …