Module

Core.lean

Nyll.ValuedFieldTheory.Valuation.AbsoluteValue.Theory.Core
58 declarations indexed from sourceView source ↗

Provides the public declarations in the ValuationTheory.AbsoluteValue.Theory Lean module.

Declarations

LubinTate.Valuations.uniformizerPowerIdeal_primeElement_eq_exponentialMaxIdeal_pow_of_normalized

For a normalized exponential valuation, the principal-power ideal π^n𝒪 attached to a normalized prime element is the n-th power of the positive-value maximal ideal.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem uniformizerPowerIdeal_primeElement_eq_exponentialMaxIdeal_pow_of_normalized
    {K : Type*} [Field K] {v : ExponentialValuation K}
    (hv : NormalizedExponentialValuation v) {π : K}
    (hπ : PrimeElementFor v π) (n : ℕ) :
    uniformizerPowerIdeal (primeElementInValuationSubring v hπ) n =
      (exponentialMaxIdeal v) ^ n
LubinTate.Valuations.uniformizerPowerIdeal_primeElement_eq_maximalIdeal_pow_of_normalized

The same identification, expressed using mathlib's maximal ideal of the valuation ring.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem uniformizerPowerIdeal_primeElement_eq_maximalIdeal_pow_of_normalized
    {K : Type*} [Field K] {v : ExponentialValuation K}
    (hv : NormalizedExponentialValuation v) {π : K}
    (hπ : PrimeElementFor v π) (n : ℕ) :
    uniformizerPowerIdeal (primeElementInValuationSubring v hπ) n =
      (IsLocalRing.maximalIdeal (exponentialValuationSubring v)) ^ n
LubinTate.Valuations.residue_addEquiv_maximalIdeal_pow_quotient

The ideal structure theorem for discrete valuation rings, successive-quotient part in maximal-ideal notation: 𝒪/𝔭 ≃+ 𝔭^n/𝔭^(n+1). This retains the additive structure supplied by the generic quotient-of-powers theorem instead of weakening it to a bare bijection.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
def residue_addEquiv_maximalIdeal_pow_quotient
    {K : Type*} [Field K] {v : ExponentialValuation K}
    (hv : NormalizedExponentialValuation v) {π : K}
    (hπ : PrimeElementFor v π) (n : ℕ) :
    (exponentialValuationSubring v ⧸
      IsLocalRing.maximalIdeal (exponentialValuationSubring v)) ≃+
      Ideal.map
        (Ideal.Quotient.mk
          ((IsLocalRing.maximalIdeal (exponentialValuationSubring v)) ^ (n + 1)))
        ((IsLocalRing.maximalIdeal (exponentialValuationSubring v)) ^ n)
LubinTate.Valuations.residue_addEquiv_uniformizerPowerIdeal_quotient

The ideal structure theorem for discrete valuation rings, successive-quotient part in the principal-power notation π^n𝒪: 𝒪/(π) ≃+ π^n𝒪/π^(n+1)𝒪, represented as the image of π^n𝒪 inside 𝒪/π^(n+1)𝒪.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
def residue_addEquiv_uniformizerPowerIdeal_quotient
    {K : Type*} [Field K] {v : ExponentialValuation K}
    (hv : NormalizedExponentialValuation v) {π : K}
    (hπ : PrimeElementFor v π) (n : ℕ) :
    (exponentialValuationSubring v ⧸
      uniformizerPowerIdeal (primeElementInValuationSubring v hπ) 1) ≃+
      Ideal.map
        (Ideal.Quotient.mk
          (uniformizerPowerIdeal (primeElementInValuationSubring v hπ) (n + 1)))
        (uniformizerPowerIdeal (primeElementInValuationSubring v hπ) n)
LubinTate.Valuations.uniformizerGradedPiece

The graded piece π^n𝒪 / π^{n+1}𝒪 as an additive quotient.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
def uniformizerGradedPiece {O : Type*} [CommRing O] (π : O) (n : ℕ) : Type _
LubinTate.Valuations.uniformizerGradedPieceAddCommGroup

A uniformizer graded piece inherits an additive commutative group structure.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
instance uniformizerGradedPieceAddCommGroup
    {O : Type*} [CommRing O] (π : O) (n : ℕ) :
    AddCommGroup (uniformizerGradedPiece π n)
LubinTate.Valuations.uniformizerGradedPieceModule

