Module

ValuationContinuity.lean

Nyll.ClassFieldTheory.AbstractClassFieldTheory.Reciprocity.ValuationContinuity
19 declarations indexed from sourceView source ↗

Continuity of the normalized valuation

The proof uses the neighbourhoods f ℤ̂. We construct the required unramified extension of degree f as the fixed field of the kernel of reduction modulo f after the normalized degree map d_K. The norm--valuation formula then sends its norm subgroup into the prescribed neighbourhood.

Declarations

ClassFormation.DegreeData.unramifiedDegreeHom

Reduction modulo f after the normalized degree d_K.

Source context 8 commands

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

noncomputable section
open scoped Topology
namespace ClassFormation
open ClassFormation CyclicCohomology KummerTheory
universe u
section DegreeOnly
variable {G : Type u} [Group G] [TopologicalSpace G]
namespace DegreeData
def unramifiedDegreeHom (D : DegreeData G)
    (K : FiniteResidueAbstractField D) (f : ℕ) (hf : 0 < f) :
    K.toSubgroup →ₜ* Multiplicative (ZMod f)
ClassFormation.DegreeData.unramifiedDegreeKernelWithin

The subgroup of G_K fixing the degree-f unramified extension.

Source context 8 commands

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

noncomputable section
open scoped Topology
namespace ClassFormation
open ClassFormation CyclicCohomology KummerTheory
universe u
section DegreeOnly
variable {G : Type u} [Group G] [TopologicalSpace G]
namespace DegreeData
def unramifiedDegreeKernelWithin (D : DegreeData G)
    (K : FiniteResidueAbstractField D) (f : ℕ) (hf : 0 < f) :
    Subgroup K.toSubgroup
ClassFormation.DegreeData.unramifiedDegreeKernelWithin_eq_ker

The defining kernel equation for the reduction subgroup.

Source context 8 commands

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

noncomputable section
open scoped Topology
namespace ClassFormation
open ClassFormation CyclicCohomology KummerTheory
universe u
section DegreeOnly
variable {G : Type u} [Group G] [TopologicalSpace G]
namespace DegreeData
theorem unramifiedDegreeKernelWithin_eq_ker (D : DegreeData G)
    (K : FiniteResidueAbstractField D) (f : ℕ) (hf : 0 < f) :
    unramifiedDegreeKernelWithin D K f hf =
      (unramifiedDegreeHom D K f hf).toMonoidHom.ker
ClassFormation.DegreeData.unramifiedDegreeKernelWithin_isClosed

The kernel of normalized degree modulo a positive integer is closed inside the finite-residue field subgroup.

Source context 8 commands

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

noncomputable section
open scoped Topology
namespace ClassFormation
open ClassFormation CyclicCohomology KummerTheory
universe u
section DegreeOnly
variable {G : Type u} [Group G] [TopologicalSpace G]
namespace DegreeData
theorem unramifiedDegreeKernelWithin_isClosed (D : DegreeData G)
    (K : FiniteResidueAbstractField D)
    (f : ℕ) (hf : 0 < f) :
    IsClosed (unramifiedDegreeKernelWithin D K f hf :
      Set K.toSubgroup)
ClassFormation.DegreeData.unramifiedExtensionOfDegree

The actual fixed field of the reduction-modulo-f kernel of d_K.

Source context 8 commands

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

noncomputable section
open scoped Topology
namespace ClassFormation
open ClassFormation CyclicCohomology KummerTheory
universe u
section DegreeOnly
variable {G : Type u} [Group G] [TopologicalSpace G]
namespace DegreeData
def unramifiedExtensionOfDegree (D : DegreeData G) [IsTopologicalGroup G]
    (K : FiniteResidueAbstractField D)
    (f : ℕ) (hf : 0 < f) : ClosedSubgroup G where
  toSubgroup :=
    (unramifiedDegreeKernelWithin D K f hf).map K.toSubgroup.subtype
  isClosed' := by
    change IsClosed
      (Subtype.val ''
        (unramifiedDegreeKernelWithin D K f hf : Set K.toSubgroup))
    exact K.field.isClosed'.isClosedEmbedding_subtypeVal.isClosedMap _
      (unramifiedDegreeKernelWithin_isClosed D K f hf)
ClassFormation.DegreeData.mem_unramifiedExtensionOfDegree_iff

Characterizes g ∈ unramifiedExtensionOfDegree D K f hf by the equivalent condition ∃ k : K.toSubgroup, k ∈ unramifiedDegreeKernelWithin D K f hf ∧ k.1 = g.

