Module

NormalizedIntegerValuation.lean

Nyll.ValuedFieldTheory.LocalField.NonarchimedeanLocalField.NormalizedIntegerValuation
12 declarations indexed from sourceView source ↗

The normalized integer valuation of a local field

The Kummer branch of the local existence theorem uses power-class index formulas stated for valuations with value group WithZero (Multiplicative ℤ). A nonarchimedean local field carries its canonical valuation in an intrinsic value group. This file transports that valuation to the integer model and proves that completeness and the finite residue field are preserved.

Declarations

LocalFieldTheory.localIntegerValuation

The canonical local valuation, normalized to the value group WithZero (Multiplicative ℤ).

Source context 5 commands

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

noncomputable section
namespace LocalFieldTheory
open scoped ValuativeRel
universe u
variable (K : Type u) [Field K] [ValuativeRel K] [TopologicalSpace K]
  [IsNonarchimedeanLocalField K]
def localIntegerValuation :
    _root_.Valuation K (WithZero (Multiplicative ℤ))
LocalFieldTheory.localIntegerValuation_apply

The integer-valued valuation applies the canonical value-group isomorphism.

Source context 5 commands

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

noncomputable section
namespace LocalFieldTheory
open scoped ValuativeRel
universe u
variable (K : Type u) [Field K] [ValuativeRel K] [TopologicalSpace K]
  [IsNonarchimedeanLocalField K]
theorem localIntegerValuation_apply (x : K) :
    localIntegerValuation K x =
      IsNonarchimedeanLocalField.valueGroupWithZeroIsoInt K
        (ValuativeRel.valuation K x)
LocalFieldTheory.localCompleteDVF_valuation_eq

The valuation in the canonical complete-DVF package is the original local valuation.

Source context 5 commands

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

noncomputable section
namespace LocalFieldTheory
open scoped ValuativeRel
universe u
variable (K : Type u) [Field K] [ValuativeRel K] [TopologicalSpace K]
  [IsNonarchimedeanLocalField K]
theorem localCompleteDVF_valuation_eq :
    (localCompleteDVF K).valuation = ValuativeRel.valuation K
LocalFieldTheory.integerRing_moduleFinite_of_finite_separable

A finite separable local extension is finite over the actual canonical valuation integer ring. This transports the finite-module theorem for the complete-DVF packages along the equality of their valuations.

Source context 6 commands

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

noncomputable section
namespace LocalFieldTheory
open scoped ValuativeRel
universe u
variable (K : Type u) [Field K] [ValuativeRel K] [TopologicalSpace K]
  [IsNonarchimedeanLocalField K]
open _root_.ValuationTheory.DiscreteValuationField.ValuedExtension
  (moduleFinite_target_valuationSubring_of_finite_separable) in
theorem integerRing_moduleFinite_of_finite_separable
    (L : Type u) [Field L] [Algebra K L] [FiniteDimensional K L]
    [Algebra.IsSeparable K L] [ValuativeRel L] [TopologicalSpace L]
    [IsNonarchimedeanLocalField L]
    [Valuation.HasExtension (ValuativeRel.valuation K)
      (ValuativeRel.valuation L)] :
    Module.Finite
      (ValuativeRel.valuation K).integer
      (ValuativeRel.valuation L).integer
LocalFieldTheory.localIntegerValuation_valuationSubring_eq

Normalizing the value group does not change the valuation ring.

Source context 5 commands

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

noncomputable section
namespace LocalFieldTheory
open scoped ValuativeRel
universe u
variable (K : Type u) [Field K] [ValuativeRel K] [TopologicalSpace K]
  [IsNonarchimedeanLocalField K]
theorem localIntegerValuation_valuationSubring_eq :
    (localIntegerValuation K).valuationSubring =
      (localCompleteDVF K).valuation.valuationSubring
LocalFieldTheory.localIntegerValuation_surjective

The normalized integer valuation is onto.

Source context 5 commands

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

noncomputable section
namespace LocalFieldTheory
open scoped ValuativeRel
universe u
variable (K : Type u) [Field K] [ValuativeRel K] [TopologicalSpace K]
  [IsNonarchimedeanLocalField K]