A uniformizer graded piece is a module over the valuation subring.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
instance uniformizerGradedPieceModule
    {O : Type*} [CommRing O] (π : O) (n : ℕ) :
    Module O (uniformizerGradedPiece π n)
LubinTate.Valuations.uniformizerGradedPieceConcreteLinearEquiv

Explicit access to the submodule quotient implementing a uniformizer graded piece.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
def uniformizerGradedPieceConcreteLinearEquiv
    {O : Type*} [CommRing O] (π : O) (n : ℕ) :
    uniformizerGradedPiece π n ≃ₗ[O]
      ((uniformizerPowerIdeal π n) ⧸
        (Submodule.comap (uniformizerPowerIdeal π n).subtype
          (uniformizerPowerIdeal π (n + 1) : Submodule O O) :
            Submodule O (uniformizerPowerIdeal π n)))
LubinTate.Valuations.uniformizerGradedPieceMk

The canonical class map into π^n𝒪 / π^(n+1)𝒪.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
def uniformizerGradedPieceMk
    {O : Type*} [CommRing O] (π : O) (n : ℕ) :
    uniformizerPowerIdeal π n →ₗ[O] uniformizerGradedPiece π n
LubinTate.Valuations.uniformizerGradedPieceConcreteLinearEquiv_mk

The concrete graded-piece equivalence sends a quotient representative to the same coset.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem uniformizerGradedPieceConcreteLinearEquiv_mk
    {O : Type*} [CommRing O] (π : O) (n : ℕ)
    (a : uniformizerPowerIdeal π n) :
    uniformizerGradedPieceConcreteLinearEquiv π n
        (uniformizerGradedPieceMk π n a) =
      Submodule.Quotient.mk a
LubinTate.Valuations.uniformizerGradedPieceMk_surjective

The canonical map onto a uniformizer graded piece is surjective.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem uniformizerGradedPieceMk_surjective
    {O : Type*} [CommRing O] (π : O) (n : ℕ) :
    Function.Surjective (uniformizerGradedPieceMk π n)
LubinTate.Valuations.uniformizerGradedPiece.inductionOn

Eliminate a uniformizer graded-piece class through its canonical representatives.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem uniformizerGradedPiece.inductionOn
    {O : Type*} [CommRing O] (π : O) (n : ℕ)
    {motive : uniformizerGradedPiece π n → Prop}
    (q : uniformizerGradedPiece π n)
    (h : ∀ a : uniformizerPowerIdeal π n,
      motive (uniformizerGradedPieceMk π n a)) :
    motive q
LubinTate.Valuations.uniformizerGradedPieceLinearLift

Descend a linear map that vanishes on π^(n+1)𝒪 inside π^n𝒪.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
def uniformizerGradedPieceLinearLift
    {O M : Type*} [CommRing O] [AddCommGroup M] [Module O M]
    (π : O) (n : ℕ)
    (f : uniformizerPowerIdeal π n →ₗ[O] M)
    (h :
      (Submodule.comap (uniformizerPowerIdeal π n).subtype
        (uniformizerPowerIdeal π (n + 1) : Submodule O O) :
          Submodule O (uniformizerPowerIdeal π n)) ≤ f.ker) :
    uniformizerGradedPiece π n →ₗ[O] M
LubinTate.Valuations.uniformizerGradedPieceLinearLift_mk

A linear lift from the graded piece evaluates on representatives by the supplied map.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem uniformizerGradedPieceLinearLift_mk
    {O M : Type*} [CommRing O] [AddCommGroup M] [Module O M]
    (π : O) (n : ℕ)
    (f : uniformizerPowerIdeal π n →ₗ[O] M)
    (h :
      (Submodule.comap (uniformizerPowerIdeal π n).subtype
        (uniformizerPowerIdeal π (n + 1) : Submodule O O) :
          Submodule O (uniformizerPowerIdeal π n)) ≤ f.ker)
    (a : uniformizerPowerIdeal π n) :
    uniformizerGradedPieceLinearLift π n f h
        (uniformizerGradedPieceMk π n a) = f a
LubinTate.Valuations.uniformizerGradedPieceMk_eq_zero_iff

A graded-piece class is zero exactly when its representative lies in the next filtration step.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem uniformizerGradedPieceMk_eq_zero_iff
    {O : Type*} [CommRing O] (π : O) (n : ℕ)
    (a : uniformizerPowerIdeal π n) :
    uniformizerGradedPieceMk π n a = 0 ↔
      a ∈
        (Submodule.comap (uniformizerPowerIdeal π n).subtype
          (uniformizerPowerIdeal π (n + 1) : Submodule O O) :
            Submodule O (uniformizerPowerIdeal π n))
