ProCGroups.Categorical.QuotientPullbackEquivalences

48 Theorem | 15 Definition | 1 Instance

This module supplies the topological part of the construction. It checks continuity and stagewise neighborhood properties so that the completed object inherits the required topology.

import
Imported by

Declarations

instance normal_iInf
    {ι : Type*} {G : Type*} [Group G] (W : ι → Subgroup G)
    [∀ i, (W i).Normal] :
    (⨅ i, W i).Normal where
  conj_mem := by
    intro n hn g
    rw [Subgroup.mem_iInf] at hn ⊢
    intro i
    exact (show (W i).Normal by infer_instance).conj_mem n (hn i) g

An infimum of normal subgroups is normal.

theorem isClosed_sup_of_isCompact_of_normal_right
    {G : Type*} [TopologicalSpace G] [Group G] [IsTopologicalGroup G] [T2Space G]
    (U V : Subgroup G) [V.Normal]
    (hU : IsCompact (U : Set G)) (hV : IsCompact (V : Set G)) :
    IsClosed ((U ⊔ V : Subgroup G) : Set G)

In a Hausdorff topological group, the join of a compact subgroup with a compact normal subgroup is closed.

Show proof
theorem isClosed_sup_of_normal
    {G : Type*} [TopologicalSpace G] [Group G] [IsTopologicalGroup G] [CompactSpace G]
    [T2Space G]
    (U V : Subgroup G) [V.Normal]
    (hUclosed : IsClosed (U : Set G)) (hVclosed : IsClosed (V : Set G)) :
    IsClosed ((U ⊔ V : Subgroup G) : Set G)

In a compact Hausdorff topological group, the join of a closed subgroup with a closed normal subgroup is closed.

Show proof
def quotientMapOfLE (M N : Subgroup G) [M.Normal] [N.Normal] (hMN : M ≤ N) :
    G ⧸ M →* G ⧸ N :=
  QuotientGroup.map M N (MonoidHom.id G) (by
    intro g hg
    exact hMN hg)

The quotient map induced by an inclusion of normal subgroups.

@[simp] theorem quotientMapOfLE_mk (M N : Subgroup G) [M.Normal] [N.Normal]
    (hMN : M ≤ N) (g : G) :
    quotientMapOfLE (G := G) M N hMN (QuotientGroup.mk g) = QuotientGroup.mk g

The quotient map induced by an inclusion sends a coset to its image coset.

Show proof
def quotientIInfToCoordinate {ι : Type v} (W : ι → Subgroup G) [∀ i, (W i).Normal]
    (i : ι) :
    G ⧸ (⨅ j, W j) →* G ⧸ W i :=
  quotientMapOfLE (G := G) (⨅ j, W j) (W i) (iInf_le W i)

Coordinate map from the quotient by an indexed intersection of normal subgroups.