theorem localIntegerValuation_surjective :
    Function.Surjective (localIntegerValuation K)
LocalFieldTheory.localIntegerValuationSubringEquiv

Identity on field elements gives the valuation-ring equivalence attached to the normalization of the value group.

Source context 5 commands

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

noncomputable section
namespace LocalFieldTheory
open scoped ValuativeRel
universe u
variable (K : Type u) [Field K] [ValuativeRel K] [TopologicalSpace K]
  [IsNonarchimedeanLocalField K]
def localIntegerValuationSubringEquiv :
    (localIntegerValuation K).valuationSubring ≃+*
      (localCompleteDVF K).valuationSubring where
  toFun := fun x => ⟨x, by
    change (localCompleteDVF K).valuation (x : K) ≤ 1
    rw [localCompleteDVF_valuation_eq]
    have hx :
        IsNonarchimedeanLocalField.valueGroupWithZeroIsoInt K
            (ValuativeRel.valuation K (x : K)) ≤
          IsNonarchimedeanLocalField.valueGroupWithZeroIsoInt K 1 := by
      have hxmem := x.property
      change localIntegerValuation K (x : K) ≤ 1 at hxmem
      rw [localIntegerValuation_apply] at hxmem
      simpa only [map_one] using hxmem
    exact
      (map_le_map_iff
        (IsNonarchimedeanLocalField.valueGroupWithZeroIsoInt K)).mp hx⟩
  invFun := fun x => ⟨x, by
    have hx : ValuativeRel.valuation K (x : K) ≤ 1 := by
      have hxmem := x.property
      change (localCompleteDVF K).valuation (x : K) ≤ 1 at hxmem
      rw [localCompleteDVF_valuation_eq] at hxmem
      exact hxmem
    change
      IsNonarchimedeanLocalField.valueGroupWithZeroIsoInt K
          (ValuativeRel.valuation K (x : K)) ≤ 1
    simpa only [localIntegerValuation, _root_.Valuation.map_apply,
      map_one] using
      (map_le_map_iff
        (IsNonarchimedeanLocalField.valueGroupWithZeroIsoInt K)).mpr hx⟩
  left_inv := fun x => by ext; rfl
  right_inv := fun x => by ext; rfl
  map_mul' := fun x y => by ext; rfl
  map_add' := fun x y => by ext; rfl
LocalFieldTheory.localIntegerValuationSubringEquiv_apply_coe

The valuation-subring equivalence preserves the underlying element of K.

Source context 5 commands

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

noncomputable section
namespace LocalFieldTheory
open scoped ValuativeRel
universe u
variable (K : Type u) [Field K] [ValuativeRel K] [TopologicalSpace K]
  [IsNonarchimedeanLocalField K]
theorem localIntegerValuationSubringEquiv_apply_coe
    (x : (localIntegerValuation K).valuationSubring) :
    ((localIntegerValuationSubringEquiv K x :
      (localCompleteDVF K).valuationSubring) : K) = x
LocalFieldTheory.localIntegerValuationSubringEquiv_mem_maximalIdeal_iff

The valuation-subring equivalence preserves membership in the maximal ideal.

Source context 5 commands

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

noncomputable section
namespace LocalFieldTheory
open scoped ValuativeRel
universe u
variable (K : Type u) [Field K] [ValuativeRel K] [TopologicalSpace K]
  [IsNonarchimedeanLocalField K]
theorem localIntegerValuationSubringEquiv_mem_maximalIdeal_iff
    (x : (localIntegerValuation K).valuationSubring) :
    localIntegerValuationSubringEquiv K x ∈
        IsLocalRing.maximalIdeal (localCompleteDVF K).valuationSubring ↔
      x ∈ IsLocalRing.maximalIdeal
        (localIntegerValuation K).valuationSubring
LocalFieldTheory.localIntegerValuationSubringEquiv_map_maximalIdeal

The valuation-subring equivalence maps the integer maximal ideal onto the canonical one.

Source context 5 commands

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

noncomputable section
namespace LocalFieldTheory
open scoped ValuativeRel
universe u
variable (K : Type u) [Field K] [ValuativeRel K] [TopologicalSpace K]
  [IsNonarchimedeanLocalField K]