LubinTate.Valuations.HigherUnit

The higher-unit condition u ∈ 1 + π^n𝒪.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
def HigherUnit {O : Type*} [CommRing O] (π : O) (n : ℕ) (u : Oˣ) : Prop
LubinTate.Valuations.higherUnit_iff_sub_one_mem_powerIdeal

The higher-unit condition is equivalently u - 1 ∈ π^n𝒪.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem higherUnit_iff_sub_one_mem_powerIdeal {O : Type*} [CommRing O]
    (π : O) (n : ℕ) (u : Oˣ) :
    HigherUnit π n u ↔ (u : O) - 1 ∈ uniformizerPowerIdeal π n
LubinTate.Valuations.higherUnitSubgroup

The higher unit group U⁽ⁿ⁾ = 1 + π^n𝒪, as an actual subgroup of Oˣ.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
def higherUnitSubgroup {O : Type*} [CommRing O] (π : O) (n : ℕ) : Subgroup Oˣ where
  carrier := {u | HigherUnit π n u}
  one_mem' := by
    use 0
    simp
  mul_mem' := by
    rintro u v ⟨a, ha⟩ ⟨b, hb⟩
    use a + b + π ^ n * a * b
    calc
      ((u * v : Oˣ) : O) = (u : O) * (v : O) := rfl
      _ = (1 + π ^ n * a) * (1 + π ^ n * b) := by rw [ha, hb]
      _ = 1 + π ^ n * (a + b + π ^ n * a * b) := by ring
  inv_mem' := by
    rintro u ⟨a, ha⟩
    use -((u⁻¹ : Oˣ) : O) * a
    have hmul : ((u⁻¹ : Oˣ) : O) * (u : O) = 1 := by
      simp
    calc
      ((u⁻¹ : Oˣ) : O) =
          ((u⁻¹ : Oˣ) : O) * (u : O) -
            ((u⁻¹ : Oˣ) : O) * ((u : O) - 1) := by
        ring
      _ = 1 - ((u⁻¹ : Oˣ) : O) * ((u : O) - 1) := by
        rw [hmul]
      _ = 1 + π ^ n * (-((u⁻¹ : Oˣ) : O) * a) := by
        rw [ha]
        ring
LubinTate.Valuations.mem_higherUnitSubgroup

Membership in a higher-unit subgroup is characterized by proximity to one at the given level.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem mem_higherUnitSubgroup {O : Type*} [CommRing O]
    {π : O} {n : ℕ} {u : Oˣ} :
    u ∈ higherUnitSubgroup π n ↔ HigherUnit π n u
LubinTate.Valuations.mem_higherUnitSubgroup_iff_sub_one_mem_powerIdeal

Membership in the higher-unit subgroup is equivalently u - 1 ∈ π^n𝒪.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem mem_higherUnitSubgroup_iff_sub_one_mem_powerIdeal
    {O : Type*} [CommRing O] {π : O} {n : ℕ} {u : Oˣ} :
    u ∈ higherUnitSubgroup π n ↔ (u : O) - 1 ∈ uniformizerPowerIdeal π n
LubinTate.Valuations.mem_higherUnitSubgroup_primeElement_iff_sub_one_mem_maximalIdeal_pow

For a normalized exponential valuation, higher units defined by a normalized prime element are exactly units congruent to 1 modulo the corresponding power of the maximal ideal.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem mem_higherUnitSubgroup_primeElement_iff_sub_one_mem_maximalIdeal_pow
    {K : Type*} [Field K] {v : ExponentialValuation K}
    (hv : NormalizedExponentialValuation v) {π : K}
    (hπ : PrimeElementFor v π) {n : ℕ}
    {u : (exponentialValuationSubring v)ˣ} :
    u ∈ higherUnitSubgroup (primeElementInValuationSubring v hπ) n ↔
      (u : exponentialValuationSubring v) - 1 ∈
        (IsLocalRing.maximalIdeal (exponentialValuationSubring v)) ^ n
LubinTate.Valuations.higherUnit_coeff_unique

