Module

TopologicalAbelianizationFunctoriality.lean

Nyll.ProCGroups.Abelian.TopologicalAbelianizationFunctoriality
29 declarations indexed from sourceView source ↗

Functorial topological abelianization

Topological abelianization defines a functor from topological groups to commutative topological groups. Its universal property is expressed directly as an equivalence of morphism types for \(T_1\) targets.

Imports4
Imported by22

Declarations

ProCGroups.Abelian.topologicalAbelianizationFunctor

Topological abelianization as a functor from topological groups to commutative topological groups.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
def topologicalAbelianizationFunctor : TopGrp.{u} ⥤ CommTopGrp.{u} where
  obj G := CommTopGrp.of (TopologicalAbelianization G)
  map {G H} f := CommTopGrp.ofHom (TopologicalAbelianization.map f.hom)
  map_id G := by
    apply CommTopGrp.hom_ext
    exact TopologicalAbelianization.map_id G
  map_comp f g := by
    apply CommTopGrp.hom_ext
    exact TopologicalAbelianization.map_comp g.hom f.hom
ProCGroups.Abelian.topologicalAbelianizationFunctor_map_apply_mk

The induced map on topological abelianizations sends a representative class to the class of its image.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
theorem topologicalAbelianizationFunctor_map_apply_mk
    {G H : TopGrp.{u}} (f : G ⟶ H) (x : G) :
    topologicalAbelianizationFunctor.map f (TopologicalAbelianization.mk G x) =
      TopologicalAbelianization.mk H (f x)
ProCGroups.Abelian.topologicalAbelianizationHomEquiv

Category-level Hom equivalence expressing the universal property of topological abelianization for commutative \(T_1\) targets.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
def topologicalAbelianizationHomEquiv
    (G : TopGrp.{u}) (A : CommTopGrp.{u}) [T1Space A] :
    (topologicalAbelianizationFunctor.obj G ⟶ A) ≃
      (G ⟶ commTopGrpForgetToTopGrp.obj A) where
  toFun φ := TopGrp.ofHom (φ.hom.comp (TopologicalAbelianization.mkₜ G))
  invFun f := CommTopGrp.ofHom (TopologicalAbelianization.lift f.hom)
  left_inv φ := by
    apply CommTopGrp.hom_ext
    apply TopologicalAbelianization.hom_ext
    intro x
    rfl
  right_inv f := by
    apply TopGrp.hom_ext
    ext x
    rfl
ProCGroups.Abelian.topologicalAbelianizationHomEquiv_apply_hom

The topological-abelianization hom equivalence evaluates a homomorphism by its induced map on representatives.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
theorem topologicalAbelianizationHomEquiv_apply_hom
    (G : TopGrp.{u}) (A : CommTopGrp.{u}) [T1Space A]
    (φ : topologicalAbelianizationFunctor.obj G ⟶ A) :
    (topologicalAbelianizationHomEquiv G A φ).hom =
      φ.hom.comp (TopologicalAbelianization.mkₜ G)
ProCGroups.Abelian.topologicalAbelianizationHomEquiv_symm_apply_mk

The inverse topological-abelianization hom equivalence sends a coset representative to the corresponding homomorphism value.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
theorem topologicalAbelianizationHomEquiv_symm_apply_mk
    (G : TopGrp.{u}) (A : CommTopGrp.{u}) [T1Space A]
    (f : G ⟶ commTopGrpForgetToTopGrp.obj A) (x : G) :
    (topologicalAbelianizationHomEquiv G A).symm f
      (TopologicalAbelianization.mk G x) = f x
ProCGroups.Abelian.topologicalAbelianizationTopMulEquiv

The topological abelianization of the \(\top\) open subgroup is canonically the same as the topological abelianization of the ambient group.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
def topologicalAbelianizationTopMulEquiv
    {G : Type u} [TopologicalSpace G] [Group G] [IsTopologicalGroup G] :
    TopologicalAbelianization ↥((⊤ : OpenSubgroup G) : Subgroup G) ≃ₜ*
      TopologicalAbelianization G
ProCGroups.Abelian.topologicalAbelianizationTopMulEquiv_apply_mk

The abelianization equivalence for a topological group equivalence sends representatives to representatives.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
theorem topologicalAbelianizationTopMulEquiv_apply_mk
    {G : Type u} [TopologicalSpace G] [Group G] [IsTopologicalGroup G]
    (x : ↥((⊤ : OpenSubgroup G) : Subgroup G)) :
    topologicalAbelianizationTopMulEquiv
        (G := G) (TopologicalAbelianization.mk ↥((⊤ : OpenSubgroup G) : Subgroup G) x) =
      TopologicalAbelianization.mk G x.1
ProCGroups.Abelian.quotientConjugationTopologicalAbelianizationMap