theorem localIntegerValuationSubringEquiv_map_maximalIdeal :
    (IsLocalRing.maximalIdeal
        (localIntegerValuation K).valuationSubring).map
      (localIntegerValuationSubringEquiv K :
        (localIntegerValuation K).valuationSubring →+*
          (localCompleteDVF K).valuationSubring) =
      IsLocalRing.maximalIdeal (localCompleteDVF K).valuationSubring
LocalFieldTheory.localIntegerValuation_isCompleteDiscrete

The normalized valuation is a complete discrete valuation.

Source context 5 commands

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

noncomputable section
namespace LocalFieldTheory
open scoped ValuativeRel
universe u
variable (K : Type u) [Field K] [ValuativeRel K] [TopologicalSpace K]
  [IsNonarchimedeanLocalField K]
instance localIntegerValuation_isCompleteDiscrete :
    ValuationTheory.DiscreteValuationField.Valuation.IsCompleteDiscrete
      (localIntegerValuation K) where
  isRankOneDiscrete := by
    let v := localIntegerValuation K
    have : v.IsNontrivial := by
      obtain ⟨x, hx⟩ :=
        localIntegerValuation_surjective K (WithZero.exp (-1 : ℤ))
      refine ⟨⟨x, ?_, ?_⟩⟩
      · rw [hx]
        simp
      · rw [hx]
        change WithZero.exp (-1 : ℤ) ≠ WithZero.exp (0 : ℤ)
        simp
    have : IsCyclic (MonoidWithZeroHom.valueGroup v.toMonoidWithZeroHom) :=
      Subgroup.isCyclic_of_le
        (show MonoidWithZeroHom.valueGroup v.toMonoidWithZeroHom ≤ ⊤ from le_top)
    exact _root_.Valuation.IsRankOneDiscrete.mk' v
  isAdicComplete := by
    let e := localIntegerValuationSubringEquiv K
    let : IsAdicComplete
        (IsLocalRing.maximalIdeal (localCompleteDVF K).valuationSubring)
        (localCompleteDVF K).valuationSubring :=
      (localCompleteDVF K).isAdicComplete
    have hcomplete :
        IsAdicComplete
          ((IsLocalRing.maximalIdeal
            (localCompleteDVF K).valuationSubring).map
              (e.symm : (localCompleteDVF K).valuationSubring →+*
                (localIntegerValuation K).valuationSubring))
          (localIntegerValuation K).valuationSubring :=
      ValuationTheory.DiscreteValuationField.isAdicComplete_map_ringEquiv
        (I := IsLocalRing.maximalIdeal
          (localCompleteDVF K).valuationSubring) e.symm
    have hmap :
        (IsLocalRing.maximalIdeal
          (localCompleteDVF K).valuationSubring).map
            (e.symm : (localCompleteDVF K).valuationSubring →+*
              (localIntegerValuation K).valuationSubring) =
          IsLocalRing.maximalIdeal
            (localIntegerValuation K).valuationSubring := by
      ext x
      rw [Ideal.mem_map_iff_of_surjective
        (e.symm : (localCompleteDVF K).valuationSubring →+*
          (localIntegerValuation K).valuationSubring) e.symm.surjective]
      constructor
      · rintro ⟨y, hy, rfl⟩
        exact
          (localIntegerValuationSubringEquiv_mem_maximalIdeal_iff K
            (e.symm y)).1 (by simpa [e] using hy)
      · intro hx
        refine ⟨e x, ?_, by simp [e]⟩
        exact
          (localIntegerValuationSubringEquiv_mem_maximalIdeal_iff K x).2 hx
    simpa [hmap] using hcomplete
LocalFieldTheory.localIntegerValuation_residueFinite

The normalized valuation has the same finite residue field as the canonical local valuation.

Source context 5 commands

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

noncomputable section
namespace LocalFieldTheory
open scoped ValuativeRel
universe u
variable (K : Type u) [Field K] [ValuativeRel K] [TopologicalSpace K]
  [IsNonarchimedeanLocalField K]
instance localIntegerValuation_residueFinite :
    Finite
      (IsLocalRing.ResidueField
        (localIntegerValuation K).valuationSubring)