Module

QuotientMaps.lean

Nyll.ProCGroups.Topologies.QuotientMaps
20 declarations indexed from sourceView source ↗

Continuous maps between group quotients

This file develops algebraic and continuous equivalences induced by surjective homomorphisms, lifts and maps between quotient groups, congruences between quotients, and restrictions to preimages of subgroups.

Imports2
Imported by27

Declarations

ProCGroups.QuotientGroup.comap_eq_of_map_eq_of_ker_le

The comap of a quotient subgroup is determined by the representative-level map when the kernel condition holds.

Source context 6 commands

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

open scoped Topology
universe u v
namespace ProCGroups
namespace QuotientGroup
section Algebra
variable {G : Type u} {H : Type v} [Group G] [Group H]
theorem comap_eq_of_map_eq_of_ker_le
    (f : G →* H) {N : Subgroup G} {M : Subgroup H}
    (hmap : N.map f = M) (hker : f.ker ≤ N) :
    M.comap f = N
ProCGroups.QuotientGroup.map_ker_eq_bot_of_map_eq_of_ker_le

Under the kernel condition, the induced quotient map has trivial kernel for the corresponding representative-level map.

Source context 6 commands

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

open scoped Topology
universe u v
namespace ProCGroups
namespace QuotientGroup
section Algebra
variable {G : Type u} {H : Type v} [Group G] [Group H]
theorem map_ker_eq_bot_of_map_eq_of_ker_le
    (f : G →* H) {N : Subgroup G} {M : Subgroup H} [N.Normal] [M.Normal]
    (hNM : N ≤ M.comap f) (hmap : N.map f = M) (hker : f.ker ≤ N) :
    (QuotientGroup.map (N := N) (M := M) (f := f) hNM).ker = ⊥
ProCGroups.QuotientGroup.mapMulEquivOfSurjective

A surjective homomorphism induces an isomorphism on quotients whenever it maps the source normal subgroup onto the target normal subgroup and its kernel is contained in the source normal subgroup.

Source context 6 commands

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

open scoped Topology
universe u v
namespace ProCGroups
namespace QuotientGroup
section Algebra
variable {G : Type u} {H : Type v} [Group G] [Group H]
def mapMulEquivOfSurjective
    (f : G →* H) {N : Subgroup G} {M : Subgroup H} [N.Normal] [M.Normal]
    (hf : Function.Surjective f) (hmap : N.map f = M) (hker : f.ker ≤ N) :
    G ⧸ N ≃* H ⧸ M
ProCGroups.QuotientGroup.mapMulEquivOfSurjective_apply_mk

A surjective homomorphism induces the expected multiplicative equivalence on quotient groups.

Source context 6 commands

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

