Module

AbsoluteKummerH1.lean

Nyll.GaloisCohomology.Kummer.Concrete.AbsoluteKummerH1
12 declarations indexed from sourceView source ↗

Absolute Kummer characters

For a field containing a primitive n-th root of unity, this file identifies K× / K×ⁿ with continuous characters of the absolute Galois group. The target is first the discrete group of n-th roots of unity and is then identified with the discrete multiplicative group underlying ZMod n.

Declarations

ClassFieldTower.Martinet.Shafarevich.AbsoluteRadicalDatum
Source context 5 commands

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

open scoped Topology
noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory
variable (K : Type*) [Field K]
abbrev AbsoluteRadicalDatum (n : ℕ+)
ClassFieldTower.Martinet.Shafarevich.finiteKummerRadicalSubgroup_algebraicClosure_eq_top

Every base-field unit has an n-th root in the algebraic closure.

Source context 5 commands

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

open scoped Topology
noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory
variable (K : Type*) [Field K]
theorem finiteKummerRadicalSubgroup_algebraicClosure_eq_top (n : ℕ+) :
    finiteKummerRadicalSubgroup (K := K) (L := AlgebraicClosure K) n = ⊤
ClassFieldTower.Martinet.Shafarevich.unitsEquivAbsoluteRadicalCarrier

The full unit group is multiplicatively equivalent to the actual radical subgroup in the algebraic closure.

Source context 5 commands

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

open scoped Topology
noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory
variable (K : Type*) [Field K]
def unitsEquivAbsoluteRadicalCarrier (n : ℕ+) :
    Kˣ ≃* (AbsoluteRadicalDatum K n).carrier
ClassFieldTower.Martinet.Shafarevich.map_powerRange_unitsEquivAbsoluteRadicalCarrier
Source context 5 commands

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

open scoped Topology
noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory
variable (K : Type*) [Field K]
theorem map_powerRange_unitsEquivAbsoluteRadicalCarrier (n : ℕ+) :
    (powMonoidHom (n : ℕ) : Kˣ →* Kˣ).range.map
        (unitsEquivAbsoluteRadicalCarrier K n).toMonoidHom =
      (AbsoluteRadicalDatum K n).ambientNthPowersSubgroup
ClassFieldTower.Martinet.Shafarevich.absolutePowerClassEquivRadicalQuotient

The ordinary power-class group is canonically the radical quotient used by the infinite Kummer character theorem over the algebraic closure.

Source context 5 commands

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

open scoped Topology
noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory
variable (K : Type*) [Field K]
def absolutePowerClassEquivRadicalQuotient (n : ℕ+) :
    Kˣ ⧸ (powMonoidHom (n : ℕ) : Kˣ →* Kˣ).range ≃*
      (AbsoluteRadicalDatum K n).RadicalQuotient
ClassFieldTower.Martinet.Shafarevich.absoluteKummerContinuousNthRootsCharacterEquiv

Absolute Kummer theory with its natural roots-of-unity target.

Source context 5 commands

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

open scoped Topology
noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory
variable (K : Type*) [Field K]
def absoluteKummerContinuousNthRootsCharacterEquiv
    [CharZero K]
    (n : ℕ+) (hmu : (primitiveRoots (n : ℕ) K).Nonempty) :
    Kˣ ⧸ (powMonoidHom (n : ℕ) : Kˣ →* Kˣ).range ≃*
      (Field.absoluteGaloisGroup K →ₜ*
        DiscreteNthRootsSubgroup (AlgebraicClosure K) (n : ℕ))
ClassFieldTower.Martinet.Shafarevich.nthRootsSubgroupEquivMultiplicativeZMod
Source context 5 commands

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

open scoped Topology
noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory
variable (K : Type*) [Field K]
def nthRootsSubgroupEquivMultiplicativeZMod
    (n : ℕ+) (hmu : (primitiveRoots (n : ℕ) K).Nonempty) :
    nthRootsSubgroup (AlgebraicClosure K) (n : ℕ) ≃*
      Multiplicative (ZMod (n : ℕ))
ClassFieldTower.Martinet.Shafarevich.discreteMultiplicativeZModTopologicalSpace
Source context 5 commands

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

open scoped Topology
noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory
variable (K : Type*) [Field K]
instance discreteMultiplicativeZModTopologicalSpace (n : ℕ) :
    TopologicalSpace (Multiplicative (ZMod n))