Source context 8 commands

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

noncomputable section
open scoped Topology
namespace ClassFormation
open ClassFormation CyclicCohomology KummerTheory
universe u
section DegreeOnly
variable {G : Type u} [Group G] [TopologicalSpace G]
namespace DegreeData
theorem mem_unramifiedExtensionOfDegree_iff (D : DegreeData G)
    [IsTopologicalGroup G] (K : FiniteResidueAbstractField D)
    (f : ℕ) (hf : 0 < f) (g : G) :
    g ∈ unramifiedExtensionOfDegree D K f hf ↔
      ∃ k : K.toSubgroup,
        k ∈ unramifiedDegreeKernelWithin D K f hf ∧ k.1 = g
ClassFormation.DegreeData.unramifiedExtensionOfDegree_le

Proves the bound (unramifiedExtensionOfDegree D K f hf).toSubgroup ≤ K.toSubgroup.

Source context 8 commands

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

noncomputable section
open scoped Topology
namespace ClassFormation
open ClassFormation CyclicCohomology KummerTheory
universe u
section DegreeOnly
variable {G : Type u} [Group G] [TopologicalSpace G]
namespace DegreeData
theorem unramifiedExtensionOfDegree_le (D : DegreeData G)
    [IsTopologicalGroup G] (K : FiniteResidueAbstractField D)
    (f : ℕ) (hf : 0 < f) :
    (unramifiedExtensionOfDegree D K f hf).toSubgroup ≤
      K.toSubgroup
ClassFormation.DegreeData.extensionSubgroup_unramifiedExtensionOfDegree

Establishes the identity extensionSubgroup K.field (unramifiedExtensionOfDegree D K f hf) (unramifiedExtensionOfDegree_le D K f hf) = unramifiedDegreeKernelWithin D K f hf.

Source context 8 commands

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

noncomputable section
open scoped Topology
namespace ClassFormation
open ClassFormation CyclicCohomology KummerTheory
universe u
section DegreeOnly
variable {G : Type u} [Group G] [TopologicalSpace G]
namespace DegreeData
theorem extensionSubgroup_unramifiedExtensionOfDegree (D : DegreeData G)
    [IsTopologicalGroup G] (K : FiniteResidueAbstractField D)
    (f : ℕ) (hf : 0 < f) :
    extensionSubgroup K.field (unramifiedExtensionOfDegree D K f hf)
        (unramifiedExtensionOfDegree_le D K f hf) =
      unramifiedDegreeKernelWithin D K f hf
ClassFormation.DegreeData.unramifiedDegreeHom_surjective

The specified map is surjective: Function.Surjective (unramifiedDegreeHom D K f hf).

Source context 8 commands

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

noncomputable section
open scoped Topology
namespace ClassFormation
open ClassFormation CyclicCohomology KummerTheory
universe u
section DegreeOnly
variable {G : Type u} [Group G] [TopologicalSpace G]
namespace DegreeData
theorem unramifiedDegreeHom_surjective (D : DegreeData G)
    (K : FiniteResidueAbstractField D)
    (f : ℕ) (hf : 0 < f) :
    Function.Surjective (unramifiedDegreeHom D K f hf)
ClassFormation.DegreeData.unramifiedExtensionOfDegree_normal

The extension subgroup of the canonical unramified degree-f extension is normal.

Source context 8 commands

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

noncomputable section
open scoped Topology
namespace ClassFormation
open ClassFormation CyclicCohomology KummerTheory
universe u
section DegreeOnly
variable {G : Type u} [Group G] [TopologicalSpace G]
namespace DegreeData
instance unramifiedExtensionOfDegree_normal (D : DegreeData G)
    [IsTopologicalGroup G] (K : FiniteResidueAbstractField D)
    (f : ℕ) (hf : 0 < f) :
    (extensionSubgroup K.field (unramifiedExtensionOfDegree D K f hf)
      (unramifiedExtensionOfDegree_le D K f hf)).Normal
ClassFormation.DegreeData.finiteUnramifiedExtension

The reduction kernel packages an actual finite Galois extension of K.

Source context 8 commands

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

