Module

LocalUnramifiedKummerValuationDual.lean

Nyll.SawinTotallyRealTowers.UnramifiedProPRelationRank.Kummer.LocalUnramifiedKummerValuationDual
13 declarations indexed from sourceView source ↗

The valuation dual of an unramified Kummer class

Unramified Hilbert characters are scalar multiples of reduced normalized valuation. Nondegeneracy shows that the Frobenius scalar of a nonzero class is nonzero, including at places above the Kummer exponent.

Declarations

Source context 8 commands

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

noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory LocalClassFieldTheory LocalClassFieldTheory.Kummer
open LocalFieldTheory.IsNonarchimedeanLocalField
variable (K : Type) [Field K]
variable [ValuativeRel K] [TopologicalSpace K] [IsNonarchimedeanLocalField K]
section Valuation
variable (p : ℕ) [Fact p.Prime]
instance : AddCommGroup (ZMod p)
Source context 9 commands

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

noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory LocalClassFieldTheory LocalClassFieldTheory.Kummer
open LocalFieldTheory.IsNonarchimedeanLocalField
variable (K : Type) [Field K]
variable [ValuativeRel K] [TopologicalSpace K] [IsNonarchimedeanLocalField K]
section Valuation
variable (p : ℕ) [Fact p.Prime]
local instance : AddCommGroup (ZMod p) := (ZMod.commRing p).toAddCommGroup
instance : Module (ZMod p) (ZMod p)
ClassFieldTower.Martinet.Shafarevich.localPowerClassValuationMonoidHom

Reduced normalized valuation on local power classes.

Source context 10 commands

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

noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory LocalClassFieldTheory LocalClassFieldTheory.Kummer
open LocalFieldTheory.IsNonarchimedeanLocalField
variable (K : Type) [Field K]
variable [ValuativeRel K] [TopologicalSpace K] [IsNonarchimedeanLocalField K]
section Valuation
variable (p : ℕ) [Fact p.Prime]
local instance : AddCommGroup (ZMod p) := (ZMod.commRing p).toAddCommGroup
local instance : Module (ZMod p) (ZMod p) := Semiring.toModule
def localPowerClassValuationMonoidHom :
    (Kˣ ⧸ (powMonoidHom p : Kˣ →* Kˣ).range) →* Multiplicative (ZMod p)
ClassFieldTower.Martinet.Shafarevich.localPowerClassValuation

The reduced local valuation as a linear functional.

Source context 10 commands

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

noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory LocalClassFieldTheory LocalClassFieldTheory.Kummer
open LocalFieldTheory.IsNonarchimedeanLocalField
variable (K : Type) [Field K]
variable [ValuativeRel K] [TopologicalSpace K] [IsNonarchimedeanLocalField K]
section Valuation
variable (p : ℕ) [Fact p.Prime]
local instance : AddCommGroup (ZMod p) := (ZMod.commRing p).toAddCommGroup
local instance : Module (ZMod p) (ZMod p) := Semiring.toModule
def localPowerClassValuation :
    absolutePowerClassModP K p →ₗ[ZMod p] ZMod p
ClassFieldTower.Martinet.Shafarevich.localPowerClassValuation_mk
Source context 10 commands

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

noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory LocalClassFieldTheory LocalClassFieldTheory.Kummer
open LocalFieldTheory.IsNonarchimedeanLocalField
variable (K : Type) [Field K]
variable [ValuativeRel K] [TopologicalSpace K] [IsNonarchimedeanLocalField K]
section Valuation
variable (p : ℕ) [Fact p.Prime]
local instance : AddCommGroup (ZMod p) := (ZMod.commRing p).toAddCommGroup
local instance : Module (ZMod p) (ZMod p) := Semiring.toModule
theorem localPowerClassValuation_mk (a : Kˣ) :
    localPowerClassValuation K p
        (Additive.ofMul (QuotientGroup.mk' (powMonoidHom p : Kˣ →* Kˣ).range a)) =
      (valuationMap K (Additive.ofMul a) : ZMod p)
ClassFieldTower.Martinet.Shafarevich.localPowerClassValuation_surjective

Local valuation on power classes is onto.

Source context 10 commands

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

noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory LocalClassFieldTheory LocalClassFieldTheory.Kummer
open LocalFieldTheory.IsNonarchimedeanLocalField
variable (K : Type) [Field K]
variable [ValuativeRel K] [TopologicalSpace K] [IsNonarchimedeanLocalField K]
section Valuation
variable (p : ℕ) [Fact p.Prime]
local instance : AddCommGroup (ZMod p) := (ZMod.commRing p).toAddCommGroup
local instance : Module (ZMod p) (ZMod p) := Semiring.toModule
theorem localPowerClassValuation_surjective :
    Function.Surjective (localPowerClassValuation K p)
ClassFieldTower.Martinet.Shafarevich.localPowerClassValuationDualEmbedding

The one-dimensional valuation line in the dual of local power classes.

Source context 10 commands

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

noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory LocalClassFieldTheory LocalClassFieldTheory.Kummer
open LocalFieldTheory.IsNonarchimedeanLocalField
variable (K : Type) [Field K]
variable [ValuativeRel K] [TopologicalSpace K] [IsNonarchimedeanLocalField K]
section Valuation
variable (p : ℕ) [Fact p.Prime]
local instance : AddCommGroup (ZMod p) := (ZMod.commRing p).toAddCommGroup
local instance : Module (ZMod p) (ZMod p) := Semiring.toModule
def localPowerClassValuationDualEmbedding :
    ZMod p →ₗ[ZMod p] Module.Dual (ZMod p) (absolutePowerClassModP K p)
ClassFieldTower.Martinet.Shafarevich.localPowerClassValuationDualEmbedding_apply
Source context 10 commands

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

noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory LocalClassFieldTheory LocalClassFieldTheory.Kummer
open LocalFieldTheory.IsNonarchimedeanLocalField
variable (K : Type) [Field K]
variable [ValuativeRel K] [TopologicalSpace K] [IsNonarchimedeanLocalField K]
section Valuation
variable (p : ℕ) [Fact p.Prime]
local instance : AddCommGroup (ZMod p) := (ZMod.commRing p).toAddCommGroup
local instance : Module (ZMod p) (ZMod p) := Semiring.toModule
theorem localPowerClassValuationDualEmbedding_apply
    (a : ZMod p) (x : absolutePowerClassModP K p) :
    localPowerClassValuationDualEmbedding K p a x =
      a * localPowerClassValuation K p x
ClassFieldTower.Martinet.Shafarevich.localPowerClassValuationDualEmbedding_injective

The valuation line is faithfully parametrized by ZMod p.

Source context 10 commands

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

noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory LocalClassFieldTheory LocalClassFieldTheory.Kummer
open LocalFieldTheory.IsNonarchimedeanLocalField
variable (K : Type) [Field K]
variable [ValuativeRel K] [TopologicalSpace K] [IsNonarchimedeanLocalField K]
section Valuation
variable (p : ℕ) [Fact p.Prime]
local instance : AddCommGroup (ZMod p) := (ZMod.commRing p).toAddCommGroup
local instance : Module (ZMod p) (ZMod p) := Semiring.toModule
theorem localPowerClassValuationDualEmbedding_injective :
    Function.Injective (localPowerClassValuationDualEmbedding K p)
Source context 8 commands

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

noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory LocalClassFieldTheory LocalClassFieldTheory.Kummer
open LocalFieldTheory.IsNonarchimedeanLocalField
variable (K : Type) [Field K]
variable [ValuativeRel K] [TopologicalSpace K] [IsNonarchimedeanLocalField K]
variable [CharZero K]
variable (n : ℕ+) [Fact ((n : ℕ).Prime)]
instance : AddCommGroup (ZMod (n : ℕ))
ClassFieldTower.Martinet.Shafarevich.unramifiedChosenSimpleKummerFrobeniusScalar

The scalar of an unramified Kummer Hilbert character in the normalized valuation coordinate.

Source context 9 commands

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

noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory LocalClassFieldTheory LocalClassFieldTheory.Kummer
open LocalFieldTheory.IsNonarchimedeanLocalField
variable (K : Type) [Field K]
variable [ValuativeRel K] [TopologicalSpace K] [IsNonarchimedeanLocalField K]
variable [CharZero K]
variable (n : ℕ+) [Fact ((n : ℕ).Prime)]
local instance : AddCommGroup (ZMod (n : ℕ)) :=
  (ZMod.commRing (n : ℕ)).toAddCommGroup
def unramifiedChosenSimpleKummerFrobeniusScalar
    (hmu : (primitiveRoots (n : ℕ) K).Nonempty) (a : Kˣ)
    (ha : IsUnramifiedChosenSimpleKummer K n (Nat.cast_ne_zero.mpr n.ne_zero) a) :
    ZMod (n : ℕ)
ClassFieldTower.Martinet.Shafarevich.localHilbertDualEmbedding_mk_unramified

The Hilbert dual functional of an unramified Kummer radical is its Frobenius scalar times the reduced valuation.

Source context 9 commands

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

noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory LocalClassFieldTheory LocalClassFieldTheory.Kummer
open LocalFieldTheory.IsNonarchimedeanLocalField
variable (K : Type) [Field K]
variable [ValuativeRel K] [TopologicalSpace K] [IsNonarchimedeanLocalField K]
variable [CharZero K]
variable (n : ℕ+) [Fact ((n : ℕ).Prime)]
local instance : AddCommGroup (ZMod (n : ℕ)) :=
  (ZMod.commRing (n : ℕ)).toAddCommGroup
theorem localHilbertDualEmbedding_mk_unramified
    (hmu : (primitiveRoots (n : ℕ) K).Nonempty) (a : Kˣ)
    (ha : IsUnramifiedChosenSimpleKummer K n (Nat.cast_ne_zero.mpr n.ne_zero) a) :
    localHilbertDualEmbedding K n hmu
        (Additive.ofMul
          (QuotientGroup.mk' (powMonoidHom (n : ℕ) : Kˣ →* Kˣ).range a)) =
      localPowerClassValuationDualEmbedding K (n : ℕ)
        (unramifiedChosenSimpleKummerFrobeniusScalar K n hmu a ha)
ClassFieldTower.Martinet.Shafarevich.unramifiedChosenSimpleKummerFrobeniusScalar_ne_zero

A nonzero unramified Kummer class has a nonzero Frobenius scalar.

Source context 9 commands

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

noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory LocalClassFieldTheory LocalClassFieldTheory.Kummer
open LocalFieldTheory.IsNonarchimedeanLocalField
variable (K : Type) [Field K]
variable [ValuativeRel K] [TopologicalSpace K] [IsNonarchimedeanLocalField K]
variable [CharZero K]
variable (n : ℕ+) [Fact ((n : ℕ).Prime)]
local instance : AddCommGroup (ZMod (n : ℕ)) :=
  (ZMod.commRing (n : ℕ)).toAddCommGroup
theorem unramifiedChosenSimpleKummerFrobeniusScalar_ne_zero
    (hmu : (primitiveRoots (n : ℕ) K).Nonempty) (a : Kˣ)
    (ha : IsUnramifiedChosenSimpleKummer K n (Nat.cast_ne_zero.mpr n.ne_zero) a)
    (ha0 : QuotientGroup.mk' (powMonoidHom (n : ℕ) : Kˣ →* Kˣ).range a ≠ 1) :
    unramifiedChosenSimpleKummerFrobeniusScalar K n hmu a ha ≠ 0