Module

UniversalProperty.lean

Nyll.ProCGroups.FreeProducts.UniversalProperty
18 declarations indexed from sourceView source ↗

Pro C Groups / Free Products / Universal Property

This module defines the binary free pro-C universal property and its canonical comparison maps and equivalences.

Declarations

ProCGroups.FreeProducts.IsFreeProCProduct

Binary free pro-\(C\) products via the strengthened universal property used elsewhere in the project: every pair of continuous homomorphisms into a pro-\(C\) target extends uniquely.

Source context 8 commands

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

namespace ProCGroups.FreeProducts
universe u
section FreeProCProducts
variable {C : ProCGroups.FiniteGroupClass}
variable {G₁ : Type u} {G₂ : Type u} {F : Type u}
variable [Group G₁] [TopologicalSpace G₁]
variable [Group G₂] [TopologicalSpace G₂]
variable [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
structure IsFreeProCProduct
    [CompactSpace F] [T2Space F] [TotallyDisconnectedSpace F]
    (ι₁ : G₁ →ₜ* F) (ι₂ : G₂ →ₜ* F) : Prop where
  /--
  Open normal subgroups with quotients in `C` form a neighborhood basis at one in the proposed
  free product.
  -/
  hasOpenNormalBasisInClass : ProCGroups.ProC.HasOpenNormalBasisInClass C F
  /--
  Any pair of continuous homomorphisms from the two factors into a pro-`C` target extends to a
  unique continuous homomorphism from `F`, with the two prescribed composites.
  -/
  existsUnique_lift :
    ∀ {K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
      [CompactSpace K] [T2Space K] [TotallyDisconnectedSpace K],
    ProCGroups.ProC.HasOpenNormalBasisInClass C (K) →
      ∀ (φ₁ : G₁ →ₜ* K) (φ₂ : G₂ →ₜ* K),
        ∃! φ : F →ₜ* K, φ.comp ι₁ = φ₁ ∧ φ.comp ι₂ = φ₂
ProCGroups.FreeProducts.IsFreeProCProduct.lift

The universal property selects a descent morphism from a binary free product object.

Source context 11 commands

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

namespace ProCGroups.FreeProducts
universe u
section FreeProCProducts
variable {C : ProCGroups.FiniteGroupClass}
variable {G₁ : Type u} {G₂ : Type u} {F : Type u}
variable [Group G₁] [TopologicalSpace G₁]
variable [Group G₂] [TopologicalSpace G₂]
variable [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
namespace IsFreeProCProduct
variable [CompactSpace F] [T2Space F] [TotallyDisconnectedSpace F]
variable {ι₁ : G₁ →ₜ* F} {ι₂ : G₂ →ₜ* F}
def lift (hF : IsFreeProCProduct (C := C) ι₁ ι₂)
    {K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
    [CompactSpace K] [T2Space K] [TotallyDisconnectedSpace K]
    (hK : ProCGroups.ProC.HasOpenNormalBasisInClass C (K))
    (φ₁ : G₁ →ₜ* K) (φ₂ : G₂ →ₜ* K) : F →ₜ* K
ProCGroups.FreeProducts.IsFreeProCProduct.lift_spec

The chosen free-product descent morphism has the prescribed composites.

Source context 12 commands

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

namespace ProCGroups.FreeProducts
universe u
section FreeProCProducts
variable {C : ProCGroups.FiniteGroupClass}
variable {G₁ : Type u} {G₂ : Type u} {F : Type u}
variable [Group G₁] [TopologicalSpace G₁]
variable [Group G₂] [TopologicalSpace G₂]
variable [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
namespace IsFreeProCProduct
variable [CompactSpace F] [T2Space F] [TotallyDisconnectedSpace F]
variable {ι₁ : G₁ →ₜ* F} {ι₂ : G₂ →ₜ* F}
omit [IsTopologicalGroup F] in
theorem lift_spec (hF : IsFreeProCProduct (C := C) ι₁ ι₂)
    {K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
    [CompactSpace K] [T2Space K] [TotallyDisconnectedSpace K]
    (hK : ProCGroups.ProC.HasOpenNormalBasisInClass C (K))
    (φ₁ : G₁ →ₜ* K) (φ₂ : G₂ →ₜ* K) :
    (hF.lift hK φ₁ φ₂).comp ι₁ = φ₁ ∧ (hF.lift hK φ₁ φ₂).comp ι₂ = φ₂
ProCGroups.FreeProducts.IsFreeProCProduct.lift_left

The left composite of the chosen free-product descent morphism is the prescribed left leg.

Source context 12 commands

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

namespace ProCGroups.FreeProducts
universe u
section FreeProCProducts
variable {C : ProCGroups.FiniteGroupClass}
variable {G₁ : Type u} {G₂ : Type u} {F : Type u}
variable [Group G₁] [TopologicalSpace G₁]
variable [Group G₂] [TopologicalSpace G₂]
variable [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
namespace IsFreeProCProduct
variable [CompactSpace F] [T2Space F] [TotallyDisconnectedSpace F]
variable {ι₁ : G₁ →ₜ* F} {ι₂ : G₂ →ₜ* F}
omit [IsTopologicalGroup F] in
theorem lift_left (hF : IsFreeProCProduct (C := C) ι₁ ι₂)
    {K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
    [CompactSpace K] [T2Space K] [TotallyDisconnectedSpace K]
    (hK : ProCGroups.ProC.HasOpenNormalBasisInClass C (K))
    (φ₁ : G₁ →ₜ* K) (φ₂ : G₂ →ₜ* K) :
    (hF.lift hK φ₁ φ₂).comp ι₁ = φ₁
ProCGroups.FreeProducts.IsFreeProCProduct.lift_right

The right composite of the chosen free-product descent morphism is the prescribed right leg.

Source context 12 commands

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

namespace ProCGroups.FreeProducts
universe u
section FreeProCProducts
variable {C : ProCGroups.FiniteGroupClass}
variable {G₁ : Type u} {G₂ : Type u} {F : Type u}
variable [Group G₁] [TopologicalSpace G₁]
variable [Group G₂] [TopologicalSpace G₂]
variable [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
namespace IsFreeProCProduct
variable [CompactSpace F] [T2Space F] [TotallyDisconnectedSpace F]
variable {ι₁ : G₁ →ₜ* F} {ι₂ : G₂ →ₜ* F}
omit [IsTopologicalGroup F] in
theorem lift_right (hF : IsFreeProCProduct (C := C) ι₁ ι₂)
    {K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
    [CompactSpace K] [T2Space K] [TotallyDisconnectedSpace K]
    (hK : ProCGroups.ProC.HasOpenNormalBasisInClass C (K))
    (φ₁ : G₁ →ₜ* K) (φ₂ : G₂ →ₜ* K) :
    (hF.lift hK φ₁ φ₂).comp ι₂ = φ₂
ProCGroups.FreeProducts.IsFreeProCProduct.lift_unique

Uniqueness of the chosen free-product descent morphism.

Source context 12 commands

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

namespace ProCGroups.FreeProducts
universe u
section FreeProCProducts
variable {C : ProCGroups.FiniteGroupClass}
variable {G₁ : Type u} {G₂ : Type u} {F : Type u}
variable [Group G₁] [TopologicalSpace G₁]
variable [Group G₂] [TopologicalSpace G₂]
variable [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
namespace IsFreeProCProduct
variable [CompactSpace F] [T2Space F] [TotallyDisconnectedSpace F]
variable {ι₁ : G₁ →ₜ* F} {ι₂ : G₂ →ₜ* F}
omit [IsTopologicalGroup F] in
theorem lift_unique (hF : IsFreeProCProduct (C := C) ι₁ ι₂)
    {K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
    [CompactSpace K] [T2Space K] [TotallyDisconnectedSpace K]
    (hK : ProCGroups.ProC.HasOpenNormalBasisInClass C (K))
    (φ₁ : G₁ →ₜ* K) (φ₂ : G₂ →ₜ* K)
    {ψ : F →ₜ* K} (hψ : ψ.comp ι₁ = φ₁ ∧ ψ.comp ι₂ = φ₂) :
    ψ = hF.lift hK φ₁ φ₂
ProCGroups.FreeProducts.IsFreeProCProduct.lift_self

The distinguished descent map from a free product object to itself is the identity.

Source context 11 commands

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

namespace ProCGroups.FreeProducts
universe u
section FreeProCProducts
variable {C : ProCGroups.FiniteGroupClass}
variable {G₁ : Type u} {G₂ : Type u} {F : Type u}
variable [Group G₁] [TopologicalSpace G₁]
variable [Group G₂] [TopologicalSpace G₂]
variable [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
namespace IsFreeProCProduct
variable [CompactSpace F] [T2Space F] [TotallyDisconnectedSpace F]
variable {ι₁ : G₁ →ₜ* F} {ι₂ : G₂ →ₜ* F}
theorem lift_self (hF : IsFreeProCProduct (C := C) ι₁ ι₂) :
    hF.lift hF.hasOpenNormalBasisInClass ι₁ ι₂ = ContinuousMonoidHom.id F
ProCGroups.FreeProducts.IsFreeProCProduct.hom_ext

Homomorphisms out of a free-product object are equal when they agree on the canonical factors.

Source context 12 commands

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

namespace ProCGroups.FreeProducts
universe u
section FreeProCProducts
variable {C : ProCGroups.FiniteGroupClass}
variable {G₁ : Type u} {G₂ : Type u} {F : Type u}
variable [Group G₁] [TopologicalSpace G₁]
variable [Group G₂] [TopologicalSpace G₂]
variable [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
namespace IsFreeProCProduct
variable [CompactSpace F] [T2Space F] [TotallyDisconnectedSpace F]
variable {ι₁ : G₁ →ₜ* F} {ι₂ : G₂ →ₜ* F}
omit [IsTopologicalGroup F] in
theorem hom_ext (hF : IsFreeProCProduct (C := C) ι₁ ι₂)
    {K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
    [CompactSpace K] [T2Space K] [TotallyDisconnectedSpace K]
    (hK : ProCGroups.ProC.HasOpenNormalBasisInClass C (K))
    {ψ ψ' : F →ₜ* K}
    (h₁ : ψ.comp ι₁ = ψ'.comp ι₁) (h₂ : ψ.comp ι₂ = ψ'.comp ι₂) :
    ψ = ψ'
ProCGroups.FreeProducts.IsFreeProCProduct.compare

The canonical comparison morphism between two free product objects on the same pair of factors.

Source context 14 commands

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

namespace ProCGroups.FreeProducts
universe u
section FreeProCProducts
variable {C : ProCGroups.FiniteGroupClass}
variable {G₁ : Type u} {G₂ : Type u} {F : Type u}
variable [Group G₁] [TopologicalSpace G₁]
variable [Group G₂] [TopologicalSpace G₂]
variable [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
namespace IsFreeProCProduct
variable [CompactSpace F] [T2Space F] [TotallyDisconnectedSpace F]
variable {ι₁ : G₁ →ₜ* F} {ι₂ : G₂ →ₜ* F}
variable {F' : Type u} [Group F'] [TopologicalSpace F'] [IsTopologicalGroup F']
variable [CompactSpace F'] [T2Space F'] [TotallyDisconnectedSpace F']
variable {ι₁' : G₁ →ₜ* F'} {ι₂' : G₂ →ₜ* F'}
def compare (hF : IsFreeProCProduct (C := C) ι₁ ι₂)
    (hF' : IsFreeProCProduct (C := C) ι₁' ι₂') :
    F →ₜ* F'
ProCGroups.FreeProducts.IsFreeProCProduct.compare_left

The left composite of the canonical comparison map between free product objects is the prescribed left leg.

Source context 15 commands

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

namespace ProCGroups.FreeProducts
universe u
section FreeProCProducts
variable {C : ProCGroups.FiniteGroupClass}
variable {G₁ : Type u} {G₂ : Type u} {F : Type u}
variable [Group G₁] [TopologicalSpace G₁]
variable [Group G₂] [TopologicalSpace G₂]
variable [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
namespace IsFreeProCProduct
variable [CompactSpace F] [T2Space F] [TotallyDisconnectedSpace F]
variable {ι₁ : G₁ →ₜ* F} {ι₂ : G₂ →ₜ* F}
variable {F' : Type u} [Group F'] [TopologicalSpace F'] [IsTopologicalGroup F']
variable [CompactSpace F'] [T2Space F'] [TotallyDisconnectedSpace F']
variable {ι₁' : G₁ →ₜ* F'} {ι₂' : G₂ →ₜ* F'}
omit [IsTopologicalGroup F] in
theorem compare_left (hF : IsFreeProCProduct (C := C) ι₁ ι₂)
    (hF' : IsFreeProCProduct (C := C) ι₁' ι₂') :
    (hF.compare hF').comp ι₁ = ι₁'
ProCGroups.FreeProducts.IsFreeProCProduct.compare_right

The right composite of the canonical comparison map between free product objects is the prescribed right leg.

Source context 15 commands

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

namespace ProCGroups.FreeProducts
universe u
section FreeProCProducts
variable {C : ProCGroups.FiniteGroupClass}
variable {G₁ : Type u} {G₂ : Type u} {F : Type u}
variable [Group G₁] [TopologicalSpace G₁]
variable [Group G₂] [TopologicalSpace G₂]
variable [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
namespace IsFreeProCProduct
variable [CompactSpace F] [T2Space F] [TotallyDisconnectedSpace F]
variable {ι₁ : G₁ →ₜ* F} {ι₂ : G₂ →ₜ* F}
variable {F' : Type u} [Group F'] [TopologicalSpace F'] [IsTopologicalGroup F']
variable [CompactSpace F'] [T2Space F'] [TotallyDisconnectedSpace F']
variable {ι₁' : G₁ →ₜ* F'} {ι₂' : G₂ →ₜ* F'}
omit [IsTopologicalGroup F] in
theorem compare_right (hF : IsFreeProCProduct (C := C) ι₁ ι₂)
    (hF' : IsFreeProCProduct (C := C) ι₁' ι₂') :
    (hF.compare hF').comp ι₂ = ι₂'
ProCGroups.FreeProducts.IsFreeProCProduct.compare_self

The canonical comparison map from a free product object to itself is the identity.

Source context 14 commands

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

namespace ProCGroups.FreeProducts
universe u
section FreeProCProducts
variable {C : ProCGroups.FiniteGroupClass}
variable {G₁ : Type u} {G₂ : Type u} {F : Type u}
variable [Group G₁] [TopologicalSpace G₁]
variable [Group G₂] [TopologicalSpace G₂]
variable [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
namespace IsFreeProCProduct
variable [CompactSpace F] [T2Space F] [TotallyDisconnectedSpace F]
variable {ι₁ : G₁ →ₜ* F} {ι₂ : G₂ →ₜ* F}
variable {F' : Type u} [Group F'] [TopologicalSpace F'] [IsTopologicalGroup F']
variable [CompactSpace F'] [T2Space F'] [TotallyDisconnectedSpace F']
variable {ι₁' : G₁ →ₜ* F'} {ι₂' : G₂ →ₜ* F'}
theorem compare_self (hF : IsFreeProCProduct (C := C) ι₁ ι₂) :
    hF.compare hF = ContinuousMonoidHom.id F
ProCGroups.FreeProducts.IsFreeProCProduct.compare_comp

Composition of free-product comparison maps is the expected direct comparison map.

Source context 18 commands

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

namespace ProCGroups.FreeProducts
universe u
section FreeProCProducts
variable {C : ProCGroups.FiniteGroupClass}
variable {G₁ : Type u} {G₂ : Type u} {F : Type u}
variable [Group G₁] [TopologicalSpace G₁]
variable [Group G₂] [TopologicalSpace G₂]
variable [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
namespace IsFreeProCProduct
variable [CompactSpace F] [T2Space F] [TotallyDisconnectedSpace F]
variable {ι₁ : G₁ →ₜ* F} {ι₂ : G₂ →ₜ* F}
variable {F' : Type u} [Group F'] [TopologicalSpace F'] [IsTopologicalGroup F']
variable [CompactSpace F'] [T2Space F'] [TotallyDisconnectedSpace F']
variable {ι₁' : G₁ →ₜ* F'} {ι₂' : G₂ →ₜ* F'}
variable {F'' : Type u} [Group F''] [TopologicalSpace F''] [IsTopologicalGroup F'']
variable [CompactSpace F''] [T2Space F''] [TotallyDisconnectedSpace F'']
variable {ι₁'' : G₁ →ₜ* F''} {ι₂'' : G₂ →ₜ* F''}
omit [IsTopologicalGroup F] in
theorem compare_comp (hF : IsFreeProCProduct (C := C) ι₁ ι₂)
    (hF' : IsFreeProCProduct (C := C) ι₁' ι₂')
    (hF'' : IsFreeProCProduct (C := C) ι₁'' ι₂'') :
    (hF'.compare hF'').comp (hF.compare hF') = hF.compare hF''
ProCGroups.FreeProducts.IsFreeProCProduct.equiv

Any two binary free product objects on the same factors are canonically isomorphic.

Source context 17 commands

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

namespace ProCGroups.FreeProducts
universe u
section FreeProCProducts
variable {C : ProCGroups.FiniteGroupClass}
variable {G₁ : Type u} {G₂ : Type u} {F : Type u}
variable [Group G₁] [TopologicalSpace G₁]
variable [Group G₂] [TopologicalSpace G₂]
variable [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
namespace IsFreeProCProduct
variable [CompactSpace F] [T2Space F] [TotallyDisconnectedSpace F]
variable {ι₁ : G₁ →ₜ* F} {ι₂ : G₂ →ₜ* F}
variable {F' : Type u} [Group F'] [TopologicalSpace F'] [IsTopologicalGroup F']
variable [CompactSpace F'] [T2Space F'] [TotallyDisconnectedSpace F']
variable {ι₁' : G₁ →ₜ* F'} {ι₂' : G₂ →ₜ* F'}
variable {F'' : Type u} [Group F''] [TopologicalSpace F''] [IsTopologicalGroup F'']
variable [CompactSpace F''] [T2Space F''] [TotallyDisconnectedSpace F'']
variable {ι₁'' : G₁ →ₜ* F''} {ι₂'' : G₂ →ₜ* F''}
def equiv (hF : IsFreeProCProduct (C := C) ι₁ ι₂)
    (hF' : IsFreeProCProduct (C := C) ι₁' ι₂') :
    F ≃ₜ* F'
ProCGroups.FreeProducts.IsFreeProCProduct.equiv_left

The left composite of the canonical equivalence between free-product objects is the canonical left map.

Source context 17 commands

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

namespace ProCGroups.FreeProducts
universe u
section FreeProCProducts
variable {C : ProCGroups.FiniteGroupClass}
variable {G₁ : Type u} {G₂ : Type u} {F : Type u}
variable [Group G₁] [TopologicalSpace G₁]
variable [Group G₂] [TopologicalSpace G₂]
variable [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
namespace IsFreeProCProduct
variable [CompactSpace F] [T2Space F] [TotallyDisconnectedSpace F]
variable {ι₁ : G₁ →ₜ* F} {ι₂ : G₂ →ₜ* F}
variable {F' : Type u} [Group F'] [TopologicalSpace F'] [IsTopologicalGroup F']
variable [CompactSpace F'] [T2Space F'] [TotallyDisconnectedSpace F']
variable {ι₁' : G₁ →ₜ* F'} {ι₂' : G₂ →ₜ* F'}
variable {F'' : Type u} [Group F''] [TopologicalSpace F''] [IsTopologicalGroup F'']
variable [CompactSpace F''] [T2Space F''] [TotallyDisconnectedSpace F'']
variable {ι₁'' : G₁ →ₜ* F''} {ι₂'' : G₂ →ₜ* F''}
theorem equiv_left (hF : IsFreeProCProduct (C := C) ι₁ ι₂)
    (hF' : IsFreeProCProduct (C := C) ι₁' ι₂') :
    ((hF.equiv hF' : F →ₜ* F').comp ι₁) = ι₁'
ProCGroups.FreeProducts.IsFreeProCProduct.equiv_right

The right composite of the canonical equivalence between free product objects is the prescribed right leg.

Source context 17 commands

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

namespace ProCGroups.FreeProducts
universe u
section FreeProCProducts
variable {C : ProCGroups.FiniteGroupClass}
variable {G₁ : Type u} {G₂ : Type u} {F : Type u}
variable [Group G₁] [TopologicalSpace G₁]
variable [Group G₂] [TopologicalSpace G₂]
variable [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
namespace IsFreeProCProduct
variable [CompactSpace F] [T2Space F] [TotallyDisconnectedSpace F]
variable {ι₁ : G₁ →ₜ* F} {ι₂ : G₂ →ₜ* F}
variable {F' : Type u} [Group F'] [TopologicalSpace F'] [IsTopologicalGroup F']
variable [CompactSpace F'] [T2Space F'] [TotallyDisconnectedSpace F']
variable {ι₁' : G₁ →ₜ* F'} {ι₂' : G₂ →ₜ* F'}
variable {F'' : Type u} [Group F''] [TopologicalSpace F''] [IsTopologicalGroup F'']
variable [CompactSpace F''] [T2Space F''] [TotallyDisconnectedSpace F'']
variable {ι₁'' : G₁ →ₜ* F''} {ι₂'' : G₂ →ₜ* F''}
theorem equiv_right (hF : IsFreeProCProduct (C := C) ι₁ ι₂)
    (hF' : IsFreeProCProduct (C := C) ι₁' ι₂') :
    ((hF.equiv hF' : F →ₜ* F').comp ι₂) = ι₂'
ProCGroups.FreeProducts.IsFreeProCProduct.equiv_symm_left

Left-leg formula for the inverse canonical free-product equivalence.

Source context 17 commands

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

namespace ProCGroups.FreeProducts
universe u
section FreeProCProducts
variable {C : ProCGroups.FiniteGroupClass}
variable {G₁ : Type u} {G₂ : Type u} {F : Type u}
variable [Group G₁] [TopologicalSpace G₁]
variable [Group G₂] [TopologicalSpace G₂]
variable [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
namespace IsFreeProCProduct
variable [CompactSpace F] [T2Space F] [TotallyDisconnectedSpace F]
variable {ι₁ : G₁ →ₜ* F} {ι₂ : G₂ →ₜ* F}
variable {F' : Type u} [Group F'] [TopologicalSpace F'] [IsTopologicalGroup F']
variable [CompactSpace F'] [T2Space F'] [TotallyDisconnectedSpace F']
variable {ι₁' : G₁ →ₜ* F'} {ι₂' : G₂ →ₜ* F'}
variable {F'' : Type u} [Group F''] [TopologicalSpace F''] [IsTopologicalGroup F'']
variable [CompactSpace F''] [T2Space F''] [TotallyDisconnectedSpace F'']
variable {ι₁'' : G₁ →ₜ* F''} {ι₂'' : G₂ →ₜ* F''}
theorem equiv_symm_left (hF : IsFreeProCProduct (C := C) ι₁ ι₂)
    (hF' : IsFreeProCProduct (C := C) ι₁' ι₂') :
    (((hF.equiv hF').symm : F' →ₜ* F).comp ι₁') = ι₁
ProCGroups.FreeProducts.IsFreeProCProduct.equiv_symm_right

Right-leg formula for the inverse canonical free-product equivalence.

Source context 17 commands

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

namespace ProCGroups.FreeProducts
universe u
section FreeProCProducts
variable {C : ProCGroups.FiniteGroupClass}
variable {G₁ : Type u} {G₂ : Type u} {F : Type u}
variable [Group G₁] [TopologicalSpace G₁]
variable [Group G₂] [TopologicalSpace G₂]
variable [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
namespace IsFreeProCProduct
variable [CompactSpace F] [T2Space F] [TotallyDisconnectedSpace F]
variable {ι₁ : G₁ →ₜ* F} {ι₂ : G₂ →ₜ* F}
variable {F' : Type u} [Group F'] [TopologicalSpace F'] [IsTopologicalGroup F']
variable [CompactSpace F'] [T2Space F'] [TotallyDisconnectedSpace F']
variable {ι₁' : G₁ →ₜ* F'} {ι₂' : G₂ →ₜ* F'}
variable {F'' : Type u} [Group F''] [TopologicalSpace F''] [IsTopologicalGroup F'']
variable [CompactSpace F''] [T2Space F''] [TotallyDisconnectedSpace F'']
variable {ι₁'' : G₁ →ₜ* F''} {ι₂'' : G₂ →ₜ* F''}
theorem equiv_symm_right (hF : IsFreeProCProduct (C := C) ι₁ ι₂)
    (hF' : IsFreeProCProduct (C := C) ι₁' ι₂') :
    (((hF.equiv hF').symm : F' →ₜ* F).comp ι₂') = ι₂