open scoped Topology
universe u v
namespace ProCGroups
namespace QuotientGroup
section Algebra
variable {G : Type u} {H : Type v} [Group G] [Group H]
theorem mapMulEquivOfSurjective_apply_mk
    (f : G →* H) {N : Subgroup G} {M : Subgroup H} [N.Normal] [M.Normal]
    (hf : Function.Surjective f) (hmap : N.map f = M) (hker : f.ker ≤ N) (g : G) :
    mapMulEquivOfSurjective (G := G) (H := H) f hf hmap hker (QuotientGroup.mk' N g) =
      QuotientGroup.mk' M (f g)
ProCGroups.QuotientGroup.liftₜ

The lifted continuous quotient map is induced by the quotient universal property.

Source context 8 commands

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

open scoped Topology
universe u v
namespace ProCGroups
namespace QuotientGroup
section Topology
variable {G : Type u} {H : Type v}
variable [Group G] [TopologicalSpace G]
variable [Group H] [TopologicalSpace H]
def liftₜ
    (N : Subgroup G) [N.Normal] (f : G →ₜ* H)
    (hN : N ≤ f.toMonoidHom.ker) :
    G ⧸ N →ₜ* H
ProCGroups.QuotientGroup.mapContinuousMonoidHom

The continuous homomorphism induced on quotients by a continuous homomorphism.

Source context 8 commands

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

open scoped Topology
universe u v
namespace ProCGroups
namespace QuotientGroup
section Topology
variable {G : Type u} {H : Type v}
variable [Group G] [TopologicalSpace G]
variable [Group H] [TopologicalSpace H]
def mapContinuousMonoidHom
    (f : G →ₜ* H) {N : Subgroup G} {M : Subgroup H} [N.Normal] [M.Normal]
    (hNM : N ≤ M.comap f.toMonoidHom) :
    G ⧸ N →ₜ* H ⧸ M
ProCGroups.QuotientGroup.mapₜ

Continuous version of the quotient-group map.

Source context 8 commands

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

open scoped Topology
universe u v
namespace ProCGroups
namespace QuotientGroup
section Topology
variable {G : Type u} {H : Type v}
variable [Group G] [TopologicalSpace G]
variable [Group H] [TopologicalSpace H]
def mapₜ
    (N : Subgroup G) (M : Subgroup H) [N.Normal] [M.Normal]
    (f : G →ₜ* H) (hNM : N ≤ M.comap f.toMonoidHom) :
    G ⧸ N →ₜ* H ⧸ M
ProCGroups.QuotientGroup.congrₜ

Continuous equivalence between quotients induced by a continuous multiplicative equivalence.

Source context 8 commands

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

open scoped Topology
universe u v
namespace ProCGroups
namespace QuotientGroup
section Topology
variable {G : Type u} {H : Type v}
variable [Group G] [TopologicalSpace G]
variable [Group H] [TopologicalSpace H]
def congrₜ
    (N : Subgroup G) (M : Subgroup H) [N.Normal] [M.Normal]
    (e : G ≃ₜ* H) (h : N.map e.toMulEquiv.toMonoidHom = M) :
    G ⧸ N ≃ₜ* H ⧸ M
ProCGroups.QuotientGroup.mapContinuousMulEquivOfSurjective

Continuous version of the quotient-group multiplicative equivalence induced by a surjective map. The inverse is continuous by compact-to-Hausdorff automatic continuity, so the result is a topological-group isomorphism when the source quotient is compact and the target quotient is Hausdorff.

Source context 8 commands

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

open scoped Topology
universe u v
namespace ProCGroups
namespace QuotientGroup
section Topology
variable {G : Type u} {H : Type v}
variable [Group G] [TopologicalSpace G]
variable [Group H] [TopologicalSpace H]
def mapContinuousMulEquivOfSurjective
    (f : G →ₜ* H) {N : Subgroup G} {M : Subgroup H} [N.Normal] [M.Normal]
    [CompactSpace (G ⧸ N)] [T2Space (H ⧸ M)]
    (hf : Function.Surjective f) (hmap : N.map f.toMonoidHom = M)
    (hker : f.toMonoidHom.ker ≤ N) :
    G ⧸ N ≃ₜ* H ⧸ M
ProCGroups.QuotientGroup.liftₜ_apply_mk

The lifted continuous quotient map evaluates on quotient classes by applying the underlying map to representatives.

Source context 8 commands

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

open scoped Topology
universe u v
namespace ProCGroups
namespace QuotientGroup
section Topology
variable {G : Type u} {H : Type v}
variable [Group G] [TopologicalSpace G]
variable [Group H] [TopologicalSpace H]
theorem liftₜ_apply_mk
    (N : Subgroup G) [N.Normal] (f : G →ₜ* H)
    (hN : N ≤ f.toMonoidHom.ker) (g : G) :
    liftₜ (G := G) (H := H) N f hN (QuotientGroup.mk' N g) = f g
ProCGroups.QuotientGroup.liftₜ_toMonoidHom

The monoid homomorphism underlying liftₜ is the usual quotient lift.

Source context 8 commands

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

open scoped Topology
universe u v
namespace ProCGroups
namespace QuotientGroup
section Topology
variable {G : Type u} {H : Type v}
variable [Group G] [TopologicalSpace G]
variable [Group H] [TopologicalSpace H]
theorem liftₜ_toMonoidHom
    (N : Subgroup G) [N.Normal] (f : G →ₜ* H)
    (hN : N ≤ f.toMonoidHom.ker) :
    (liftₜ (G := G) (H := H) N f hN).toMonoidHom =
      QuotientGroup.lift N f.toMonoidHom hN
ProCGroups.QuotientGroup.mapContinuousMonoidHom_apply_mk

The induced continuous monoid homomorphism sends a quotient class to the class of its image.

Source context 8 commands

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

open scoped Topology
universe u v
namespace ProCGroups
namespace QuotientGroup
section Topology
variable {G : Type u} {H : Type v}
variable [Group G] [TopologicalSpace G]
variable [Group H] [TopologicalSpace H]
theorem mapContinuousMonoidHom_apply_mk
    (f : G →ₜ* H) {N : Subgroup G} {M : Subgroup H} [N.Normal] [M.Normal]
    (hNM : N ≤ M.comap f.toMonoidHom) (g : G) :
    mapContinuousMonoidHom (G := G) (H := H) f (N := N) (M := M) hNM
        (QuotientGroup.mk' N g) =
      QuotientGroup.mk' M (f g)
ProCGroups.QuotientGroup.mapₜ_apply_mk

The continuous quotient map sends the class of \(g\) to the class of \(f(g)\).

Source context 8 commands

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

open scoped Topology
universe u v
namespace ProCGroups
namespace QuotientGroup
section Topology
variable {G : Type u} {H : Type v}
variable [Group G] [TopologicalSpace G]
variable [Group H] [TopologicalSpace H]
theorem mapₜ_apply_mk
    (N : Subgroup G) (M : Subgroup H) [N.Normal] [M.Normal]
    (f : G →ₜ* H) (hNM : N ≤ M.comap f.toMonoidHom) (g : G) :
    mapₜ (G := G) (H := H) N M f hNM (QuotientGroup.mk' N g) =
      QuotientGroup.mk' M (f g)
ProCGroups.QuotientGroup.mapₜ_toMonoidHom

The monoid homomorphism underlying mapₜ is the usual map between quotient groups.

Source context 8 commands

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

open scoped Topology
universe u v
namespace ProCGroups
namespace QuotientGroup
section Topology
variable {G : Type u} {H : Type v}
variable [Group G] [TopologicalSpace G]
variable [Group H] [TopologicalSpace H]
theorem mapₜ_toMonoidHom
    (N : Subgroup G) (M : Subgroup H) [N.Normal] [M.Normal]
    (f : G →ₜ* H) (hNM : N ≤ M.comap f.toMonoidHom) :
    (mapₜ (G := G) (H := H) N M f hNM).toMonoidHom =
      QuotientGroup.map (N := N) (M := M) (f := f.toMonoidHom) hNM
ProCGroups.QuotientGroup.congrₜ_apply_mk

The continuous quotient congruence map evaluates on quotient classes by applying the underlying map to representatives.

Source context 8 commands

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

open scoped Topology
universe u v
namespace ProCGroups
namespace QuotientGroup
section Topology
variable {G : Type u} {H : Type v}
variable [Group G] [TopologicalSpace G]
variable [Group H] [TopologicalSpace H]
theorem congrₜ_apply_mk
    (N : Subgroup G) (M : Subgroup H) [N.Normal] [M.Normal]
    (e : G ≃ₜ* H) (h : N.map e.toMulEquiv.toMonoidHom = M) (g : G) :
    congrₜ (G := G) (H := H) N M e h (QuotientGroup.mk' N g) =
      QuotientGroup.mk' M (e g)
ProCGroups.QuotientGroup.mapContinuousMulEquivOfSurjective_apply_mk

The induced continuous multiplicative equivalence sends a quotient class to the class of its image.

Source context 8 commands

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

open scoped Topology
universe u v
namespace ProCGroups
namespace QuotientGroup
section Topology
variable {G : Type u} {H : Type v}
variable [Group G] [TopologicalSpace G]
variable [Group H] [TopologicalSpace H]
theorem mapContinuousMulEquivOfSurjective_apply_mk
    (f : G →ₜ* H) {N : Subgroup G} {M : Subgroup H} [N.Normal] [M.Normal]
    [CompactSpace (G ⧸ N)] [T2Space (H ⧸ M)]
    (hf : Function.Surjective f) (hmap : N.map f.toMonoidHom = M)
    (hker : f.toMonoidHom.ker ≤ N) (g : G) :
    mapContinuousMulEquivOfSurjective (G := G) (H := H) f hf hmap hker
        (QuotientGroup.mk' N g) =
      QuotientGroup.mk' M (f g)
ProCGroups.ContinuousMonoidHom.restrictPreimage

A continuous homomorphism restricts to the preimage of a subgroup of the target.

Source context 8 commands

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

open scoped Topology
universe u v
namespace ProCGroups
namespace ContinuousMonoidHom
section RestrictPreimage
variable {G : Type u} {Q : Type v}
variable [TopologicalSpace G] [Group G] [IsTopologicalGroup G]
variable [TopologicalSpace Q] [Group Q] [IsTopologicalGroup Q]
def restrictPreimage (f : G →ₜ* Q) (H : Subgroup Q) :
    (H.comap f.toMonoidHom) →ₜ* H
ProCGroups.ContinuousMonoidHom.restrictPreimage_surjective

The restriction to a subgroup preimage is surjective if the original map is surjective.

Source context 9 commands

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

open scoped Topology
universe u v
namespace ProCGroups
namespace ContinuousMonoidHom
section RestrictPreimage
variable {G : Type u} {Q : Type v}
variable [TopologicalSpace G] [Group G] [IsTopologicalGroup G]
variable [TopologicalSpace Q] [Group Q] [IsTopologicalGroup Q]
omit [IsTopologicalGroup G] [IsTopologicalGroup Q] in
theorem restrictPreimage_surjective (f : G →ₜ* Q) (hf : Function.Surjective f)
    (H : Subgroup Q) :
    Function.Surjective (restrictPreimage f H)
ProCGroups.ContinuousMonoidHom.restrictPreimage_eq_one_iff

The kernel of the restriction to a subgroup preimage is detected by the ambient map.

Source context 9 commands

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

open scoped Topology
universe u v
namespace ProCGroups
namespace ContinuousMonoidHom
section RestrictPreimage
variable {G : Type u} {Q : Type v}
variable [TopologicalSpace G] [Group G] [IsTopologicalGroup G]
variable [TopologicalSpace Q] [Group Q] [IsTopologicalGroup Q]
omit [IsTopologicalGroup G] [IsTopologicalGroup Q] in
theorem restrictPreimage_eq_one_iff {f : G →ₜ* Q} {H : Subgroup Q}
    {x : H.comap f.toMonoidHom} :
    restrictPreimage f H x = 1 ↔ f x.1 = 1
ProCGroups.ContinuousMonoidHom.preimageSubgroupQuotientMulEquivOfSurjective

If the restricted map sends \(N\) onto \(M\) and its kernel is contained in \(N\), then the induced quotient map is an isomorphism.

Source context 8 commands

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

open scoped Topology
universe u v
namespace ProCGroups
namespace ContinuousMonoidHom
section RestrictPreimage
variable {G : Type u} {Q : Type v}
variable [TopologicalSpace G] [Group G] [IsTopologicalGroup G]
variable [TopologicalSpace Q] [Group Q] [IsTopologicalGroup Q]
def preimageSubgroupQuotientMulEquivOfSurjective
    (f : G →ₜ* Q) (hf : Function.Surjective f) (H : Subgroup Q)
    {N : Subgroup (H.comap f.toMonoidHom)} {M : Subgroup H} [N.Normal] [M.Normal]
    (hmap : N.map (restrictPreimage f H).toMonoidHom = M)
    (hker : (restrictPreimage f H).toMonoidHom.ker ≤ N) :
    (H.comap f.toMonoidHom) ⧸ N ≃* H ⧸ M