Module

Quotients.lean

Nyll.ProCGroups.InverseSystems.Quotients
25 declarations indexed from sourceView source ↗

Quotients of group-valued inverse systems

A compatible family of closed normal stage subgroups induces an inverse system of quotient groups and a canonical map from the original limit. This module identifies its kernel and, under compact Hausdorff directed-surjective hypotheses, proves that quotienting the inverse limit agrees topologically and algebraically with taking the inverse limit of the stage quotients.

Declarations

ProCGroups.InverseSystems.InverseSystem.transitionHom

The transition map of a group-valued inverse system is bundled as a homomorphism.

Source context 9 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
def transitionHom {i j : I} (hij : i ≤ j) : S.X j →* S.X i where
  toFun := S.map hij
  map_one' := IsGroupSystem.map_one (S := S) hij
  map_mul' := IsGroupSystem.map_mul (S := S) hij
ProCGroups.InverseSystems.InverseSystem.transitionHom_apply

The bundled transition homomorphism evaluates to the underlying transition map of S.

Source context 10 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
omit [∀ i, IsTopologicalGroup (S.X i)] in
theorem transitionHom_apply {i j : I} (hij : i ≤ j) (x : S.X j) :
    S.transitionHom hij x = S.map hij x
ProCGroups.InverseSystems.InverseSystem.continuous_transitionHom

The bundled transition homomorphism of an inverse system is continuous.

Source context 10 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
omit [∀ i, IsTopologicalGroup (S.X i)] in
theorem continuous_transitionHom {i j : I} (hij : i ≤ j) :
    Continuous (S.transitionHom hij)
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups

Closed normal subgroups of the stages, compatible with transition maps.

Source context 9 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
structure CompatibleClosedNormalSubgroups where
  /-- The subgroup by which the stage at index `i` will be quotiented. -/
  N : ∀ i, Subgroup (S.X i)
  /-- Every selected stage subgroup is normal, so its group quotient is defined. -/
  normal : ∀ i, (N i).Normal
  /-- Every selected stage subgroup is closed in the topology of that stage. -/
  closed : ∀ i, IsClosed ((N i : Subgroup (S.X i)) : Set (S.X i))
  /--
  A transition homomorphism sends the subgroup at the later stage into the subgroup at the
  earlier stage, and hence descends to the corresponding quotients.
  -/
  map_le :
    ∀ {i j : I} (hij : i ≤ j), N j ≤ (N i).comap (S.transitionHom hij)
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.instNormalN

The chosen subgroup is normal.

Source context 12 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
instance instNormalN (i : I) : (Q.N i).Normal
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.quotientMap

The transition map induced on stage quotients.

Source context 12 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
def quotientMap {i j : I} (hij : i ≤ j) :
    S.X j ⧸ Q.N j →* S.X i ⧸ Q.N i
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.quotientMap_mk

The induced quotient transition sends the class of x modulo N j to the class of its transition image modulo N i.

