Module

RangeRestriction.lean

Nyll.ValuedFieldTheory.LocalField.DiscreteValuationField.ValuationSubringUnits.RangeRestriction
8 declarations indexed from sourceView source ↗

Restricting a valuation to its multiplicative range

The restricted valuation has the same valuation ring, maximal ideal, and residue field as the original valuation.

Declarations

LocalFieldTheory.DiscreteValuationField.WithZeroValuation.mrangeRestrict

Restrict a valuation's codomain to its actual multiplicative range.

This removes irrelevant ambient value-group elements. It is the value-group normalization needed before finite-dimensional closedness can be used for an abstract chosen local-field valuation.

Source context 11 commands

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

noncomputable section
universe u x
open WithZero
open scoped NNReal Valued WithZero
namespace LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace WithZeroValuation
variable {R : Type u}
variable {Gamma : Type x} [LinearOrderedCommGroupWithZero Gamma]
section Field
variable [Field R]
def mrangeRestrict (v : _root_.Valuation R Gamma) :
    _root_.Valuation R (MonoidHom.mrange v.toMonoidWithZeroHom) where
  toFun r := ⟨v r, ⟨r, rfl⟩⟩
  map_one' := by
    ext
    exact map_one v
  map_zero' := by
    ext
    exact map_zero v
  map_mul' x y := by
    ext
    exact map_mul v x y
  map_add_le_max' x y := by
    rw [← Subtype.coe_le_coe]
    exact map_add_le_max v x y
LocalFieldTheory.DiscreteValuationField.WithZeroValuation.mrangeRestrict_apply

The defining evaluation formula for mrangeRestrict is (mrangeRestrict v x : Gamma) = v x.

Source context 11 commands

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

noncomputable section
universe u x
open WithZero
open scoped NNReal Valued WithZero
namespace LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace WithZeroValuation
variable {R : Type u}
variable {Gamma : Type x} [LinearOrderedCommGroupWithZero Gamma]
section Field
variable [Field R]
theorem mrangeRestrict_apply (v : _root_.Valuation R Gamma) (x : R) :
    (mrangeRestrict v x : Gamma) = v x
LocalFieldTheory.DiscreteValuationField.WithZeroValuation.mem_mrangeRestrict_valuationSubring_iff

Passing to the actual multiplicative range does not change the valuation subring predicate.

Source context 11 commands

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

noncomputable section
universe u x
open WithZero
open scoped NNReal Valued WithZero
namespace LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace WithZeroValuation
variable {R : Type u}
variable {Gamma : Type x} [LinearOrderedCommGroupWithZero Gamma]
section Field
variable [Field R]
theorem mem_mrangeRestrict_valuationSubring_iff
    (v : _root_.Valuation R Gamma) (x : R) :
    x ∈ (mrangeRestrict v).valuationSubring ↔ x ∈ v.valuationSubring
LocalFieldTheory.DiscreteValuationField.WithZeroValuation.valuationSubringEquivMrangeRestrict

The valuation subring is unchanged after restricting the value group to the actual multiplicative range.

Source context 11 commands

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

noncomputable section
universe u x
open WithZero
open scoped NNReal Valued WithZero
namespace LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace WithZeroValuation
variable {R : Type u}
variable {Gamma : Type x} [LinearOrderedCommGroupWithZero Gamma]
section Field
variable [Field R]
def valuationSubringEquivMrangeRestrict
    (v : _root_.Valuation R Gamma) :
    v.valuationSubring ≃+* (mrangeRestrict v).valuationSubring where
  toFun x :=
    ⟨x, (mem_mrangeRestrict_valuationSubring_iff v x).2 x.2⟩
  invFun x :=
    ⟨x, (mem_mrangeRestrict_valuationSubring_iff v x).1 x.2⟩
  left_inv x := by ext; rfl
  right_inv x := by ext; rfl
  map_mul' x y := by ext; rfl
  map_add' x y := by ext; rfl
LocalFieldTheory.DiscreteValuationField.WithZeroValuation.valuationSubringEquivMrangeRestrict_apply_coe

Establishes the identity ((valuationSubringEquivMrangeRestrict v x : (mrangeRestrict v).valuationSubring) : R) = x.

Source context 11 commands

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

noncomputable section
universe u x
open WithZero
open scoped NNReal Valued WithZero
namespace LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace WithZeroValuation
variable {R : Type u}
variable {Gamma : Type x} [LinearOrderedCommGroupWithZero Gamma]
section Field
variable [Field R]
theorem valuationSubringEquivMrangeRestrict_apply_coe
    (v : _root_.Valuation R Gamma) (x : v.valuationSubring) :
    ((valuationSubringEquivMrangeRestrict v x :
      (mrangeRestrict v).valuationSubring) : R) = x
LocalFieldTheory.DiscreteValuationField.WithZeroValuation.valuationSubringEquivMrangeRestrict_mem_maximalIdeal_iff

The valuation-subring equivalence induced by range restriction preserves the maximal ideal.

Source context 12 commands

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

noncomputable section
universe u x
open WithZero
open scoped NNReal Valued WithZero
namespace LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace WithZeroValuation
variable {R : Type u}
variable {Gamma : Type x} [LinearOrderedCommGroupWithZero Gamma]
section Field
variable [Field R]
variable {K : Type u} [Field K]
theorem valuationSubringEquivMrangeRestrict_mem_maximalIdeal_iff
    (v : _root_.Valuation K Gamma) (x : v.valuationSubring) :
    valuationSubringEquivMrangeRestrict v x ∈
        IsLocalRing.maximalIdeal (mrangeRestrict v).valuationSubring ↔
      x ∈ IsLocalRing.maximalIdeal v.valuationSubring
LocalFieldTheory.DiscreteValuationField.WithZeroValuation.valuationSubringEquivMrangeRestrict_map_maximalIdeal

Establishes the identity (IsLocalRing.maximalIdeal v.valuationSubring).map (valuationSubringEquivMrangeRestrict v : v.valuationSubring →+* (mrangeRestrict v).valuationSubring) = IsLocalRing.maximalIdeal (mrangeRestrict v).valuationSubring.

Source context 12 commands

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

noncomputable section
universe u x
open WithZero
open scoped NNReal Valued WithZero
namespace LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace WithZeroValuation
variable {R : Type u}
variable {Gamma : Type x} [LinearOrderedCommGroupWithZero Gamma]
section Field
variable [Field R]
variable {K : Type u} [Field K]
theorem valuationSubringEquivMrangeRestrict_map_maximalIdeal
    (v : _root_.Valuation K Gamma) :
    (IsLocalRing.maximalIdeal v.valuationSubring).map
        (valuationSubringEquivMrangeRestrict v :
          v.valuationSubring →+* (mrangeRestrict v).valuationSubring) =
      IsLocalRing.maximalIdeal (mrangeRestrict v).valuationSubring
LocalFieldTheory.DiscreteValuationField.WithZeroValuation.residueFieldEquivMrangeRestrict

Restricting a valuation to its actual multiplicative range induces the same residue field.

Source context 12 commands

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

noncomputable section
universe u x
open WithZero
open scoped NNReal Valued WithZero
namespace LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace WithZeroValuation
variable {R : Type u}
variable {Gamma : Type x} [LinearOrderedCommGroupWithZero Gamma]
section Field
variable [Field R]
variable {K : Type u} [Field K]
def residueFieldEquivMrangeRestrict
    (v : _root_.Valuation K Gamma) :
    IsLocalRing.ResidueField v.valuationSubring ≃+*
      IsLocalRing.ResidueField (mrangeRestrict v).valuationSubring