Module

TopologicalProfiniteCompletion.lean

Nyll.ClassFieldTheory.Definitions.LocalClassFieldTheory.TopologicalProfiniteCompletion
16 declarations indexed from sourceView source ↗

Topological profinite completion

This module defines the profinite completion of a topological group using its open finite-index normal subgroups. The construction records the topology on the source group, unlike the abstract profinite completion by all finite quotients.

Imports3
  • Mathlib.Topology.Algebra.Category.ProfiniteGrp.Basic
  • Mathlib.Topology.Algebra.Group.Quotient
  • Mathlib.Topology.Algebra.OpenSubgroup
Imported by3

Declarations

LocalClassFieldTheory.OpenFiniteIndexNormalSubgroup

An open normal subgroup whose quotient has finite cardinality.

Source context 5 commands

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

noncomputable section
open CategoryTheory
open scoped Pointwise
namespace LocalClassFieldTheory
universe u
def OpenFiniteIndexNormalSubgroup (G : Type u) [Group G] [TopologicalSpace G]
LocalClassFieldTheory.OpenFiniteIndexNormalSubgroup.toOpenNormalSubgroup

The underlying open normal subgroup.

Source context 7 commands

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

noncomputable section
open CategoryTheory
open scoped Pointwise
namespace LocalClassFieldTheory
universe u
namespace OpenFiniteIndexNormalSubgroup
variable {G : Type u} [Group G] [TopologicalSpace G]
def toOpenNormalSubgroup (H : OpenFiniteIndexNormalSubgroup G) :
    OpenNormalSubgroup G
LocalClassFieldTheory.OpenFiniteIndexNormalSubgroup.finiteIndex'

The finite-index witness carried by the subtype.

Source context 7 commands

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

noncomputable section
open CategoryTheory
open scoped Pointwise
namespace LocalClassFieldTheory
universe u
namespace OpenFiniteIndexNormalSubgroup
variable {G : Type u} [Group G] [TopologicalSpace G]
theorem finiteIndex' (H : OpenFiniteIndexNormalSubgroup G) :
    H.toOpenNormalSubgroup.toSubgroup.FiniteIndex
theorem

ext

L51 ↗
LocalClassFieldTheory.OpenFiniteIndexNormalSubgroup.ext

Finite-index open normal subgroups are determined by their underlying open normal subgroups.

Source context 7 commands

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

noncomputable section
open CategoryTheory
open scoped Pointwise
namespace LocalClassFieldTheory
universe u
namespace OpenFiniteIndexNormalSubgroup
variable {G : Type u} [Group G] [TopologicalSpace G]
theorem ext {H K : OpenFiniteIndexNormalSubgroup G}
    (h : H.toOpenNormalSubgroup = K.toOpenNormalSubgroup) : H = K

An indexed open normal subgroup carries its finite-index witness as an instance.

Source context 7 commands

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

noncomputable section
open CategoryTheory
open scoped Pointwise
namespace LocalClassFieldTheory
universe u
namespace OpenFiniteIndexNormalSubgroup
variable {G : Type u} [Group G] [TopologicalSpace G]
instance (H : OpenFiniteIndexNormalSubgroup G) :
    H.toOpenNormalSubgroup.toSubgroup.FiniteIndex

Open finite-index normal subgroups are ordered by inclusion.

Source context 7 commands

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

noncomputable section
open CategoryTheory
open scoped Pointwise
namespace LocalClassFieldTheory
universe u
namespace OpenFiniteIndexNormalSubgroup
variable {G : Type u} [Group G] [TopologicalSpace G]
instance : PartialOrder (OpenFiniteIndexNormalSubgroup G)

The inclusion preorder makes open finite-index normal subgroups a small thin category.

Source context 7 commands

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

noncomputable section
open CategoryTheory
open scoped Pointwise
namespace LocalClassFieldTheory
universe u
namespace OpenFiniteIndexNormalSubgroup
variable {G : Type u} [Group G] [TopologicalSpace G]
instance : SmallCategory (OpenFiniteIndexNormalSubgroup G)
LocalClassFieldTheory.OpenFiniteIndexNormalSubgroup.le_of_hom

A morphism of open finite-index normal subgroups induces inclusion of the underlying subgroups.

Source context 7 commands

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

noncomputable section
open CategoryTheory
open scoped Pointwise
namespace LocalClassFieldTheory
universe u
namespace OpenFiniteIndexNormalSubgroup
variable {G : Type u} [Group G] [TopologicalSpace G]
theorem le_of_hom {H K : OpenFiniteIndexNormalSubgroup G} (f : H ⟶ K) :
    H.toOpenNormalSubgroup.toSubgroup ≤ K.toOpenNormalSubgroup.toSubgroup
LocalClassFieldTheory.openFiniteQuotientFunctor