The coefficient in a higher-unit representation is unique in a domain.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem higherUnit_coeff_unique {O : Type*} [CommRing O] [IsDomain O]
    {π : O} {n : ℕ} (hπ0 : π ≠ 0) {u : Oˣ} {a b : O}
    (ha : (u : O) = 1 + π ^ n * a)
    (hb : (u : O) = 1 + π ^ n * b) :
    a = b
LubinTate.Valuations.chosenHigherUnitCoeff

A chosen coefficient a for an element of U⁽ⁿ⁾ = 1 + π^n𝒪.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
def chosenHigherUnitCoeff {O : Type*} [CommRing O]
    (π : O) (n : ℕ) (u : higherUnitSubgroup π n) : O
LubinTate.Valuations.chosenHigherUnitCoeff_spec

The chosen coefficient really represents the higher unit.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem chosenHigherUnitCoeff_spec {O : Type*} [CommRing O]
    (π : O) (n : ℕ) (u : higherUnitSubgroup π n) :
    ((u : Oˣ) : O) = 1 + π ^ n * chosenHigherUnitCoeff π n u
LubinTate.Valuations.chosenHigherUnitCoeff_eq_of_repr

The chosen coefficient agrees with any displayed representation.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem chosenHigherUnitCoeff_eq_of_repr {O : Type*} [CommRing O] [IsDomain O]
    {π : O} {n : ℕ} (hπ0 : π ≠ 0) {u : higherUnitSubgroup π n} {a : O}
    (ha : ((u : Oˣ) : O) = 1 + π ^ n * a) :
    chosenHigherUnitCoeff π n u = a
LubinTate.Valuations.higherUnitSubgroup_succ_le

The higher-unit filtration is decreasing.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem higherUnitSubgroup_succ_le {O : Type*} [CommRing O]
    (π : O) (n : ℕ) :
    higherUnitSubgroup π (n + 1) ≤ higherUnitSubgroup π n
LubinTate.Valuations.higherUnitSubgroup_zero_eq_top

The zeroth higher-unit subgroup is the whole unit group.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem higherUnitSubgroup_zero_eq_top {O : Type*} [CommRing O]
    (π : O) :
    higherUnitSubgroup π 0 = ⊤
LubinTate.Valuations.higherUnitSubgroup_le_of_le

The higher-unit filtration is decreasing for arbitrary comparable indices.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem higherUnitSubgroup_le_of_le {O : Type*} [CommRing O]
    (π : O) {m n : ℕ} (hmn : m ≤ n) :
    higherUnitSubgroup π n ≤ higherUnitSubgroup π m
LubinTate.Valuations.isUnit_one_add_of_mem_maximalIdeal

In a local ring, adding an element of the maximal ideal to 1 gives a unit.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem isUnit_one_add_of_mem_maximalIdeal {O : Type*} [CommRing O] [IsLocalRing O]
    {x : O} (hx : x ∈ IsLocalRing.maximalIdeal O) :
    IsUnit (1 + x)
LubinTate.Valuations.unitReduction

Reduction of units modulo an ideal.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
def unitReduction {O : Type*} [CommRing O] (I : Ideal O) : Oˣ →* (O ⧸ I)ˣ
LubinTate.Valuations.unitReduction_apply

Unit reduction is the residue of the underlying valuation-ring unit.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem unitReduction_apply {O : Type*} [CommRing O] (I : Ideal O) (u : Oˣ) :
    (unitReduction I u : O ⧸ I) = Ideal.Quotient.mk I (u : O)
LubinTate.Valuations.unitReduction_ker_powerIdeal

The kernel of reduction modulo π^n𝒪 is the higher unit group 1 + π^n𝒪.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem unitReduction_ker_powerIdeal {O : Type*} [CommRing O]
    (π : O) (n : ℕ) :
    (unitReduction (uniformizerPowerIdeal π n)).ker = higherUnitSubgroup π n
LubinTate.Valuations.unitReduction_ker_maximalIdeal_pow_primeElement_of_normalized

For a normalized exponential valuation, the kernel of reduction modulo maximalIdeal^n is the higher-unit subgroup attached to a normalized prime element.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem unitReduction_ker_maximalIdeal_pow_primeElement_of_normalized
    {K : Type*} [Field K] {v : ExponentialValuation K}
    (hv : NormalizedExponentialValuation v) {π : K}
    (hπ : PrimeElementFor v π) (n : ℕ) :
    (unitReduction
      ((IsLocalRing.maximalIdeal (exponentialValuationSubring v)) ^ n)).ker =
      higherUnitSubgroup (primeElementInValuationSubring v hπ) n
