Module

ValuationSubring.lean

Nyll.ValuedFieldTheory.Valuation.AbsoluteValue.ValuationSubring
16 declarations indexed from sourceView source ↗

Closed unit balls of nonarchimedean absolute values

This file records the valuation ring attached directly to a multiplicative absolute value in the nonarchimedean case. It is the section-3 object used by the finite-degree norm construction before any discrete-valuation-field packaging.

Declarations

AlgebraicNumberTheory.Valuations.absoluteValueUnitBallSubring

The closed unit ball {x | |x| ≤ 1} of a nonarchimedean absolute value, bundled as a subring.

Source context 4 commands

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

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
def absoluteValueUnitBallSubring
    {K : Type*} [Field K] (v : AbsoluteValue K ℝ)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v) : Subring K where
  carrier := {x | v x ≤ 1}
  zero_mem' := by simp
  one_mem' := by simp
  add_mem' := by
    intro x y hx hy
    exact (LubinTate.Valuations.strong_triangle_of_nonarchimedean
      v hnonarch x y).trans (max_le hx hy)
  neg_mem' := by
    intro x hx
    simpa using hx
  mul_mem' := by
    intro x y hx hy
    change v (x * y) ≤ 1
    rw [v.map_mul]
    exact (mul_le_of_le_one_left (v.nonneg y) hx).trans hy
AlgebraicNumberTheory.Valuations.mem_absoluteValueUnitBallSubring_iff

Membership in the absolute-value valuation subring is the closed-unit-ball condition.

Source context 4 commands

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

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem mem_absoluteValueUnitBallSubring_iff
    {K : Type*} [Field K] (v : AbsoluteValue K ℝ)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v) (x : K) :
    x ∈ absoluteValueUnitBallSubring v hnonarch ↔ v x ≤ 1
AlgebraicNumberTheory.Valuations.absoluteValueUnitBallSubring_mem_or_inv_mem

Every field element or its inverse lies in the closed unit ball of a nonarchimedean absolute value.

Source context 4 commands

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

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem absoluteValueUnitBallSubring_mem_or_inv_mem
    {K : Type*} [Field K] (v : AbsoluteValue K ℝ)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v) (x : K) :
    x ∈ absoluteValueUnitBallSubring v hnonarch ∨
      x⁻¹ ∈ absoluteValueUnitBallSubring v hnonarch
AlgebraicNumberTheory.Valuations.absoluteValueValuationSubring

The closed unit ball of a nonarchimedean absolute value, bundled as mathlib's ValuationSubring.

Source context 4 commands

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

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
def absoluteValueValuationSubring
    {K : Type*} [Field K] (v : AbsoluteValue K ℝ)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v) :
    ValuationSubring K
AlgebraicNumberTheory.Valuations.mem_absoluteValueValuationSubring_iff

Membership in the bundled valuation subring is again the closed-unit-ball condition.

Source context 4 commands

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

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem mem_absoluteValueValuationSubring_iff
    {K : Type*} [Field K] (v : AbsoluteValue K ℝ)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v) (x : K) :
    x ∈ absoluteValueValuationSubring v hnonarch ↔
      v x ≤ 1
AlgebraicNumberTheory.Valuations.isUnit_iff_abs_eq_one_of_mem_iff_le_one

In any submonoid of a field whose elements are exactly the closed unit ball of an absolute value, the units are exactly the elements of absolute value 1.

Source context 4 commands

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

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem isUnit_iff_abs_eq_one_of_mem_iff_le_one
    {K : Type*} [Field K] (v : AbsoluteValue K ℝ)
    {C : Type*} [SetLike C K] [SubmonoidClass C K]
    (S : C) (hS : ∀ x : K, x ∈ S ↔ v x ≤ 1) (x : S) :
    IsUnit x ↔ v (x : K) = 1
AlgebraicNumberTheory.Valuations.not_isUnit_iff_abs_lt_one_of_mem_iff_le_one

In the same closed-unit-ball situation, nonunits are exactly the elements of absolute value strictly less than 1.

Source context 4 commands

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

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem not_isUnit_iff_abs_lt_one_of_mem_iff_le_one
    {K : Type*} [Field K] (v : AbsoluteValue K ℝ)
    {C : Type*} [SetLike C K] [SubmonoidClass C K]
    (S : C) (hS : ∀ x : K, x ∈ S ↔ v x ≤ 1) (x : S) :
    ¬ IsUnit x ↔ v (x : K) < 1
AlgebraicNumberTheory.Valuations.absoluteValueUnitBallSubringAsValuationSubring_isUnit_iff_abs_eq_one

The same unit criterion for the valuation-subring bundle of the closed unit ball.

Source context 4 commands

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

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem absoluteValueUnitBallSubringAsValuationSubring_isUnit_iff_abs_eq_one
    {K : Type*} [Field K] (v : AbsoluteValue K ℝ)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (x : absoluteValueValuationSubring v hnonarch) :
    IsUnit x ↔ v (x : K) = 1
AlgebraicNumberTheory.Valuations.absoluteValueValuationSubring_mem_maximalIdeal_iff_abs_lt_one

The maximal ideal of the closed-unit-ball valuation subring consists exactly of the elements of absolute value strictly less than 1.