noncomputable section
open scoped Topology
namespace ClassFormation
open ClassFormation CyclicCohomology KummerTheory
universe u
section DegreeOnly
variable {G : Type u} [Group G] [TopologicalSpace G]
namespace DegreeData
def finiteUnramifiedExtension (D : DegreeData G) [IsTopologicalGroup G]
    (K : FiniteResidueAbstractField D)
    (f : ℕ) (hf : 0 < f) : FiniteGaloisSubextension K.field where
  field := unramifiedExtensionOfDegree D K f hf
  below := unramifiedExtensionOfDegree_le D K f hf
  normal := inferInstance
  finite := by
    rw [extensionSubgroup_unramifiedExtensionOfDegree D K f hf]
    let : NeZero f := ⟨Nat.ne_of_gt hf⟩
    let : Finite (Multiplicative (ZMod f)) := by
      change Finite (ZMod f)
      infer_instance
    let q := (unramifiedDegreeHom D K f hf).toMonoidHom
    exact Finite.of_injective
      (QuotientGroup.quotientKerEquivOfSurjective q
        (unramifiedDegreeHom_surjective D K f hf))
      (QuotientGroup.quotientKerEquivOfSurjective q
        (unramifiedDegreeHom_surjective D K f hf)).injective
ClassFormation.DegreeData.extensionSubgroup_finiteUnramifiedExtension

The extension subgroup carried by the bundled finite unramified extension is the reduction kernel used to construct it.

Source context 8 commands

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

noncomputable section
open scoped Topology
namespace ClassFormation
open ClassFormation CyclicCohomology KummerTheory
universe u
section DegreeOnly
variable {G : Type u} [Group G] [TopologicalSpace G]
namespace DegreeData
theorem extensionSubgroup_finiteUnramifiedExtension
    (D : DegreeData G) [IsTopologicalGroup G]
    (K : FiniteResidueAbstractField D) (f : ℕ) (hf : 0 < f) :
    extensionSubgroup K.field (D.finiteUnramifiedExtension K f hf).field
        (D.finiteUnramifiedExtension K f hf).below =
      unramifiedDegreeKernelWithin D K f hf
ClassFormation.DegreeData.finiteUnramifiedAbelianExtension

The finite unramified extension is abelian: its Galois quotient is the cyclic quotient detected by the normalized degree modulo f.

Source context 8 commands

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

noncomputable section
open scoped Topology
namespace ClassFormation
open ClassFormation CyclicCohomology KummerTheory
universe u
section DegreeOnly
variable {G : Type u} [Group G] [TopologicalSpace G]
namespace DegreeData
def finiteUnramifiedAbelianExtension (D : DegreeData G) [IsTopologicalGroup G]
    (K : FiniteResidueAbstractField D)
    (f : ℕ) (hf : 0 < f) : FiniteAbelianSubextension K.field where
  toFiniteGaloisExtension := finiteUnramifiedExtension D K f hf
  commutative := by
    let :
        (extensionSubgroup K.field
          (D.finiteUnramifiedExtension K f hf).field
          (D.finiteUnramifiedExtension K f hf).below).Normal :=
      (D.finiteUnramifiedExtension K f hf).normal
    change IsMulCommutative
      (K.toSubgroup ⧸
        extensionSubgroup K.field
          (D.finiteUnramifiedExtension K f hf).field
          (D.finiteUnramifiedExtension K f hf).below)
    let q := (unramifiedDegreeHom D K f hf).toMonoidHom
    have hsub :
        extensionSubgroup K.field
            (D.finiteUnramifiedExtension K f hf).field
            (D.finiteUnramifiedExtension K f hf).below =
          q.ker := by
      rw [D.extensionSubgroup_finiteUnramifiedExtension K f hf,
        D.unramifiedDegreeKernelWithin_eq_ker K f hf]
    let e :
        (K.toSubgroup ⧸
            extensionSubgroup K.field
              (D.finiteUnramifiedExtension K f hf).field
              (D.finiteUnramifiedExtension K f hf).below) ≃*
          Multiplicative (ZMod f) :=
      (QuotientGroup.quotientMulEquivOfEq hsub).trans
        (QuotientGroup.quotientKerEquivOfSurjective q
          (unramifiedDegreeHom_surjective D K f hf))
    exact
      { is_comm.comm := fun x y => by
          apply e.injective
          rw [map_mul, map_mul, mul_comm] }
ClassFormation.DegreeData.finiteUnramifiedAbelianExtension_toFiniteGaloisExtension

Forgetting commutativity from the abelian package recovers the canonical finite unramified Galois extension.

Source context 8 commands

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