Source context 13 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
omit [∀ i, IsTopologicalGroup (S.X i)] in
theorem quotientMap_mk {i j : I} (hij : i ≤ j) (x : S.X j) :
    Q.quotientMap hij (QuotientGroup.mk' (Q.N j) x) =
      QuotientGroup.mk' (Q.N i) (S.map hij x)
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.continuous_quotientMap

The induced map on stage quotients is continuous.

Source context 13 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
omit [∀ i, IsTopologicalGroup (S.X i)] in
theorem continuous_quotientMap {i j : I} (hij : i ≤ j) :
    Continuous (Q.quotientMap hij)
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.quotientInverseSystem

The inverse system obtained by quotienting each stage by a compatible closed normal subgroup.

Source context 12 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
def quotientInverseSystem : InverseSystem (I := I) where
  X := fun i => S.X i ⧸ Q.N i
  topologicalSpace := fun i => inferInstance
  map := fun {_i _j} hij => Q.quotientMap hij
  continuous_map := fun {_i _j} hij => Q.continuous_quotientMap hij
  map_id := by
    intro i
    funext x
    refine Quotient.inductionOn' x ?_
    intro a
    change QuotientGroup.mk' (Q.N i) (S.map (le_rfl : i ≤ i) a) =
      QuotientGroup.mk' (Q.N i) a
    exact congrArg (QuotientGroup.mk' (Q.N i)) (S.map_id_apply i a)
  map_comp := by
    intro i j k hij hjk
    funext x
    refine Quotient.inductionOn' x ?_
    intro a
    change QuotientGroup.mk' (Q.N i) (S.map hij (S.map hjk a)) =
      QuotientGroup.mk' (Q.N i) (S.map (hij.trans hjk) a)
    exact congrArg (QuotientGroup.mk' (Q.N i)) (S.map_comp_apply hij hjk a)
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.quotientInverseSystem_stageGroup

The quotient inverse system has the expected finite-stage quotient groups.

Source context 12 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
instance quotientInverseSystem_stageGroup (i : I) :
    Group (Q.quotientInverseSystem.X i)
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.quotientInverseSystem_stageTopologicalGroup

Each stage quotient carries the quotient topology and its induced topological-group structure.

Source context 12 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
instance quotientInverseSystem_stageTopologicalGroup (i : I) :
    IsTopologicalGroup (Q.quotientInverseSystem.X i)
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.quotientInverseSystem_stageT2Space

Fix the closed-subgroup boundary before using the quotient's canonical topology.

Source context 12 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
theorem quotientInverseSystem_stageT2Space (i : I) :
    T2Space (Q.quotientInverseSystem.X i)
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.quotientInverseSystem_isGroupSystem

The induced quotient transitions preserve the group operations at every stage.

Source context 12 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
instance quotientInverseSystem_isGroupSystem :
    IsGroupSystem Q.quotientInverseSystem where
  map_one := by
    intro i j hij
    exact (Q.quotientMap hij).map_one
  map_mul := by
    intro i j hij x y
    exact (Q.quotientMap hij).map_mul x y
  map_inv := by
    intro i j hij x
    exact (Q.quotientMap hij).map_inv x
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.toQuotientInverseSystem

The stagewise quotient maps form a morphism from the original system to the quotient system.

Source context 12 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
def toQuotientInverseSystem : S.Morphism Q.quotientInverseSystem where
  map := fun i => QuotientGroup.mk' (Q.N i)
  continuous_map := fun _ => QuotientGroup.continuous_mk
  comm := by
    intro i j hij
    funext x
    exact (Q.quotientMap_mk hij x).symm
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.inverseLimitKernel

Kernel of the map from the inverse limit to the inverse limit of stage quotients.

Source context 12 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
def inverseLimitKernel : Subgroup S.inverseLimit
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.inverseLimitKernel_normal

The intersection of the pullbacks of the normal subgroups N i along all limit projections is a normal subgroup of the inverse limit.

Source context 12 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
instance inverseLimitKernel_normal : Q.inverseLimitKernel.Normal where
  conj_mem x hx g := by
    rw [inverseLimitKernel] at hx ⊢
    simp only [projectionHom, Subgroup.mem_iInf, Subgroup.mem_comap, MonoidHom.coe_mk,
        OneHom.coe_mk,
  projection_apply] at hx ⊢
    intro i
    change
      S.projection i g * S.projection i x * (S.projection i g)⁻¹ ∈ Q.N i
    exact (Q.normal i).conj_mem (S.projection i x) (hx i) (S.projection i g)
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.mem_inverseLimitKernel_iff

Membership in the named kernel is equivalent to vanishing under its defining quotient or augmentation map.

Source context 14 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
variable {Q}
omit [∀ i, IsTopologicalGroup (S.X i)] in
theorem mem_inverseLimitKernel_iff {x : S.inverseLimit} :
    x ∈ Q.inverseLimitKernel ↔ ∀ i, S.projection i x ∈ Q.N i
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.quotientInverseLimitComparison

The canonical comparison from the quotient of the inverse limit to the inverse limit of the stage quotients.

Source context 14 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
variable {Q}
variable (Q)
def quotientInverseLimitComparison :
    S.inverseLimit ⧸ Q.inverseLimitKernel →ₜ* Q.quotientInverseSystem.inverseLimit
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.quotientInverseLimitComparison_mk

The quotient inverse-limit comparison sends a representative to its compatible family of quotient coordinates.

Source context 15 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
variable {Q}
variable (Q)
omit [∀ i, IsTopologicalGroup (S.X i)] in
theorem quotientInverseLimitComparison_mk (x : S.inverseLimit) :
    Q.quotientInverseLimitComparison (QuotientGroup.mk' Q.inverseLimitKernel x) =
      S.limMap Q.toQuotientInverseSystem x
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.projection_quotientInverseLimitComparison_mk

Projecting the quotient inverse-limit comparison gives the corresponding stage quotient representative.

Source context 15 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
variable {Q}
variable (Q)
omit [∀ i, IsTopologicalGroup (S.X i)] in
theorem projection_quotientInverseLimitComparison_mk
    (i : I) (x : S.inverseLimit) :
    Q.quotientInverseSystem.projection i
        (Q.quotientInverseLimitComparison (QuotientGroup.mk' Q.inverseLimitKernel x)) =
      QuotientGroup.mk' (Q.N i) (S.projection i x)
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.ker_quotientInverseLimitComparison

The comparison map has trivial kernel.

Source context 15 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
variable {Q}
variable (Q)
omit [∀ i, IsTopologicalGroup (S.X i)] in
theorem ker_quotientInverseLimitComparison :
    Q.quotientInverseLimitComparison.toMonoidHom.ker = ⊥
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.injective_quotientInverseLimitComparison

The comparison map is injective: its kernel is exactly the subgroup used in the quotient.

Source context 15 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
variable {Q}
variable (Q)
omit [∀ i, IsTopologicalGroup (S.X i)] in
theorem injective_quotientInverseLimitComparison :
    Function.Injective Q.quotientInverseLimitComparison
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.surjective_quotientInverseLimitComparison

The comparison map is surjective for compact Hausdorff systems over a directed index.

Source context 14 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
variable {Q}
variable (Q)
theorem surjective_quotientInverseLimitComparison
    [∀ i, CompactSpace (S.X i)] [∀ i, T2Space (S.X i)]
    (hdir : Directed (· ≤ ·) (id : I → I)) :
    Function.Surjective Q.quotientInverseLimitComparison
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.bijective_quotientInverseLimitComparison

The comparison map is bijective for compact Hausdorff systems over a directed index.

Source context 14 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
variable {Q}
variable (Q)
theorem bijective_quotientInverseLimitComparison
    [∀ i, CompactSpace (S.X i)] [∀ i, T2Space (S.X i)]
    (hdir : Directed (· ≤ ·) (id : I → I)) :
    Function.Bijective Q.quotientInverseLimitComparison
ProCGroups.InverseSystems.InverseSystem.CompatibleClosedNormalSubgroups.quotientInverseLimitContinuousMulEquiv

The quotient of an inverse limit by a compatible closed normal family is the inverse limit of the stage quotients.

Source context 14 commands

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

open scoped Topology
namespace ProCGroups
namespace InverseSystems
universe u v
namespace InverseSystem
variable {I : Type u} [Preorder I]
variable (S : InverseSystem.{u, v} (I := I))
variable [∀ i, Group (S.X i)] [IsGroupSystem S]
variable [∀ i, IsTopologicalGroup (S.X i)]
namespace CompatibleClosedNormalSubgroups
variable {S}
variable (Q : S.CompatibleClosedNormalSubgroups)
variable {Q}
variable (Q)
def quotientInverseLimitContinuousMulEquiv
    [∀ i, CompactSpace (S.X i)] [∀ i, T2Space (S.X i)]
    (hdir : Directed (· ≤ ·) (id : I → I)) :
    S.inverseLimit ⧸ Q.inverseLimitKernel ≃ₜ* Q.quotientInverseSystem.inverseLimit