The functor of finite quotients attached to open finite-index normal subgroups. Inclusion of subgroups induces the corresponding quotient map.

Source context 6 commands

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

noncomputable section
open CategoryTheory
open scoped Pointwise
namespace LocalClassFieldTheory
universe u
variable (G : Type u) [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
def openFiniteQuotientFunctor :
    OpenFiniteIndexNormalSubgroup G ⥤ FiniteGrp where
  obj H := FiniteGrp.of (G ⧸ H.toOpenNormalSubgroup.toSubgroup)
  map := fun hHK => FiniteGrp.ofHom <|
    QuotientGroup.map _ _ (.id _) (by
      simpa using OpenFiniteIndexNormalSubgroup.le_of_hom hHK)
  map_id _ := ConcreteCategory.ext <| QuotientGroup.map_id _
  map_comp f g := ConcreteCategory.ext <|
    (QuotientGroup.map_comp_map _ _ _ (.id _) (.id _)
      (by simpa using OpenFiniteIndexNormalSubgroup.le_of_hom f)
      (by simpa using OpenFiniteIndexNormalSubgroup.le_of_hom g)).symm
LocalClassFieldTheory.openFiniteQuotientDiagram

The finite-quotient diagram, regarded in profinite groups with the discrete topology on every finite stage.

Source context 6 commands

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

noncomputable section
open CategoryTheory
open scoped Pointwise
namespace LocalClassFieldTheory
universe u
variable (G : Type u) [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
def openFiniteQuotientDiagram :
    OpenFiniteIndexNormalSubgroup G ⥤ ProfiniteGrp
LocalClassFieldTheory.openFiniteQuotient

The finite profinite quotient attached to an open finite-index normal subgroup.

Source context 6 commands

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

noncomputable section
open CategoryTheory
open scoped Pointwise
namespace LocalClassFieldTheory
universe u
variable (G : Type u) [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
def openFiniteQuotient
    (H : OpenFiniteIndexNormalSubgroup G) : ProfiniteGrp
LocalClassFieldTheory.openFiniteQuotientProduct

The product of all open finite quotients used to construct the completion.

Source context 6 commands

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

noncomputable section
open CategoryTheory
open scoped Pointwise
namespace LocalClassFieldTheory
universe u
variable (G : Type u) [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
abbrev openFiniteQuotientProduct : ProfiniteGrp
LocalClassFieldTheory.openFiniteQuotientProductMapMonoidHom

The diagonal homomorphism to the product of all open finite quotients.

Source context 6 commands

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

noncomputable section
open CategoryTheory
open scoped Pointwise
namespace LocalClassFieldTheory
universe u
variable (G : Type u) [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
def openFiniteQuotientProductMapMonoidHom :
    G →* openFiniteQuotientProduct G where
  toFun g H := QuotientGroup.mk g
  map_one' := by
    funext H
    rfl
  map_mul' x y := by
    funext H
    rfl
LocalClassFieldTheory.openFiniteQuotientProductMapMonoidHom_continuous

The diagonal map into the product of open finite quotients is continuous.

Source context 6 commands

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

noncomputable section
open CategoryTheory
open scoped Pointwise
namespace LocalClassFieldTheory
universe u
variable (G : Type u) [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
theorem openFiniteQuotientProductMapMonoidHom_continuous :
    Continuous (openFiniteQuotientProductMapMonoidHom G)
LocalClassFieldTheory.TopologicalProfiniteCompletion

The topological profinite completion over open finite quotients, realized as the closure of the diagonal image in their product.

Source context 6 commands

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

noncomputable section
open CategoryTheory
open scoped Pointwise
namespace LocalClassFieldTheory
universe u
variable (G : Type u) [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
def TopologicalProfiniteCompletion : ProfiniteGrp
LocalClassFieldTheory.topologicalProfiniteCompletionMap

The canonical continuous homomorphism into the open-quotient completion.

Source context 6 commands

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

noncomputable section
open CategoryTheory
open scoped Pointwise
namespace LocalClassFieldTheory
universe u
variable (G : Type u) [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
def topologicalProfiniteCompletionMap :
    G →ₜ* TopologicalProfiniteCompletion G where
  toFun g :=
    ⟨openFiniteQuotientProductMapMonoidHom G g,
      Subgroup.le_topologicalClosure
        (MonoidHom.range (openFiniteQuotientProductMapMonoidHom G)) ⟨g, rfl⟩⟩
  map_one' := by
    apply Subtype.ext
    exact (openFiniteQuotientProductMapMonoidHom G).map_one
  map_mul' x y := by
    apply Subtype.ext
    exact (openFiniteQuotientProductMapMonoidHom G).map_mul x y
  continuous_toFun :=
    (openFiniteQuotientProductMapMonoidHom_continuous G).subtype_mk _