noncomputable section
open scoped Topology
namespace ClassFormation
open ClassFormation CyclicCohomology KummerTheory
universe u
section DegreeOnly
variable {G : Type u} [Group G] [TopologicalSpace G]
namespace DegreeData
theorem finiteUnramifiedAbelianExtension_toFiniteGaloisExtension
    (D : DegreeData G) [IsTopologicalGroup G]
    (K : FiniteResidueAbstractField D)
    (f : ℕ) (hf : 0 < f) :
    (D.finiteUnramifiedAbelianExtension K f hf).toFiniteGaloisExtension =
      D.finiteUnramifiedExtension K f hf
ClassFormation.DegreeData.unramifiedExtensionOfDegree_isUnramified

The reduction kernel contains inertia, so its fixed field is unramified.

Source context 8 commands

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

noncomputable section
open scoped Topology
namespace ClassFormation
open ClassFormation CyclicCohomology KummerTheory
universe u
section DegreeOnly
variable {G : Type u} [Group G] [TopologicalSpace G]
namespace DegreeData
theorem unramifiedExtensionOfDegree_isUnramified (D : DegreeData G)
    [IsTopologicalGroup G] (K : FiniteResidueAbstractField D)
    (f : ℕ) (hf : 0 < f) :
    (DegreeData.AbstractExtension.mk (unramifiedExtensionOfDegree D K f hf) K.field
      (unramifiedExtensionOfDegree_le D K f hf)).IsUnramified D
ClassFormation.DegreeData.finiteUnramifiedExtension_degree

The finite extension cut out by reduction modulo f has positive degree f.

Source context 8 commands

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

noncomputable section
open scoped Topology
namespace ClassFormation
open ClassFormation CyclicCohomology KummerTheory
universe u
section DegreeOnly
variable {G : Type u} [Group G] [TopologicalSpace G]
namespace DegreeData
theorem finiteUnramifiedExtension_degree (D : DegreeData G)
    [IsTopologicalGroup G] (K : FiniteResidueAbstractField D)
    (f : ℕ) (hf : 0 < f) :
    (((finiteUnramifiedExtension D K f hf).toFiniteAbstractExtension.degree : ℕ)) = f
ClassFormation.DegreeData.finiteUnramifiedExtension_residueDegree

Thus the positive relative residue degree is also f.

Source context 8 commands

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

noncomputable section
open scoped Topology
namespace ClassFormation
open ClassFormation CyclicCohomology KummerTheory
universe u
section DegreeOnly
variable {G : Type u} [Group G] [TopologicalSpace G]
namespace DegreeData
theorem finiteUnramifiedExtension_residueDegree (D : DegreeData G)
    [IsTopologicalGroup G] (K : FiniteResidueAbstractField D)
    (f : ℕ) (hf : 0 < f) :
    (((finiteUnramifiedExtension D K f hf).toFiniteAbstractExtension.residueDegree D : ℕ)) = f
ClassFormation.ValuationData.exists_nsmul_mem_of_valueGroup_mem_nhds

Every neighbourhood of zero in the value group contains all f-fold multiples for some f > 0. This is the subspace-topology form of the neighbourhood basis f ℤ̂.

Source context 9 commands

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

noncomputable section
open scoped Topology
namespace ClassFormation
open ClassFormation CyclicCohomology KummerTheory
universe u
section Representation

-- Mathlib's `Rep ℤ G` currently fixes the acting group to universe zero.
variable {G : IntegralRepGroupType} [Group G] [TopologicalSpace G]
namespace ValuationData
variable {D : DegreeData G} {A : Rep ℤ G}
theorem exists_nsmul_mem_of_valueGroup_mem_nhds
    (v : ValuationData D A) {U : Set v.valueGroup}
    (hU : U ∈ 𝓝 (0 : v.valueGroup)) :
    ∃ f : ℕ, 0 < f ∧ ∀ z : v.valueGroup, f • z ∈ U
ClassFormation.ValuationData.normTopology_valuation_continuous

continuity of the normalized valuation. The normalized valuation is continuous from the norm topology on A_K to the value group with its ℤ̂-subspace topology.

Source context 9 commands

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

noncomputable section
open scoped Topology
namespace ClassFormation
open ClassFormation CyclicCohomology KummerTheory
universe u
section Representation

-- Mathlib's `Rep ℤ G` currently fixes the acting group to universe zero.
variable {G : IntegralRepGroupType} [Group G] [TopologicalSpace G]
namespace ValuationData
variable {D : DegreeData G} {A : Rep ℤ G}
theorem normTopology_valuation_continuous
    [IsTopologicalGroup G] (v : ValuationData D A)
    (K : FiniteAbstractField G) :
    IsContinuousFromNormTopology A K.field (v.valuationAt K)