LubinTate.Valuations.unitReduction_surjective_of_isLocalHom

A local quotient map induces a surjection on unit groups.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem unitReduction_surjective_of_isLocalHom {O : Type*} [CommRing O]
    (I : Ideal O) [IsLocalHom (Ideal.Quotient.mk I)] :
    Function.Surjective (unitReduction I)
LubinTate.Valuations.unitReduction_isLocalHom_maximalIdeal_pow_of_pos

For a exponential valuation ring, the quotient map modulo maximalIdeal^n is local for n ≥ 1.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem unitReduction_isLocalHom_maximalIdeal_pow_of_pos
    {K : Type*} [Field K] (v : ExponentialValuation K)
    {n : ℕ} (hn : 1 ≤ n) :
    IsLocalHom
      (Ideal.Quotient.mk
        ((IsLocalRing.maximalIdeal (exponentialValuationSubring v)) ^ n))
LubinTate.Valuations.unitsModPowerIdealEquivOfSurjective

The first-isomorphism-theorem form of the unit quotient modulo π^n𝒪.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
def unitsModPowerIdealEquivOfSurjective {O : Type*} [CommRing O]
    (π : O) (n : ℕ)
    (hsurj : Function.Surjective (unitReduction (uniformizerPowerIdeal π n))) :
    Oˣ ⧸ higherUnitSubgroup π n ≃* (O ⧸ uniformizerPowerIdeal π n)ˣ
LubinTate.Valuations.unitsModPowerIdealEquivOfIsLocalHom

If reduction modulo π^n𝒪 is a local quotient, then Oˣ/U⁽ⁿ⁾ is the unit group of O/π^n𝒪.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
def unitsModPowerIdealEquivOfIsLocalHom {O : Type*} [CommRing O]
    (π : O) (n : ℕ) [IsLocalHom (Ideal.Quotient.mk (uniformizerPowerIdeal π n))] :
    Oˣ ⧸ higherUnitSubgroup π n ≃* (O ⧸ uniformizerPowerIdeal π n)ˣ
LubinTate.Valuations.unitsModMaximalIdealPowEquivOfSurjectiveNormalized

The first-isomorphism-theorem form for a normalized exponential-valuation ring, modulo maximalIdeal^n, assuming surjectivity of reduction on units.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
def unitsModMaximalIdealPowEquivOfSurjectiveNormalized
    {K : Type*} [Field K] {v : ExponentialValuation K}
    (hv : NormalizedExponentialValuation v) {π : K}
    (hπ : PrimeElementFor v π) (n : ℕ)
    (hsurj : Function.Surjective
      (unitReduction
        ((IsLocalRing.maximalIdeal (exponentialValuationSubring v)) ^ n))) :
    ((exponentialValuationSubring v)ˣ ⧸
        higherUnitSubgroup (primeElementInValuationSubring v hπ) n) ≃*
      (exponentialValuationSubring v ⧸
        (IsLocalRing.maximalIdeal (exponentialValuationSubring v)) ^ n)ˣ
LubinTate.Valuations.unitsModMaximalIdealPowEquivOfNormalized

For a normalized exponential-valuation ring and n ≥ 1, Oˣ/U⁽ⁿ⁾ is the unit group of O/maximalIdeal^n.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
def unitsModMaximalIdealPowEquivOfNormalized
    {K : Type*} [Field K] {v : ExponentialValuation K}
    (hv : NormalizedExponentialValuation v) {π : K}
    (hπ : PrimeElementFor v π) {n : ℕ} (hn : 1 ≤ n) :
    ((exponentialValuationSubring v)ˣ ⧸
        higherUnitSubgroup (primeElementInValuationSubring v hπ) n) ≃*
      (exponentialValuationSubring v ⧸
        (IsLocalRing.maximalIdeal (exponentialValuationSubring v)) ^ n)ˣ
LubinTate.Valuations.uniformizerPowerIdeal_le_span_singleton

For n ≥ 1, the ideal π^n𝒪 is contained in (π).

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem uniformizerPowerIdeal_le_span_singleton {O : Type*} [CommRing O]
    {π : O} {n : ℕ} (hn : 1 ≤ n) :
    uniformizerPowerIdeal π n ≤ Ideal.span ({π} : Set O)
LubinTate.Valuations.uniformizerPowerIdeal_le_jacobson_bot

