Documentation

Mathlib.RingTheory.Valuation.Discrete.Basic

Discrete Valuations #

Given a linearly ordered commutative group with zero Γ, a valuation v : A → Γ on a ring A is discrete, if there is an element γ : Γˣ that is < 1 and generated the range of v, implemented as MonoidWithZeroHom.valueGroup v. When Γ := ℤₘ₀ (defined in Multiplicative.termℤₘ₀), γ = ofAdd (-1)and the condition of being discrete is equivalent to asking thatofAdd (-1 : ℤ)belongs to the image, in turn equivalent to asking that `1 : ℤ` belongs to the image of the corresponding additive valuation.

Note that this definition of discrete implies that the valuation is nontrivial and of rank one, as is commonly assumed in number theory. To avoid potential confusion with other definitions of discrete, we use the name IsRankOneDiscrete to refer to discrete valuations in this setting.

Main Definitions #

Main Results #

TODO #

Given a linearly ordered commutative group with zero Γ such that Γˣ is nontrivial cyclic, a valuation v : A → Γ on a ring A is discrete, if genLTOne Γˣ belongs to the image. Note that the latter is equivalent to asking that 1 : ℤ belongs to the image of the corresponding additive valuation.

Instances
    noncomputable def Valuation.IsRankOneDiscrete.generator {Γ : Type u_1} [LinearOrderedCommGroupWithZero Γ] {A : Type u_2} [Ring A] (v : Valuation A Γ) [v.IsRankOneDiscrete] :
    Γˣ

    Given a discrete valuation v, Valuation.IsRankOneDiscrete.generator is a generator of the value group that is < 1.

    Equations
    Instances For
      def Valuation.IsUniformizer {Γ : Type u_1} [LinearOrderedCommGroupWithZero Γ] {A : Type u_2} [Ring A] (v : Valuation A Γ) [hv : v.IsRankOneDiscrete] (π : A) :

      An element π : A is a uniformizer if v π is a generator of the value group that is < 1.

      Equations
      Instances For
        theorem Valuation.IsUniformizer.ne_zero {Γ : Type u_1} [LinearOrderedCommGroupWithZero Γ] {A : Type u_2} [Ring A] {v : Valuation A Γ} [hv : v.IsRankOneDiscrete] {π : A} ( : v.IsUniformizer π) :
        π 0
        @[simp]
        theorem Valuation.IsUniformizer.val {Γ : Type u_1} [LinearOrderedCommGroupWithZero Γ] {A : Type u_2} [Ring A] {v : Valuation A Γ} [hv : v.IsRankOneDiscrete] {π : A} ( : v.IsUniformizer π) :
        theorem Valuation.IsUniformizer.val_lt_one {Γ : Type u_1} [LinearOrderedCommGroupWithZero Γ] {A : Type u_2} [Ring A] {v : Valuation A Γ} [hv : v.IsRankOneDiscrete] {π : A} ( : v.IsUniformizer π) :
        v π < 1
        theorem Valuation.IsUniformizer.val_ne_zero {Γ : Type u_1} [LinearOrderedCommGroupWithZero Γ] {A : Type u_2} [Ring A] {v : Valuation A Γ} [hv : v.IsRankOneDiscrete] {π : A} ( : v.IsUniformizer π) :
        v π 0
        theorem Valuation.IsUniformizer.val_pos {Γ : Type u_1} [LinearOrderedCommGroupWithZero Γ] {A : Type u_2} [Ring A] {v : Valuation A Γ} [hv : v.IsRankOneDiscrete] {π : A} ( : v.IsUniformizer π) :
        0 < v π
        structure Valuation.Uniformizer {Γ : Type u_1} [LinearOrderedCommGroupWithZero Γ] {A : Type u_2} [Ring A] (v : Valuation A Γ) [hv : v.IsRankOneDiscrete] :
        Type u_2

        The structure Uniformizer bundles together the term in the ring and a proof that it is a uniformizer.

        Instances For
          theorem Valuation.Uniformizer.ext {Γ : Type u_1} {inst✝ : LinearOrderedCommGroupWithZero Γ} {A : Type u_2} {inst✝¹ : Ring A} {v : Valuation A Γ} {hv : v.IsRankOneDiscrete} {x y : v.Uniformizer} (val : x.val = y.val) :
          x = y
          theorem Valuation.Uniformizer.ext_iff {Γ : Type u_1} {inst✝ : LinearOrderedCommGroupWithZero Γ} {A : Type u_2} {inst✝¹ : Ring A} {v : Valuation A Γ} {hv : v.IsRankOneDiscrete} {x y : v.Uniformizer} :
          x = y x.val = y.val
          def Valuation.Uniformizer.mk' {Γ : Type u_1} [LinearOrderedCommGroupWithZero Γ] {A : Type u_2} [Ring A] {v : Valuation A Γ} [hv : v.IsRankOneDiscrete] {x : A} (hx : v.IsUniformizer x) :

          A constructor for Uniformizer.

          Equations
          Instances For
            theorem Valuation.Uniformizer.ne_zero {Γ : Type u_1} [LinearOrderedCommGroupWithZero Γ] {A : Type u_2} [Ring A] {v : Valuation A Γ} [hv : v.IsRankOneDiscrete] (π : v.Uniformizer) :
            π.val 0
            theorem Valuation.IsUniformizer.not_isUnit {Γ : Type u_1} [LinearOrderedCommGroupWithZero Γ] {R : Type u_2} [CommRing R] {v : Valuation R Γ} [hv : v.IsRankOneDiscrete] {π : v.integer} ( : v.IsUniformizer π) :
            theorem Valuation.IsUniformizer.of_associated {Γ : Type u_1} [LinearOrderedCommGroupWithZero Γ] {K : Type u_2} [Field K] {v : Valuation K Γ} [hv : v.IsRankOneDiscrete] {π₁ π₂ : v.valuationSubring} (h1 : v.IsUniformizer π₁) (H : Associated π₁ π₂) :
            v.IsUniformizer π₂

            An element associated to a uniformizer is itself a uniformizer.

            theorem Valuation.associated_of_isUniformizer {Γ : Type u_1} [LinearOrderedCommGroupWithZero Γ] {K : Type u_2} [Field K] {v : Valuation K Γ} [hv : v.IsRankOneDiscrete] {π₁ π₂ : v.valuationSubring} (h1 : v.IsUniformizer π₁) (h2 : v.IsUniformizer π₂) :
            Associated π₁ π₂

            If two elements of K₀ are uniformizers, then they are associated.

            theorem Valuation.exists_pow_Uniformizer {Γ : Type u_1} [LinearOrderedCommGroupWithZero Γ] {K : Type u_2} [Field K] {v : Valuation K Γ} [hv : v.IsRankOneDiscrete] {r : v.valuationSubring} (hr : r 0) (π : v.Uniformizer) :
            ∃ (n : ) (u : (↥v.valuationSubring)ˣ), r = ↑(π.val ^ n) * u