@[simp] theorem quotientIInfToCoordinate_mk {ι : Type v}
    (W : ι → Subgroup G) [∀ i, (W i).Normal] (i : ι) (g : G) :
    quotientIInfToCoordinate (G := G) W i (QuotientGroup.mk' (⨅ j, W j) g) =
      QuotientGroup.mk' (W i) g

The map from the quotient by the infimum to a coordinate quotient sends a representative to its coordinate coset.

Show proof
theorem quotient_iInf_isLimit_finite {ι : Type v} [Fintype ι]
    (W : ι → Subgroup G) [∀ i, (W i).Normal]
    {x y : G ⧸ (⨅ i, W i)}
    (hxy : ∀ i, quotientIInfToCoordinate (G := G) W i x =
      quotientIInfToCoordinate (G := G) W i y) :
    x = y

Quotient classes modulo an indexed intersection are equal when all coordinate quotients are equal. For finite families this is the extensional core of the finite-family quotient pullback.

Show proof
@[simp] theorem ker_quotientMapOfLE_comp_mk (M N : Subgroup G) [M.Normal] [N.Normal]
    (hMN : M ≤ N) :
    ((quotientMapOfLE (G := G) M N hMN).comp (QuotientGroup.mk' M)).ker = N

Kernel of the quotient map induced by M \(\le\) N, after precomposition with the quotient map from \(G\).

Show proof
def quotientInfToLeft : G ⧸ (U ⊓ V) →* G ⧸ U :=
  quotientMapOfLE (G := G) (U ⊓ V) U inf_le_left

The left-hand map in the quotient pullback square.

def quotientInfToRight : G ⧸ (U ⊓ V) →* G ⧸ V :=
  quotientMapOfLE (G := G) (U ⊓ V) V inf_le_right

The right-hand map in the quotient pullback square.

def quotientToSupLeft : G ⧸ U →* G ⧸ (U ⊔ V) :=
  quotientMapOfLE (G := G) U (U ⊔ V) le_sup_left

The bottom-left map in the quotient pullback square.

def quotientToSupRight : G ⧸ V →* G ⧸ (U ⊔ V) :=
  quotientMapOfLE (G := G) V (U ⊔ V) le_sup_right

The bottom-right map in the quotient pullback square.

@[simp] theorem ker_quotientToSupLeft_comp_mk :
    ((quotientToSupLeft (G := G) U V).comp (QuotientGroup.mk' U)).ker = U ⊔ V

Kernel of the left quotient-to-sup map after precomposition with the quotient map from \(G\).

Show proof
@[simp] theorem ker_quotientToSupRight_comp_mk :
    ((quotientToSupRight (G := G) U V).comp (QuotientGroup.mk' V)).ker = U ⊔ V

This lemma identifies the kernel of the right quotient-to-sup map after precomposition with the quotient map from \(G\).

Show proof
def quotientMapOfLECont
    {G : Type u} [Group G] [TopologicalSpace G]
    (M N : Subgroup G) [M.Normal] [N.Normal] (hMN : M ≤ N) :
    G ⧸ M →ₜ* G ⧸ N :=
  QuotientGroup.mapₜ M N (ContinuousMonoidHom.id G) (by
    intro g hg
    exact hMN hg)

The quotient map induced by an inclusion of normal subgroups is viewed as continuous.

@[simp] theorem quotientMapOfLECont_toMonoidHom
    {G : Type u} [Group G] [TopologicalSpace G]
    (M N : Subgroup G) [M.Normal] [N.Normal] (hMN : M ≤ N) :
    (quotientMapOfLECont (G := G) M N hMN).toMonoidHom =
      quotientMapOfLE (G := G) M N hMN

The quotient map sends the class of an element to the class of its image under the underlying group homomorphism.

Show proof
@[simp] theorem quotientMapOfLECont_mk
    {G : Type u} [Group G] [TopologicalSpace G]
    (M N : Subgroup G) [M.Normal] [N.Normal] (hMN : M ≤ N) (g : G) :
    quotientMapOfLECont (G := G) M N hMN (QuotientGroup.mk g) = QuotientGroup.mk g

Evaluation of the continuous quotient map induced by inclusion on a quotient class.

Show proof
noncomputable def quotientInfToPullback :
    G ⧸ (U ⊓ V) →*
      FiberProduct.carrier (quotientToSupLeft (G := G) U V) (quotientToSupRight (G := G) U V) := by
  refine FiberProduct.lift
    (quotientToSupLeft (G := G) U V)
    (quotientToSupRight (G := G) U V)
    (quotientInfToLeft (G := G) U V)
    (quotientInfToRight (G := G) U V) ?_
  intro x
  refine Quotient.inductionOn x ?_
  intro g
  rfl

The canonical map from \(G/(U \cap V)\) to the concrete pullback of \(G/U\) and \(G/V\) over \(G/(UV)\).

@[simp] theorem quotientInfToPullback_mk (g : G) :
    quotientInfToPullback (G := G) U V (QuotientGroup.mk g) =
      ⟨(QuotientGroup.mk g, QuotientGroup.mk g), rfl

The quotient-to-pullback map sends a coset to the corresponding pair of quotient cosets.

Show proof
@[simp] theorem pullbackFst_quotientInfToPullback :
    (FiberProduct.fst _ _).comp
        (quotientInfToPullback (G := G) U V) =
      quotientInfToLeft (G := G) U V

The first projection of the quotient-to-pullback map is the natural quotient map to \(G/U\).

Show proof
@[simp] theorem pullbackSnd_quotientInfToPullback :
    (FiberProduct.snd _ _).comp
        (quotientInfToPullback (G := G) U V) =
      quotientInfToRight (G := G) U V

The second projection of the quotient-to-pullback map is the natural quotient map to \(G/V\).

Show proof
theorem quotientInfToPullback_injective :
    Function.Injective (quotientInfToPullback (G := G) U V)

The canonical map from \(G/(U \cap V)\) to the pullback of \(G/U\) and \(G/V\) over \(G/(UV)\) is injective.

Show proof
theorem quotientInfToPullback_surjective :
    Function.Surjective (quotientInfToPullback (G := G) U V)

The canonical map from the quotient by \(U \cap V\) to the pullback of the quotients by \(U\) and \(V\) is surjective.

Show proof
theorem quotientInfToPullback_bijective :
    Function.Bijective (quotientInfToPullback (G := G) U V)

The canonical quotient-to-pullback map is bijective.

Show proof
noncomputable def quotientInfPullbackEquiv :
    G ⧸ (U ⊓ V) ≃*
      FiberProduct.carrier (quotientToSupLeft (G := G) U V) (quotientToSupRight (G := G) U V) :=
  MulEquiv.ofBijective (quotientInfToPullback (G := G) U V)
    (quotientInfToPullback_bijective (G := G) U V)

The quotient square is canonically isomorphic to the pullback.

@[simp] theorem quotientInfPullbackEquiv_fst :
    (FiberProduct.fst _ _).comp (quotientInfPullbackEquiv (G := G) U V).toMonoidHom =
      quotientInfToLeft (G := G) U V

The first coordinate of the quotient pullback equivalence is the natural map to \(G/U\).

Show proof
@[simp] theorem quotientInfPullbackEquiv_snd :
    (FiberProduct.snd _ _).comp (quotientInfPullbackEquiv (G := G) U V).toMonoidHom =
      quotientInfToRight (G := G) U V

The second coordinate of the quotient pullback equivalence is the natural map to \(G/V\).

Show proof
theorem quotientInf_isPullback :
    IsPullbackSquare
      (quotientInfToLeft (G := G) U V)
      (quotientInfToRight (G := G) U V)
      (quotientToSupLeft (G := G) U V)
      (quotientToSupRight (G := G) U V)

The quotient square is a pullback square.

Show proof
theorem isClosed_sup_of_normal
    (hG : IsProfiniteGroup G)
    (hUclosed : IsClosed (U : Set G)) (hVclosed : IsClosed (V : Set G)) :
    IsClosed ((U ⊔ V : Subgroup G) : Set G)

In a profinite group, the join of two closed normal subgroups is closed. This is the compactness input needed for the lower-right quotient in the quotient-pullback square.

Show proof
def quotientInfToLeftCont : G ⧸ (U ⊓ V) →ₜ* G ⧸ U :=
  quotientMapOfLECont (G := G) (U ⊓ V) U inf_le_left

The left map in the continuous quotient square.

def quotientInfToRightCont : G ⧸ (U ⊓ V) →ₜ* G ⧸ V :=
  quotientMapOfLECont (G := G) (U ⊓ V) V inf_le_right

The right map in the continuous quotient square.

def quotientToSupLeftCont : G ⧸ U →ₜ* G ⧸ (U ⊔ V) :=
  quotientMapOfLECont (G := G) U (U ⊔ V) le_sup_left

The bottom-left map in the continuous quotient square.

def quotientToSupRightCont : G ⧸ V →ₜ* G ⧸ (U ⊔ V) :=
  quotientMapOfLECont (G := G) V (U ⊔ V) le_sup_right

The bottom-right map in the continuous quotient square.

@[simp] theorem quotientInfToLeftCont_toMonoidHom :
    (quotientInfToLeftCont (G := G) U V).toMonoidHom = quotientInfToLeft (G := G) U V

Forgetting continuity from the left continuous quotient-square map recovers the algebraic map.

Show proof
@[simp] theorem quotientInfToRightCont_toMonoidHom :
    (quotientInfToRightCont (G := G) U V).toMonoidHom = quotientInfToRight (G := G) U V

Forgetting continuity from the right continuous quotient-square map recovers the underlying algebraic map.

Show proof
@[simp] theorem quotientToSupLeftCont_toMonoidHom :
    (quotientToSupLeftCont (G := G) U V).toMonoidHom = quotientToSupLeft (G := G) U V

Forgetting continuity from the lower-left continuous quotient-square map recovers the algebraic map.

Show proof
@[simp] theorem quotientToSupRightCont_toMonoidHom :
    (quotientToSupRightCont (G := G) U V).toMonoidHom = quotientToSupRight (G := G) U V

Forgetting continuity from the lower-right continuous quotient-square map recovers the algebraic map.

Show proof
@[simp] theorem quotientInfToLeftCont_mk (g : G) :
    quotientInfToLeftCont (G := G) U V (QuotientGroup.mk g) = QuotientGroup.mk g

Evaluation of the left continuous quotient-square map on a quotient class.

Show proof
@[simp] theorem quotientInfToRightCont_mk (g : G) :
    quotientInfToRightCont (G := G) U V (QuotientGroup.mk g) = QuotientGroup.mk g

Evaluation of the right continuous quotient-square map on a quotient class.

Show proof
@[simp] theorem quotientToSupLeftCont_mk (g : G) :
    quotientToSupLeftCont (G := G) U V (QuotientGroup.mk g) = QuotientGroup.mk g

Evaluation of the lower-left continuous quotient-square map on a quotient class.

Show proof
@[simp] theorem quotientToSupRightCont_mk (g : G) :
    quotientToSupRightCont (G := G) U V (QuotientGroup.mk g) = QuotientGroup.mk g

Evaluation of the lower-right continuous quotient-square map on a quotient class.

Show proof
def quotientInfToContinuousPullback :
    G ⧸ (U ⊓ V) →ₜ*
      TopologicalFiberProduct.carrier (quotientToSupLeftCont (G := G) U V) (quotientToSupRightCont (G := G) U V) := by
  refine TopologicalFiberProduct.lift
    (quotientToSupLeftCont (G := G) U V)
    (quotientToSupRightCont (G := G) U V)
    (quotientInfToLeftCont (G := G) U V)
    (quotientInfToRightCont (G := G) U V) ?_
  intro x
  refine Quotient.inductionOn x ?_
  intro g
  rfl

The canonical continuous map from \(G/(U \cap V)\) to the concrete continuous pullback of \(G/U\) and \(G/V\) over \(G/(UV)\).

@[simp] theorem quotientInfToContinuousPullback_toMonoidHom :
    (quotientInfToContinuousPullback (G := G) U V).toMonoidHom =
      quotientInfToPullback (G := G) U V

Forgetting continuity from the continuous quotient-to-pullback map recovers the algebraic one.

Show proof
@[simp] theorem quotientInfToContinuousPullback_mk (g : G) :
    quotientInfToContinuousPullback (G := G) U V (QuotientGroup.mk g) =
      ⟨(QuotientGroup.mk g, QuotientGroup.mk g), rfl

The quotient-to-continuous-pullback map sends a coset to the corresponding continuous pullback pair.

Show proof
@[simp] theorem pullbackFstCont_quotientInfToContinuousPullback :
    (TopologicalFiberProduct.fst _ _).comp (quotientInfToContinuousPullback (G := G) U V) =
      quotientInfToLeftCont (G := G) U V

The first projection of the continuous quotient-to-pullback map is the natural quotient map to \(G/U\).

Show proof
@[simp] theorem pullbackSndCont_quotientInfToContinuousPullback :
    (TopologicalFiberProduct.snd _ _).comp (quotientInfToContinuousPullback (G := G) U V) =
      quotientInfToRightCont (G := G) U V

The second projection of the continuous quotient-to-pullback map is the natural quotient map to \(G/V\).

Show proof
theorem quotientInfToContinuousPullback_injective :
    Function.Injective (quotientInfToContinuousPullback (G := G) U V)

Injectivity of the continuous quotient-to-pullback map on the underlying groups.

Show proof
theorem quotientInfToContinuousPullback_surjective :
    Function.Surjective (quotientInfToContinuousPullback (G := G) U V)

Surjectivity of the continuous quotient-to-pullback map on the underlying groups.

Show proof
theorem quotientInfToContinuousPullback_bijective :
    Function.Bijective (quotientInfToContinuousPullback (G := G) U V)

The continuous quotient-to-pullback map is bijective on the underlying groups.

Show proof
noncomputable def quotientInfContinuousPullbackEquiv
    [CompactSpace G] [T2Space G] [TotallyDisconnectedSpace G]
    (hUclosed : IsClosed (U : Set G)) (hVclosed : IsClosed (V : Set G)) :
    G ⧸ (U ⊓ V) ≃ₜ*
      TopologicalFiberProduct.carrier (quotientToSupLeftCont (G := G) U V) (quotientToSupRightCont (G := G) U V) := by
  let hG : IsProfiniteGroup G :=
    ⟨inferInstance, inferInstance, inferInstance, inferInstance⟩
  let hInfClosed : IsClosed (((U ⊓ V : Subgroup G) : Set G)) := hUclosed.inter hVclosed
  let hSupClosed : IsClosed (((U ⊔ V : Subgroup G) : Set G)) :=
    Subgroup.isClosed_sup_of_normal U V hUclosed hVclosed
  let hQuotInf : IsProfiniteGroup (G ⧸ (U ⊓ V)) :=
    ProCGroups.Generation.isProfinite_quotient_closedNormal (G := G) hG hInfClosed
  let hQuotU : IsProfiniteGroup (G ⧸ U) :=
    ProCGroups.Generation.isProfinite_quotient_closedNormal (G := G) hG hUclosed
  let hQuotV : IsProfiniteGroup (G ⧸ V) :=
    ProCGroups.Generation.isProfinite_quotient_closedNormal (G := G) hG hVclosed
  let hQuotSup : IsProfiniteGroup (G ⧸ (U ⊔ V)) :=
    ProCGroups.Generation.isProfinite_quotient_closedNormal (G := G) hG hSupClosed
  let hPull :
      IsProfiniteGroup
        (TopologicalFiberProduct.carrier (quotientToSupLeftCont (G := G) U V) (quotientToSupRightCont (G := G) U V)) :=
    TopologicalFiberProduct.isProfiniteGroup
      (quotientToSupLeftCont (G := G) U V)
      (quotientToSupRightCont (G := G) U V)
      hQuotU hQuotV hQuotSup
  letI : CompactSpace (G ⧸ (U ⊓ V)) := IsProfiniteGroup.compactSpace hQuotInf
  letI : T2Space
      (TopologicalFiberProduct.carrier (quotientToSupLeftCont (G := G) U V) (quotientToSupRightCont (G := G) U V)) :=
    IsProfiniteGroup.t2Space hPull
  exact ContinuousMulEquiv.ofBijectiveCompactToT2
    (quotientInfToContinuousPullback (G := G) U V)
    (quotientInfToContinuousPullback (G := G) U V).continuous_toFun
    (quotientInfToContinuousPullback_bijective (G := G) U V)

The quotient square is canonically isomorphic to the concrete profinite pullback.

@[simp] theorem quotientInfContinuousPullbackEquiv_toContinuousMonoidHom
    [CompactSpace G] [T2Space G] [TotallyDisconnectedSpace G]
    (hUclosed : IsClosed (U : Set G)) (hVclosed : IsClosed (V : Set G)) :
    (quotientInfContinuousPullbackEquiv
        (G := G) (U := U) (V := V) hUclosed hVclosed).toContinuousMonoidHom =
      quotientInfToContinuousPullback (G := G) U V

The quotient pullback equivalence is induced by the canonical comparison map.

Show proof
@[simp] theorem quotientInfContinuousPullbackEquiv_mk
    [CompactSpace G] [T2Space G] [TotallyDisconnectedSpace G]
    (hUclosed : IsClosed (U : Set G)) (hVclosed : IsClosed (V : Set G)) (g : G) :
    quotientInfContinuousPullbackEquiv (G := G) (U := U) (V := V) hUclosed hVclosed
      (QuotientGroup.mk g) = ⟨(QuotientGroup.mk g, QuotientGroup.mk g), rfl

The continuous pullback equivalence sends a quotient coset to the corresponding pullback pair.

Show proof
@[simp] theorem quotientInfContinuousPullbackEquiv_fst
    [CompactSpace G] [T2Space G] [TotallyDisconnectedSpace G]
    (hUclosed : IsClosed (U : Set G)) (hVclosed : IsClosed (V : Set G)) :
    (TopologicalFiberProduct.fst _ _).comp
        (quotientInfContinuousPullbackEquiv
          (G := G) (U := U) (V := V) hUclosed hVclosed).toContinuousMonoidHom =
      quotientInfToLeftCont (G := G) U V

The first coordinate of the continuous quotient pullback equivalence is the natural map to \(G/U\).

Show proof
@[simp] theorem quotientInfContinuousPullbackEquiv_snd
    [CompactSpace G] [T2Space G] [TotallyDisconnectedSpace G]
    (hUclosed : IsClosed (U : Set G)) (hVclosed : IsClosed (V : Set G)) :
    (TopologicalFiberProduct.snd _ _).comp
        (quotientInfContinuousPullbackEquiv
          (G := G) (U := U) (V := V) hUclosed hVclosed).toContinuousMonoidHom =
      quotientInfToRightCont (G := G) U V

The second coordinate of the continuous quotient pullback equivalence is the natural map to \(G/V\).

Show proof
theorem quotientInf_hasProfiniteTestPullbackProperty
    [CompactSpace G] [T2Space G] [TotallyDisconnectedSpace G]
    (hUclosed : IsClosed (U : Set G)) (hVclosed : IsClosed (V : Set G)) :
    HasProfiniteTestPullbackProperty
      (quotientInfToLeftCont (G := G) U V)
      (quotientInfToRightCont (G := G) U V)
      (quotientToSupLeftCont (G := G) U V)
      (quotientToSupRightCont (G := G) U V)

The quotient square is a pullback square in the category of profinite groups.

Show proof
@[simp] theorem infToLeft_mk (g : G) :
    quotientInfToLeft (G := G) U V (QuotientGroup.mk g) = QuotientGroup.mk g

The map from the infimum quotient to the left quotient sends a coset to its left coordinate.

Show proof
@[simp] theorem infToRight_mk (g : G) :
    quotientInfToRight (G := G) U V (QuotientGroup.mk g) = QuotientGroup.mk g

The map from the infimum quotient to the right quotient sends a coset to its right coordinate.

Show proof
@[simp] theorem leftToSup_mk (g : G) :
    quotientToSupLeft (G := G) U V (QuotientGroup.mk g) = QuotientGroup.mk g

The map from the left quotient to the supremum quotient sends a coset to its image in the larger quotient.

Show proof
@[simp] theorem rightToSup_mk (g : G) :
    quotientToSupRight (G := G) U V (QuotientGroup.mk g) = QuotientGroup.mk g

The map from the right quotient to the supremum quotient sends a coset to its image in the larger quotient.

Show proof
@[simp] theorem comparison_apply_mk (g : G) :
    quotientInfToPullback (G := G) U V (QuotientGroup.mk g) =
      ⟨(QuotientGroup.mk g, QuotientGroup.mk g), rfl

The pullback comparison map sends a quotient representative to the corresponding pullback pair.

Show proof
theorem comparison_bijective :
    Function.Bijective (quotientInfToPullback (G := G) U V)

The quotient-pullback comparison map is bijective.

Show proof
theorem isPullback :
    IsPullbackSquare
      (quotientInfToLeft (G := G) U V)
      (quotientInfToRight (G := G) U V)
      (quotientToSupLeft (G := G) U V)
      (quotientToSupRight (G := G) U V)

Namespaced form of the algebraic quotient-pullback theorem.

Show proof
theorem hasProfiniteTestPullbackProperty
    [CompactSpace G] [T2Space G] [TotallyDisconnectedSpace G]
    (hUclosed : IsClosed (U : Set G)) (hVclosed : IsClosed (V : Set G)) :
    HasProfiniteTestPullbackProperty
      (quotientInfToLeftCont (G := G) U V)
      (quotientInfToRightCont (G := G) U V)
      (quotientToSupLeftCont (G := G) U V)
      (quotientToSupRightCont (G := G) U V)

A topological pullback square has the restricted profinite-source test property.

Show proof