Source context 4 commands

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

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem absoluteValueValuationSubring_mem_maximalIdeal_iff_abs_lt_one
    {K : Type*} [Field K] (v : AbsoluteValue K ℝ)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (x : absoluteValueValuationSubring v hnonarch) :
    x ∈ IsLocalRing.maximalIdeal
        (absoluteValueValuationSubring v hnonarch) ↔
      v (x : K) < 1
AlgebraicNumberTheory.Valuations.absoluteValueUnitBallSubringAsValuationSubring_residue_eq_zero_iff_abs_lt_one

A closed-unit-ball element reduces to zero in the residue field exactly when its absolute value is strictly less than 1.

Source context 4 commands

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

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem absoluteValueUnitBallSubringAsValuationSubring_residue_eq_zero_iff_abs_lt_one
    {K : Type*} [Field K] (v : AbsoluteValue K ℝ)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (x : absoluteValueValuationSubring v hnonarch) :
    IsLocalRing.residue
        (absoluteValueValuationSubring v hnonarch) x = 0 ↔
      v (x : K) < 1
AlgebraicNumberTheory.Valuations.absoluteValueUnitBallSubringAsValuationSubring_residue_ne_zero_iff_abs_eq_one

A closed-unit-ball element has nonzero residue exactly when its absolute value is 1.

Source context 4 commands

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

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem absoluteValueUnitBallSubringAsValuationSubring_residue_ne_zero_iff_abs_eq_one
    {K : Type*} [Field K] (v : AbsoluteValue K ℝ)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (x : absoluteValueValuationSubring v hnonarch) :
    IsLocalRing.residue
        (absoluteValueValuationSubring v hnonarch) x ≠ 0 ↔
      v (x : K) = 1
AlgebraicNumberTheory.Valuations.absoluteValueUnitBallSubring_isIntegrallyClosedIn

The closed unit ball of a nonarchimedean absolute value is integrally closed in the ambient field.

Source context 4 commands

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

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem absoluteValueUnitBallSubring_isIntegrallyClosedIn
    {K : Type*} [Field K] (v : AbsoluteValue K ℝ)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v) :
    IsIntegrallyClosedIn (absoluteValueUnitBallSubring v hnonarch) K
AlgebraicNumberTheory.Valuations.comap_absoluteValueUnitBallSubring_eq_of_extends

If an absolute value on L extends one on K, then its valuation subring pulls back to the base valuation subring.

Source context 4 commands

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

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem comap_absoluteValueUnitBallSubring_eq_of_extends
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    (v : AbsoluteValue K ℝ) (w : AbsoluteValue L ℝ)
    (hvnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (hwnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue w)
    (hw_ext : ∀ x : K, w (algebraMap K L x) = v x) :
    (absoluteValueUnitBallSubring w hwnonarch).comap
        (algebraMap K L) =
      absoluteValueUnitBallSubring v hvnonarch
AlgebraicNumberTheory.Valuations.polynomial_lifts_absoluteValueUnitBallSubring_iff_coeff_mem

A polynomial over the field lifts from the closed-unit-ball valuation subring exactly when all its coefficients lie in that valuation subring.

Source context 4 commands

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

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem polynomial_lifts_absoluteValueUnitBallSubring_iff_coeff_mem
    {K : Type*} [Field K] (v : AbsoluteValue K ℝ)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v) (f : K[X]) :
    f ∈ Polynomial.lifts
        (algebraMap (absoluteValueUnitBallSubring v hnonarch) K) ↔
      ∀ n : ℕ, f.coeff n ∈ absoluteValueUnitBallSubring v hnonarch
AlgebraicNumberTheory.Valuations.exists_monic_polynomial_over_absoluteValueUnitBallSubring_of_coeff_mem

Monic lift form used by irreducible-polynomial lifting: a monic field polynomial whose coefficients lie in the closed unit ball has a monic valuation-ring lift of the same natural degree.

Source context 4 commands

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

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem exists_monic_polynomial_over_absoluteValueUnitBallSubring_of_coeff_mem
    {K : Type*} [Field K] (v : AbsoluteValue K ℝ)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v) {f : K[X]}
    (hfmonic : f.Monic)
    (hfcoeff : ∀ n : ℕ, f.coeff n ∈ absoluteValueUnitBallSubring v hnonarch) :
    ∃ F : (absoluteValueUnitBallSubring v hnonarch)[X],
      F.Monic ∧
        F.map (algebraMap (absoluteValueUnitBallSubring v hnonarch) K) = f ∧
        F.natDegree = f.natDegree
AlgebraicNumberTheory.Valuations.exists_polynomial_over_absoluteValueUnitBallSubringAsValuationSubring_of_coeff_abs_le_one

A field polynomial whose coefficients lie in the closed unit ball has a degree-preserving lift to the actual valuation-subring bundle used for residue fields. The lift may be chosen coefficientwise, so the absolute values of the lifted coefficients are the original coefficient values.

Source context 4 commands

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

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem exists_polynomial_over_absoluteValueUnitBallSubringAsValuationSubring_of_coeff_abs_le_one
    {K : Type*} [Field K] (v : AbsoluteValue K ℝ)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v) (f : K[X])
    (hfcoeff : ∀ n : ℕ, v (f.coeff n) ≤ 1) :
    ∃ F : (absoluteValueValuationSubring v hnonarch)[X],
      F.map (algebraMap
          (absoluteValueValuationSubring v hnonarch) K) = f ∧
        F.natDegree = f.natDegree ∧
          ∀ n : ℕ, v (F.coeff n : K) = v (f.coeff n)