The quotient G/N acts on the topological abelianization of N by conjugation.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
def quotientConjugationTopologicalAbelianizationMap
    {G : Type u} [TopologicalSpace G] [Group G] [IsTopologicalGroup G]
    (N : Subgroup G) [N.Normal] :
    (G ⧸ N) →* MulAut (TopologicalAbelianization N)
ProCGroups.Abelian.conjugationTopologicalAbelianizationContinuousAut

The continuous self-equivalence of topological abelianization induced by conjugation by a representative.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
def conjugationTopologicalAbelianizationContinuousAut
    {G : Type u} [TopologicalSpace G] [Group G] [IsTopologicalGroup G]
    (N : Subgroup G) [N.Normal] (g : G) :
    TopologicalAbelianization N ≃ₜ* TopologicalAbelianization N
ProCGroups.Abelian.conjugationTopologicalAbelianizationContinuousAut_toMulAut_apply_mk

The representative-wise continuous automorphism has the same underlying algebraic action as quotientConjugationTopologicalAbelianizationMap.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
theorem conjugationTopologicalAbelianizationContinuousAut_toMulAut_apply_mk
    {G : Type u} [TopologicalSpace G] [Group G] [IsTopologicalGroup G]
    (N : Subgroup G) [N.Normal] (g : G) (n : N) :
    conjugationTopologicalAbelianizationContinuousAut (G := G) N g
      (TopologicalAbelianization.mk N n) =
        quotientConjugationTopologicalAbelianizationMap (G := G) (N := N)
          (QuotientGroup.mk' N g) (TopologicalAbelianization.mk N n)
ProCGroups.Abelian.quotientConjugationTopologicalAbelianizationMap_mk_apply_mk

The conjugation action on a quotient induces the expected map on topological abelianization representatives.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
theorem quotientConjugationTopologicalAbelianizationMap_mk_apply_mk
    {G : Type u} [TopologicalSpace G] [Group G] [IsTopologicalGroup G]
    (N : Subgroup G) [N.Normal] (g : G) (n : N) :
    quotientConjugationTopologicalAbelianizationMap (G := G) (N := N)
      (QuotientGroup.mk' N g) (TopologicalAbelianization.mk N n) =
        TopologicalAbelianization.mk N ((MulAut.conjNormal g) n)
ProCGroups.Abelian.quotientConjugationTopologicalAbelianizationMap_mk_eq_one_of_commutator_mem_closure

If every commutator correction lies in the closed commutator subgroup, the induced conjugation action on the topological abelianization is trivial.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
theorem quotientConjugationTopologicalAbelianizationMap_mk_eq_one_of_commutator_mem_closure
    {G : Type u} [TopologicalSpace G] [Group G] [IsTopologicalGroup G]
    (N : Subgroup G) [N.Normal] {x : G}
    (hx :
      ∀ n : N,
        (((MulAut.conjNormal x) n) * n⁻¹ : N) ∈ Subgroup.closedCommutator N) :
    quotientConjugationTopologicalAbelianizationMap (G := G) (N := N)
      (QuotientGroup.mk' N x) = 1
ProCGroups.Abelian.quotientConjugationTopologicalAbelianizationMap_mk_apply_mk_eq_iff

The conjugation action fixes a representative exactly when the correction term lies in the closed commutator subgroup.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
theorem quotientConjugationTopologicalAbelianizationMap_mk_apply_mk_eq_iff
    {G : Type u} [TopologicalSpace G] [Group G] [IsTopologicalGroup G]
    {N : Subgroup G} [N.Normal] {x : G} {n : N} :
    quotientConjugationTopologicalAbelianizationMap (G := G) (N := N)
        (QuotientGroup.mk' N x) (TopologicalAbelianization.mk N n) =
      TopologicalAbelianization.mk N n ↔
    (((MulAut.conjNormal x) n) * n⁻¹ : N) ∈ Subgroup.closedCommutator N
ProCGroups.Abelian.quotientConjugationTopologicalAbelianizationMap_mk_eq_one_iff

The induced conjugation action is trivial exactly when every correction term lies in the closed commutator subgroup.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
theorem quotientConjugationTopologicalAbelianizationMap_mk_eq_one_iff
    {G : Type u} [TopologicalSpace G] [Group G] [IsTopologicalGroup G]
    {N : Subgroup G} [N.Normal] {x : G} :
    quotientConjugationTopologicalAbelianizationMap (G := G) (N := N)
        (QuotientGroup.mk' N x) = 1 ↔
      ∀ n : N,
        (((MulAut.conjNormal x) n) * n⁻¹ : N) ∈ Subgroup.closedCommutator N
ProCGroups.Abelian.quotientConjugationTopologicalAbelianizationMap_mk_eq_one_of_mem_center

Central elements act trivially on the topological abelianization of a normal subgroup.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
theorem quotientConjugationTopologicalAbelianizationMap_mk_eq_one_of_mem_center
    {G : Type u} [TopologicalSpace G] [Group G] [IsTopologicalGroup G]
    (N : Subgroup G) [N.Normal] {x : G} (hx : x ∈ Subgroup.center G) :
    quotientConjugationTopologicalAbelianizationMap (G := G) (N := N)
      (QuotientGroup.mk' N x) = 1
ProCGroups.Abelian.quotientConjAbMap_apply_mk_of_commute

If a representative commutes with an element of N, then the induced action fixes its class in the topological abelianization.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
theorem quotientConjAbMap_apply_mk_of_commute
    {G : Type u} [TopologicalSpace G] [Group G] [IsTopologicalGroup G]
    (N : Subgroup G) [N.Normal] {g : G} {x : N}
    (hgx : g * (x : G) = (x : G) * g) :
    quotientConjugationTopologicalAbelianizationMap (G := G) (N := N)
      (QuotientGroup.mk' N g) (TopologicalAbelianization.mk N x) =
        TopologicalAbelianization.mk N x
ProCGroups.Abelian.subgroupImageInTopologicalAbelianization

The image of \(S\cap U\) in the topological abelianization of \(U\).

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
def subgroupImageInTopologicalAbelianization
    {Q : Type u} [TopologicalSpace Q] [Group Q] [IsTopologicalGroup Q]
    (S : Subgroup Q) (U : OpenNormalSubgroup Q) :
    Subgroup (TopologicalAbelianization ↥(U : Subgroup Q))
ProCGroups.Abelian.mem_subgroupImageInTopologicalAbelianization_iff

Membership in the subgroup image inside the topological abelianization is equivalent to the displayed coordinate condition.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
theorem mem_subgroupImageInTopologicalAbelianization_iff
    {Q : Type u} [TopologicalSpace Q] [Group Q] [IsTopologicalGroup Q]
    {S : Subgroup Q} {U : OpenNormalSubgroup Q}
    {y : TopologicalAbelianization ↥(U : Subgroup Q)} :
    y ∈ subgroupImageInTopologicalAbelianization (Q := Q) S U ↔
      ∃ x : ↥(U : Subgroup Q), (x : Q) ∈ S ∧ TopologicalAbelianization.mk _ x = y
ProCGroups.Abelian.subgroupImageInTopologicalAbelianization_mono_left

Enlarging the ambient subgroup \(S\) enlarges its image in the abelianization of \(U\).

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
theorem subgroupImageInTopologicalAbelianization_mono_left
    {Q : Type u} [TopologicalSpace Q] [Group Q] [IsTopologicalGroup Q]
    {S T : Subgroup Q} (hST : S ≤ T) (U : OpenNormalSubgroup Q) :
    subgroupImageInTopologicalAbelianization (Q := Q) S U ≤
      subgroupImageInTopologicalAbelianization (Q := Q) T U
ProCGroups.Abelian.topologicalAbelianizationMapOfOpenNormalSubgroupLe

An inclusion of open normal subgroups induces the corresponding map on topological abelianizations.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
def topologicalAbelianizationMapOfOpenNormalSubgroupLe
    {Q : Type u} [TopologicalSpace Q] [Group Q] [IsTopologicalGroup Q]
    {U V : OpenNormalSubgroup Q} (hUV : (U : Subgroup Q) ≤ (V : Subgroup Q)) :
    TopologicalAbelianization ↥(U : Subgroup Q) →ₜ*
      TopologicalAbelianization ↥(V : Subgroup Q)
ProCGroups.Abelian.topologicalAbelianizationMapOfOpenNormalSubgroupLe_apply_mk

The induced map on topological abelianizations sends a representative class to the class of its image.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
theorem topologicalAbelianizationMapOfOpenNormalSubgroupLe_apply_mk
    {Q : Type u} [TopologicalSpace Q] [Group Q] [IsTopologicalGroup Q]
    {U V : OpenNormalSubgroup Q} (hUV : (U : Subgroup Q) ≤ (V : Subgroup Q))
    (x : ↥(U : Subgroup Q)) :
    topologicalAbelianizationMapOfOpenNormalSubgroupLe (Q := Q) hUV
      (TopologicalAbelianization.mk ↥(U : Subgroup Q) x) =
        TopologicalAbelianization.mk ↥(V : Subgroup Q) ⟨x.1, hUV x.2⟩
ProCGroups.Abelian.subgroupImageInTopologicalAbelianization_map_le_of_openNormalSubgroup_le

Under an inclusion U \(\leq\) V, the image from U maps into the image from V.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
theorem subgroupImageInTopologicalAbelianization_map_le_of_openNormalSubgroup_le
    {Q : Type u} [TopologicalSpace Q] [Group Q] [IsTopologicalGroup Q]
    (S : Subgroup Q) {U V : OpenNormalSubgroup Q}
    (hUV : (U : Subgroup Q) ≤ (V : Subgroup Q)) :
    (subgroupImageInTopologicalAbelianization (Q := Q) S U).map
        (topologicalAbelianizationMapOfOpenNormalSubgroupLe (Q := Q) hUV).toMonoidHom ≤
      subgroupImageInTopologicalAbelianization (Q := Q) S V
ProCGroups.Abelian.subgroupImageInTopologicalAbelianization_le_comap_of_openNormalSubgroup_le

Comap form of subgroupImageInTopologicalAbelianization_map_le_of_openNormalSubgroup_le.

Source context 4 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
theorem subgroupImageInTopologicalAbelianization_le_comap_of_openNormalSubgroup_le
    {Q : Type u} [TopologicalSpace Q] [Group Q] [IsTopologicalGroup Q]
    (S : Subgroup Q) {U V : OpenNormalSubgroup Q}
    (hUV : (U : Subgroup Q) ≤ (V : Subgroup Q)) :
    subgroupImageInTopologicalAbelianization (Q := Q) S U ≤
      (subgroupImageInTopologicalAbelianization (Q := Q) S V).comap
        (topologicalAbelianizationMapOfOpenNormalSubgroupLe (Q := Q) hUV).toMonoidHom
ProCGroups.Abelian.OpenNormalAbelianizationImage.FiniteAbstractIndex

The image of \(S\) has finite abstract index in the topological abelianization of every open normal supergroup of \(K\).

Source context 5 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
namespace OpenNormalAbelianizationImage
def FiniteAbstractIndex
    {Q : Type u} [TopologicalSpace Q] [Group Q] [IsTopologicalGroup Q]
    (S K : Subgroup Q) : Prop
ProCGroups.Abelian.OpenNormalAbelianizationImage.closedSubgroupImageInTopologicalAbelianization

The topological closure of the image of \(S \cap U\) in the topological abelianization of \(U\).

Source context 5 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
namespace OpenNormalAbelianizationImage
def closedSubgroupImageInTopologicalAbelianization
    {Q : Type u} [TopologicalSpace Q] [Group Q] [IsTopologicalGroup Q]
    (S : Subgroup Q) (U : OpenNormalSubgroup Q) :
    Subgroup (TopologicalAbelianization ↥(U : Subgroup Q))
ProCGroups.Abelian.OpenNormalAbelianizationImage.closedSubgroupImageInTopologicalAbelianization_eq_topologicalClosure

The image of a closed subgroup in the topological abelianization is the corresponding topological closure.

Source context 5 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
namespace OpenNormalAbelianizationImage
theorem closedSubgroupImageInTopologicalAbelianization_eq_topologicalClosure
    {Q : Type u} [TopologicalSpace Q] [Group Q] [IsTopologicalGroup Q]
    (S : Subgroup Q) (U : OpenNormalSubgroup Q) :
    closedSubgroupImageInTopologicalAbelianization (Q := Q) S U =
      (subgroupImageInTopologicalAbelianization (Q := Q) S U).topologicalClosure
ProCGroups.Abelian.OpenNormalAbelianizationImage.OpenClosure

The closed image of \(S\) is open in every open normal supergroup of \(K\).

Source context 5 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
namespace OpenNormalAbelianizationImage
def OpenClosure
    {Q : Type u} [TopologicalSpace Q] [Group Q] [IsTopologicalGroup Q]
    (S K : Subgroup Q) : Prop
ProCGroups.Abelian.OpenNormalAbelianizationImage.FiniteTopologicalIndex

The image of \(S\) is closed and has finite quotient in every open normal supergroup of \(K\).

Source context 5 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
namespace OpenNormalAbelianizationImage
def FiniteTopologicalIndex
    {Q : Type u} [TopologicalSpace Q] [Group Q] [IsTopologicalGroup Q]
    (S K : Subgroup Q) : Prop
ProCGroups.Abelian.OpenNormalAbelianizationImage.finiteAbstractIndex_of_finiteTopologicalIndex

Finite topological index includes finite abstract index as its quotient-size component.

Source context 5 commands

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

open CategoryTheory
open scoped Topology commutatorElement
namespace ProCGroups.Abelian
universe u
namespace OpenNormalAbelianizationImage
theorem finiteAbstractIndex_of_finiteTopologicalIndex
    {Q : Type u} [TopologicalSpace Q] [Group Q] [IsTopologicalGroup Q]
    {S K : Subgroup Q}
    (h : FiniteTopologicalIndex (Q := Q) S K) :
    FiniteAbstractIndex (Q := Q) S K