In a DVR, π^n𝒪 lies in the Jacobson radical for n ≥ 1 and π irreducible.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem uniformizerPowerIdeal_le_jacobson_bot {O : Type*}
    [CommRing O] [IsDomain O] [IsDiscreteValuationRing O]
    {π : O} (hπ : Irreducible π) {n : ℕ} (hn : 1 ≤ n) :
    uniformizerPowerIdeal π n ≤ Ideal.jacobson (⊥ : Ideal O)
LubinTate.Valuations.unitReduction_isLocalHom_of_dvr

The quotient map modulo π^n𝒪 is local in a DVR, for n ≥ 1.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem unitReduction_isLocalHom_of_dvr {O : Type*}
    [CommRing O] [IsDomain O] [IsDiscreteValuationRing O]
    {π : O} (hπ : Irreducible π) {n : ℕ} (hn : 1 ≤ n) :
    IsLocalHom (Ideal.Quotient.mk (uniformizerPowerIdeal π n))
LubinTate.Valuations.higherUnitCoeffModHom

The graded coefficient map U⁽ⁿ⁾ → 𝒪/(π), 1 + π^n a ↦ a mod π, viewed multiplicatively by tagging the additive residue group as Multiplicative.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
def higherUnitCoeffModHom {O : Type*}
    [CommRing O] [IsDomain O] {π : O} (hπ0 : π ≠ 0) (n : ℕ) (hn : 1 ≤ n) :
    higherUnitSubgroup π n →*
      Multiplicative (O ⧸ Ideal.span ({π} : Set O)) where
  toFun u :=
    Multiplicative.ofAdd
      (Ideal.Quotient.mk (Ideal.span ({π} : Set O)) (chosenHigherUnitCoeff π n u))
  map_one' := by
    apply Multiplicative.ofAdd.injective
    change Ideal.Quotient.mk (Ideal.span ({π} : Set O))
        (chosenHigherUnitCoeff π n (1 : higherUnitSubgroup π n)) = 0
    have hcoeff :
        chosenHigherUnitCoeff π n (1 : higherUnitSubgroup π n) = 0 := by
      apply chosenHigherUnitCoeff_eq_of_repr hπ0
      simp
    rw [hcoeff]
    simp
  map_mul' u v := by
    apply Multiplicative.ofAdd.injective
    let I : Ideal O := Ideal.span ({π} : Set O)
    let cu : O := chosenHigherUnitCoeff π n u
    let cv : O := chosenHigherUnitCoeff π n v
    let cuv : O := chosenHigherUnitCoeff π n (u * v)
    have hu : ((u : Oˣ) : O) = 1 + π ^ n * cu :=
      chosenHigherUnitCoeff_spec π n u
    have hv : ((v : Oˣ) : O) = 1 + π ^ n * cv :=
      chosenHigherUnitCoeff_spec π n v
    have hrepr : (((u * v : higherUnitSubgroup π n) : Oˣ) : O) =
        1 + π ^ n * (cu + cv + π ^ n * cu * cv) := by
      calc
        (((u * v : higherUnitSubgroup π n) : Oˣ) : O) =
            ((u : Oˣ) : O) * ((v : Oˣ) : O) := rfl
        _ = (1 + π ^ n * cu) * (1 + π ^ n * cv) := by rw [hu, hv]
        _ = 1 + π ^ n * (cu + cv + π ^ n * cu * cv) := by ring
    have hcuv : cuv = cu + cv + π ^ n * cu * cv :=
      chosenHigherUnitCoeff_eq_of_repr hπ0 hrepr
    change Ideal.Quotient.mk I cuv =
      Ideal.Quotient.mk I cu + Ideal.Quotient.mk I cv
    rw [hcuv]
    change Ideal.Quotient.mk I (cu + cv + π ^ n * cu * cv) =
      Ideal.Quotient.mk I (cu + cv)
    apply Ideal.Quotient.eq.mpr
    have hpow_mem : π ^ n * cu * cv ∈ I := by
      have hbase : π ^ n ∈ uniformizerPowerIdeal π n :=
        Ideal.subset_span (by simp)
      have hmem' : π ^ n * (cu * cv) ∈ I :=
        uniformizerPowerIdeal_le_span_singleton (π := π) hn
          ((uniformizerPowerIdeal π n).mul_mem_right (cu * cv) hbase)
      simpa [mul_assoc] using hmem'
    have hdiff : (cu + cv + π ^ n * cu * cv) - (cu + cv) = π ^ n * cu * cv := by
      ring
    simpa [I, hdiff]
      using hpow_mem