ClassFieldTower.Martinet.Shafarevich.discreteMultiplicativeZModDiscreteTopology
Source context 6 commands

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

open scoped Topology
noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory
variable (K : Type*) [Field K]
local instance discreteMultiplicativeZModTopologicalSpace (n : ℕ) :
    TopologicalSpace (Multiplicative (ZMod n)) := ⊥
instance discreteMultiplicativeZModDiscreteTopology (n : ℕ) :
    DiscreteTopology (Multiplicative (ZMod n))
ClassFieldTower.Martinet.Shafarevich.discreteNthRootsContinuousMulEquivMultiplicativeZMod

Choosing a primitive root in K identifies discrete roots of unity in its algebraic closure with the discrete multiplicative group underlying ZMod n.

Source context 7 commands

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

open scoped Topology
noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory
variable (K : Type*) [Field K]
local instance discreteMultiplicativeZModTopologicalSpace (n : ℕ) :
    TopologicalSpace (Multiplicative (ZMod n)) := ⊥
local instance discreteMultiplicativeZModDiscreteTopology (n : ℕ) :
    DiscreteTopology (Multiplicative (ZMod n)) :=
  discreteTopology_bot _
def discreteNthRootsContinuousMulEquivMultiplicativeZMod
    (n : ℕ+) (hmu : (primitiveRoots (n : ℕ) K).Nonempty) :
    DiscreteNthRootsSubgroup (AlgebraicClosure K) (n : ℕ) ≃ₜ*
      Multiplicative (ZMod (n : ℕ)) where
  __ := nthRootsSubgroupEquivMultiplicativeZMod K n hmu
  continuous_toFun := continuous_of_discreteTopology
  continuous_invFun := continuous_of_discreteTopology
ClassFieldTower.Martinet.Shafarevich.continuousCharacterCongrRight
Source context 7 commands

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

open scoped Topology
noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory
variable (K : Type*) [Field K]
local instance discreteMultiplicativeZModTopologicalSpace (n : ℕ) :
    TopologicalSpace (Multiplicative (ZMod n)) := ⊥
local instance discreteMultiplicativeZModDiscreteTopology (n : ℕ) :
    DiscreteTopology (Multiplicative (ZMod n)) :=
  discreteTopology_bot _
def continuousCharacterCongrRight
    {G A B : Type*} [Group G] [TopologicalSpace G]
    [CommGroup A] [TopologicalSpace A] [IsTopologicalGroup A]
    [CommGroup B] [TopologicalSpace B] [IsTopologicalGroup B]
    (e : A ≃ₜ* B) :
    (G →ₜ* A) ≃* (G →ₜ* B) where
  toFun f :=
    ⟨e.toMulEquiv.toMonoidHom.comp f.toMonoidHom,
      e.continuous.comp f.continuous⟩
  invFun f :=
    ⟨e.symm.toMulEquiv.toMonoidHom.comp f.toMonoidHom,
      e.symm.continuous.comp f.continuous⟩
  left_inv f := by
    ext g
    exact e.symm_apply_apply (f g)
  right_inv f := by
    ext g
    exact e.apply_symm_apply (f g)
  map_mul' f g := by
    ext x
    exact map_mul e (f x) (g x)
ClassFieldTower.Martinet.Shafarevich.absoluteKummerContinuousZModCharacterEquiv

Absolute Kummer theory in the mod-n character convention used by the continuous degree-one cohomology API.

Source context 7 commands

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

open scoped Topology
noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory
variable (K : Type*) [Field K]
local instance discreteMultiplicativeZModTopologicalSpace (n : ℕ) :
    TopologicalSpace (Multiplicative (ZMod n)) := ⊥
local instance discreteMultiplicativeZModDiscreteTopology (n : ℕ) :
    DiscreteTopology (Multiplicative (ZMod n)) :=
  discreteTopology_bot _
def absoluteKummerContinuousZModCharacterEquiv
    [CharZero K]
    (n : ℕ+) (hmu : (primitiveRoots (n : ℕ) K).Nonempty) :
    Kˣ ⧸ (powMonoidHom (n : ℕ) : Kˣ →* Kˣ).range ≃*
      (Field.absoluteGaloisGroup K →ₜ* Multiplicative (ZMod (n : ℕ)))