LubinTate.Valuations.higherUnitCoeffModHom_ker

The kernel of the coefficient map is U⁽ⁿ⁺¹⁾.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem higherUnitCoeffModHom_ker {O : Type*}
    [CommRing O] [IsDomain O] {π : O} (hπ0 : π ≠ 0) (n : ℕ) (hn : 1 ≤ n) :
    (higherUnitCoeffModHom (O := O) hπ0 n hn).ker =
      Subgroup.comap (higherUnitSubgroup π n).subtype
        (higherUnitSubgroup π (n + 1))
LubinTate.Valuations.higherUnitCoeffModHom_surjective

The coefficient map U⁽ⁿ⁾ → 𝒪/(π) is surjective.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem higherUnitCoeffModHom_surjective {O : Type*}
    [CommRing O] [IsDomain O] [IsDiscreteValuationRing O]
    {π : O} (hπ : Irreducible π) (n : ℕ) (hn : 1 ≤ n) :
    Function.Surjective (higherUnitCoeffModHom (O := O) hπ.ne_zero n hn)
LubinTate.Valuations.higherUnitOneAdd

The explicit higher unit 1 + π^n a, for n ≥ 1 in a DVR.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
def higherUnitOneAdd {O : Type*}
    [CommRing O] [IsDomain O] [IsDiscreteValuationRing O]
    {π : O} (hπ : Irreducible π) (n : ℕ) (hn : 1 ≤ n) (a : O) :
    higherUnitSubgroup π n
LubinTate.Valuations.higherUnitOneAdd_val

The explicit higher unit has the promised representative.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem higherUnitOneAdd_val {O : Type*}
    [CommRing O] [IsDomain O] [IsDiscreteValuationRing O]
    {π : O} (hπ : Irreducible π) (n : ℕ) (hn : 1 ≤ n) (a : O) :
    (((higherUnitOneAdd hπ n hn a : higherUnitSubgroup π n) : Oˣ) : O) =
      1 + π ^ n * a
LubinTate.Valuations.chosenHigherUnitCoeff_oneAdd

The coefficient of the explicit higher unit 1 + π^n a is a.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem chosenHigherUnitCoeff_oneAdd {O : Type*}
    [CommRing O] [IsDomain O] [IsDiscreteValuationRing O]
    {π : O} (hπ : Irreducible π) (n : ℕ) (hn : 1 ≤ n) (a : O) :
    chosenHigherUnitCoeff π n (higherUnitOneAdd hπ n hn a) = a
LubinTate.Valuations.higherUnitCoeffModHom_oneAdd

The coefficient map sends the explicit higher unit 1 + π^n a to a mod π.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem higherUnitCoeffModHom_oneAdd {O : Type*}
    [CommRing O] [IsDomain O] [IsDiscreteValuationRing O]
    {π : O} (hπ : Irreducible π) (n : ℕ) (hn : 1 ≤ n) (a : O) :
    higherUnitCoeffModHom (O := O) hπ.ne_zero n hn
      (higherUnitOneAdd hπ n hn a) =
        Multiplicative.ofAdd
          (Ideal.Quotient.mk (Ideal.span ({π} : Set O)) a)
LubinTate.Valuations.higherUnitCoeffModHom_apply_of_repr

If a higher unit is displayed as 1 + π^n a, the coefficient map sends it to a mod π.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem higherUnitCoeffModHom_apply_of_repr {O : Type*}
    [CommRing O] [IsDomain O] {π : O} (hπ0 : π ≠ 0)
    {n : ℕ} (hn : 1 ≤ n) {u : higherUnitSubgroup π n} {a : O}
    (ha : ((u : Oˣ) : O) = 1 + π ^ n * a) :
    higherUnitCoeffModHom (O := O) hπ0 n hn u =
      Multiplicative.ofAdd
        (Ideal.Quotient.mk (Ideal.span ({π} : Set O)) a)
LubinTate.Valuations.higherUnitGradedPieceMulEquivResidue

The multiplicative first-isomorphism-theorem form of U⁽ⁿ⁾/U⁽ⁿ⁺¹⁾ ≃ 𝒪/(π).

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
def higherUnitGradedPieceMulEquivResidue {O : Type*}
    [CommRing O] [IsDomain O] [IsDiscreteValuationRing O]
    {π : O} (hπ : Irreducible π) (n : ℕ) (hn : 1 ≤ n) :
    ((higherUnitSubgroup π n) ⧸
      Subgroup.comap (higherUnitSubgroup π n).subtype
        (higherUnitSubgroup π (n + 1))) ≃*
      Multiplicative (O ⧸ Ideal.span ({π} : Set O))
LubinTate.Valuations.units_reduction_kernel

The unit-reduction and graded-piece equivalences, kernel part for the reduction map on unit groups.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem units_reduction_kernel
    {O : Type*} [CommRing O] (π : O) (n : ℕ) :
    (unitReduction (uniformizerPowerIdeal π n)).ker = higherUnitSubgroup π n
LubinTate.Valuations.units_reduction_surjective

The unit-reduction and graded-piece equivalences, surjectivity part for the reduction map on unit groups.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem units_reduction_surjective
    {O : Type*} [CommRing O] [IsDomain O] [IsDiscreteValuationRing O]
    {π : O} (hπ : Irreducible π) {n : ℕ} (hn : 1 ≤ n) :
    Function.Surjective (unitReduction (uniformizerPowerIdeal π n))
LubinTate.Valuations.units_quotient_equiv

The unit-reduction and graded-piece equivalences, the named first-isomorphism-theorem equivalence Oˣ/U⁽ⁿ⁾ ≃ (O/π^nO)ˣ.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
def units_quotient_equiv
    {O : Type*} [CommRing O] [IsDomain O] [IsDiscreteValuationRing O]
    {π : O} (hπ : Irreducible π) {n : ℕ} (hn : 1 ≤ n) :
    Oˣ ⧸ higherUnitSubgroup π n ≃* (O ⧸ uniformizerPowerIdeal π n)ˣ
LubinTate.Valuations.units_quotient_equiv_mk

The unit-quotient equivalence of the unit-reduction and graded-piece equivalences is induced by reduction modulo πⁿO.

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem units_quotient_equiv_mk
    {O : Type*} [CommRing O] [IsDomain O] [IsDiscreteValuationRing O]
    {π : O} (hπ : Irreducible π) {n : ℕ} (hn : 1 ≤ n) (u : Oˣ) :
    units_quotient_equiv hπ hn (QuotientGroup.mk u) =
      unitReduction (uniformizerPowerIdeal π n) u
LubinTate.Valuations.higher_unit_coeff_kernel

The unit-reduction and graded-piece equivalences, kernel part for the coefficient map U⁽ⁿ⁾ → O/(π).

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem higher_unit_coeff_kernel
    {O : Type*} [CommRing O] [IsDomain O]
    {π : O} (hπ0 : π ≠ 0) {n : ℕ} (hn : 1 ≤ n) :
    (higherUnitCoeffModHom (O := O) hπ0 n hn).ker =
      Subgroup.comap (higherUnitSubgroup π n).subtype
        (higherUnitSubgroup π (n + 1))
LubinTate.Valuations.higher_unit_coeff_surjective

The unit-reduction and graded-piece equivalences, surjectivity part for the coefficient map U⁽ⁿ⁾ → O/(π).

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
theorem higher_unit_coeff_surjective
    {O : Type*} [CommRing O] [IsDomain O] [IsDiscreteValuationRing O]
    {π : O} (hπ : Irreducible π) {n : ℕ} (hn : 1 ≤ n) :
    Function.Surjective (higherUnitCoeffModHom (O := O) hπ.ne_zero n hn)
LubinTate.Valuations.higher_unit_graded_equiv

The unit-reduction and graded-piece equivalences, the named additive graded-piece equivalence U⁽ⁿ⁾/U⁽ⁿ⁺¹⁾ ≃+ O/(π).

Source context 5 commands

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

noncomputable section
open Filter
open scoped BigOperators Topology
namespace LubinTate
namespace Valuations
def higher_unit_graded_equiv
    {O : Type*} [CommRing O] [IsDomain O] [IsDiscreteValuationRing O]
    {π : O} (hπ : Irreducible π) {n : ℕ} (hn : 1 ≤ n) :
    Additive
      ((higherUnitSubgroup π n) ⧸
        Subgroup.comap (higherUnitSubgroup π n).subtype
          (higherUnitSubgroup π (n + 1))) ≃+
      (O ⧸ Ideal.span ({π} : Set O))