import
- Mathlib.GroupTheory.Coprod.Basic
- ProCGroups.Categorical.PushoutSquares
- ProCGroups.Completion.UniversalProperty
- ProCGroups.ProC.GroupPredicates.Basic
structure IsFreeProduct (ι₁ : G₁ →* F) (ι₂ : G₂ →* F) : Prop where
existsUnique_lift :
∀ {K : Type u} [Group K] (φ₁ : G₁ →* K) (φ₂ : G₂ →* K),
∃! φ : F →* K, φ.comp ι₁ = φ₁ ∧ φ.comp ι₂ = φ₂Binary free products, expressed through the usual universal property.
noncomputable def lift (hF : IsFreeProduct ι₁ ι₂)
{K : Type u} [Group K] (φ₁ : G₁ →* K) (φ₂ : G₂ →* K) : F →* K :=
Classical.choose (ExistsUnique.exists (hF.existsUnique_lift φ₁ φ₂))The universal property selects a descent morphism from a binary free product object.
theorem lift_spec (hF : IsFreeProduct ι₁ ι₂)
{K : Type u} [Group K] (φ₁ : G₁ →* K) (φ₂ : G₂ →* K) :
(hF.lift φ₁ φ₂).comp ι₁ = φ₁ ∧ (hF.lift φ₁ φ₂).comp ι₂ = φ₂The chosen free-product descent morphism has the prescribed composites.
Show proof
Classical.choose_spec (ExistsUnique.exists (hF.existsUnique_lift φ₁ φ₂))Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□@[simp] theorem lift_left (hF : IsFreeProduct ι₁ ι₂)
{K : Type u} [Group K] (φ₁ : G₁ →* K) (φ₂ : G₂ →* K) :
(hF.lift φ₁ φ₂).comp ι₁ = φ₁The left composite of the chosen free-product descent morphism is the prescribed left leg.
Show proof
(hF.lift_spec φ₁ φ₂).1Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□@[simp] theorem lift_right (hF : IsFreeProduct ι₁ ι₂)
{K : Type u} [Group K] (φ₁ : G₁ →* K) (φ₂ : G₂ →* K) :
(hF.lift φ₁ φ₂).comp ι₂ = φ₂The right composite of the chosen free-product descent morphism is the prescribed right leg.
Show proof
(hF.lift_spec φ₁ φ₂).2Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□theorem lift_unique (hF : IsFreeProduct ι₁ ι₂)
{K : Type u} [Group K] (φ₁ : G₁ →* K) (φ₂ : G₂ →* K)
{ψ : F →* K} (hψ : ψ.comp ι₁ = φ₁ ∧ ψ.comp ι₂ = φ₂) :
ψ = hF.lift φ₁ φ₂Uniqueness of the chosen free-product descent morphism.
Show proof
by
rcases hF.existsUnique_lift φ₁ φ₂ with ⟨u, hu, huuniq⟩
have hchosen : hF.lift φ₁ φ₂ = u := huuniq _ (hF.lift_spec φ₁ φ₂)
exact (huuniq _ hψ).trans hchosen.symmProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating. Consequently the two expressions have the same determining coordinates, and the defining extensionality principle for the inverse-limit, quotient, or presentation construction gives the claim in the statement.
□@[simp] theorem lift_self (hF : IsFreeProduct ι₁ ι₂) :
hF.lift ι₁ ι₂ = MonoidHom.id FThe distinguished descent map from a free product object to itself is the identity.
Show proof
by
symm
exact hF.lift_unique ι₁ ι₂ ⟨rfl, rfl⟩Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□theorem hom_ext (hF : IsFreeProduct ι₁ ι₂)
{K : Type u} [Group K] {ψ ψ' : F →* K}
(h₁ : ψ.comp ι₁ = ψ'.comp ι₁) (h₂ : ψ.comp ι₂ = ψ'.comp ι₂) :
ψ = ψ'Homomorphisms out of a free-product object are equal when they agree on the canonical factors.
Show proof
by
have hψ : ψ = hF.lift (K := K) (ψ.comp ι₁) (ψ.comp ι₂) := by
exact hF.lift_unique (K := K) (ψ.comp ι₁) (ψ.comp ι₂) ⟨rfl, rfl⟩
have hψ' : ψ' = hF.lift (K := K) (ψ.comp ι₁) (ψ.comp ι₂) := by
exact hF.lift_unique (K := K) (ψ.comp ι₁) (ψ.comp ι₂) ⟨h₁.symm, h₂.symm⟩
exact hψ.trans hψ'.symmProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating. Consequently the two expressions have the same determining coordinates, and the defining extensionality principle for the inverse-limit, quotient, or presentation construction gives the claim in the statement.
□noncomputable def compare (hF : IsFreeProduct ι₁ ι₂) : F →* F' :=
hF.lift ι₁' ι₂'The canonical comparison morphism between two free product objects on the same pair of factors.
@[simp 900] theorem compare_left (hF : IsFreeProduct ι₁ ι₂) :
(hF.compare (ι₁' := ι₁') (ι₂' := ι₂')).comp ι₁ = ι₁'The left composite of the canonical comparison map between free product objects is the prescribed left leg.
Show proof
hF.lift_left ι₁' ι₂'Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□@[simp 900] theorem compare_right (hF : IsFreeProduct ι₁ ι₂) :
(hF.compare (ι₁' := ι₁') (ι₂' := ι₂')).comp ι₂ = ι₂'The right composite of the canonical comparison map between free product objects is the prescribed right leg.
Show proof
hF.lift_right ι₁' ι₂'Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□@[simp 900] theorem compare_self (hF : IsFreeProduct ι₁ ι₂) :
hF.compare (ι₁' := ι₁) (ι₂' := ι₂) = MonoidHom.id FThe canonical comparison map from a free product object to itself is the identity.
Show proof
by
exact hF.lift_selfProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□theorem compare_comp (hF : IsFreeProduct ι₁ ι₂)
(hF' : IsFreeProduct ι₁' ι₂') :
(hF'.compare (ι₁' := ι₁'') (ι₂' := ι₂'') : F' →* F'').comp
(hF.compare (ι₁' := ι₁') (ι₂' := ι₂') : F →* F') =
(hF.compare (ι₁' := ι₁'') (ι₂' := ι₂'') : F →* F'')Composition of free-product comparison maps is the expected direct comparison map.
Show proof
by
apply hF.hom_ext
· calc
((hF'.compare (ι₁' := ι₁'') (ι₂' := ι₂'') : F' →* F'').comp
(hF.compare (ι₁' := ι₁') (ι₂' := ι₂') : F →* F')).comp ι₁
= (hF'.compare (ι₁' := ι₁'') (ι₂' := ι₂'') : F' →* F'').comp
((hF.compare (ι₁' := ι₁') (ι₂' := ι₂') : F →* F').comp ι₁) := by rfl
_ = (hF'.compare (ι₁' := ι₁'') (ι₂' := ι₂'') : F' →* F'').comp ι₁' := by
rw [hF.compare_left (ι₁' := ι₁') (ι₂' := ι₂')]
_ = ι₁'' := hF'.compare_left (ι₁' := ι₁'') (ι₂' := ι₂'')
_ = (hF.compare (ι₁' := ι₁'') (ι₂' := ι₂'') : F →* F'').comp ι₁ :=
(hF.compare_left (ι₁' := ι₁'') (ι₂' := ι₂'')).symm
· calc
((hF'.compare (ι₁' := ι₁'') (ι₂' := ι₂'') : F' →* F'').comp
(hF.compare (ι₁' := ι₁') (ι₂' := ι₂') : F →* F')).comp ι₂
= (hF'.compare (ι₁' := ι₁'') (ι₂' := ι₂'') : F' →* F'').comp
((hF.compare (ι₁' := ι₁') (ι₂' := ι₂') : F →* F').comp ι₂) := by rfl
_ = (hF'.compare (ι₁' := ι₁'') (ι₂' := ι₂'') : F' →* F'').comp ι₂' := by
rw [hF.compare_right (ι₁' := ι₁') (ι₂' := ι₂')]
_ = ι₂'' := hF'.compare_right (ι₁' := ι₁'') (ι₂' := ι₂'')
_ = (hF.compare (ι₁' := ι₁'') (ι₂' := ι₂'') : F →* F'').comp ι₂ :=
(hF.compare_right (ι₁' := ι₁'') (ι₂' := ι₂'')).symmProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□noncomputable def equiv (hF : IsFreeProduct ι₁ ι₂) (hF' : IsFreeProduct ι₁' ι₂') :
F ≃* F' :=
MonoidHom.toMulEquiv
(hF.compare (ι₁' := ι₁') (ι₂' := ι₂') : F →* F')
(hF'.compare (ι₁' := ι₁) (ι₂' := ι₂) : F' →* F)
(by
calc
(hF'.compare (ι₁' := ι₁) (ι₂' := ι₂) : F' →* F).comp
(hF.compare (ι₁' := ι₁') (ι₂' := ι₂') : F →* F') =
(hF.compare (ι₁' := ι₁) (ι₂' := ι₂) : F →* F) := by
simpa using hF.compare_comp (ι₁'' := ι₁) (ι₂'' := ι₂) hF'
_ = MonoidHom.id F := hF.compare_self)
(by
calc
(hF.compare (ι₁' := ι₁') (ι₂' := ι₂') : F →* F').comp
(hF'.compare (ι₁' := ι₁) (ι₂' := ι₂) : F' →* F) =
(hF'.compare (ι₁' := ι₁') (ι₂' := ι₂') : F' →* F') := by
simpa using hF'.compare_comp (ι₁'' := ι₁') (ι₂'' := ι₂') hF
_ = MonoidHom.id F' := hF'.compare_self)Any two binary free product objects on the same factors are canonically isomorphic.
@[simp] theorem equiv_left (hF : IsFreeProduct ι₁ ι₂) (hF' : IsFreeProduct ι₁' ι₂') :
(hF.equiv hF').toMonoidHom.comp ι₁ = ι₁'The left composite of the canonical equivalence between free-product objects is the canonical left map.
Show proof
by
exact hF.compare_left (ι₁' := ι₁') (ι₂' := ι₂')Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For equivalence and homeomorphism statements, the two comparison maps are composed in both orders and evaluated on the coordinates that determine the source. Each composite reduces to the identity transition or to the chosen representative identity on finite stages, so the algebraic inverse laws and the topological inverse laws follow simultaneously.
□@[simp] theorem equiv_right (hF : IsFreeProduct ι₁ ι₂) (hF' : IsFreeProduct ι₁' ι₂') :
(hF.equiv hF').toMonoidHom.comp ι₂ = ι₂'The right composite of the canonical equivalence between free product objects is the prescribed right leg.
Show proof
by
exact hF.compare_right (ι₁' := ι₁') (ι₂' := ι₂')Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For equivalence and homeomorphism statements, the two comparison maps are composed in both orders and evaluated on the coordinates that determine the source. Each composite reduces to the identity transition or to the chosen representative identity on finite stages, so the algebraic inverse laws and the topological inverse laws follow simultaneously.
□theorem equiv_symm_left (hF : IsFreeProduct ι₁ ι₂) (hF' : IsFreeProduct ι₁' ι₂') :
(hF.equiv hF').symm.toMonoidHom.comp ι₁' = ι₁Left-leg formula for the inverse canonical free-product equivalence.
Show proof
by
change (hF'.compare (ι₁' := ι₁) (ι₂' := ι₂) : F' →* F).comp ι₁' = ι₁
exact hF'.compare_left (ι₁' := ι₁) (ι₂' := ι₂)Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For equivalence and homeomorphism statements, the two comparison maps are composed in both orders and evaluated on the coordinates that determine the source. Each composite reduces to the identity transition or to the chosen representative identity on finite stages, so the algebraic inverse laws and the topological inverse laws follow simultaneously. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□theorem equiv_symm_right (hF : IsFreeProduct ι₁ ι₂) (hF' : IsFreeProduct ι₁' ι₂') :
(hF.equiv hF').symm.toMonoidHom.comp ι₂' = ι₂Right-leg formula for the inverse canonical free-product equivalence.
Show proof
by
change (hF'.compare (ι₁' := ι₁) (ι₂' := ι₂) : F' →* F).comp ι₂' = ι₂
exact hF'.compare_right (ι₁' := ι₁) (ι₂' := ι₂)Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For equivalence and homeomorphism statements, the two comparison maps are composed in both orders and evaluated on the coordinates that determine the source. Each composite reduces to the identity transition or to the chosen representative identity on finite stages, so the algebraic inverse laws and the topological inverse laws follow simultaneously. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□theorem isPushoutSquare (hF : IsFreeProduct ι₁ ι₂) :
ProCGroups.Categorical.IsPushoutSquare
(1 : ULift.{u, 0} Unit →* G₁) (1 : ULift.{u, 0} Unit →* G₂) ι₁ ι₂A binary free product is a pushout over the trivial group.
Show proof
by
constructor
· ext u
cases u
simp only [MonoidHom.comp_one, MonoidHom.one_apply]
· intro K _ φ₁ φ₂ _hφ
refine ⟨hF.lift φ₁ φ₂, hF.lift_spec φ₁ φ₂, ?_⟩
intro ψ hψ
exact hF.lift_unique φ₁ φ₂ hψProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating. Consequently the two expressions have the same determining coordinates, and the defining extensionality principle for the inverse-limit, quotient, or presentation construction gives the claim in the statement.
□theorem of_isPushoutSquare
(hpo : ProCGroups.Categorical.IsPushoutSquare
(1 : ULift.{u, 0} Unit →* G₁) (1 : ULift.{u, 0} Unit →* G₂) ι₁ ι₂) :
IsFreeProduct ι₁ ι₂A pushout over the trivial group satisfies the binary free-product universal property.
Show proof
by
refine ⟨?_⟩
intro K _ φ₁ φ₂
have hφ : φ₁.comp (1 : ULift.{u, 0} Unit →* G₁) =
φ₂.comp (1 : ULift.{u, 0} Unit →* G₂) := by
ext u
cases u
simp only [MonoidHom.comp_one, MonoidHom.one_apply]
simpa using hpo.2 φ₁ φ₂ hφProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating. Consequently the two expressions have the same determining coordinates, and the defining extensionality principle for the inverse-limit, quotient, or presentation construction gives the claim in the statement.
□theorem coprod_isFreeProduct (G₁ : Type u) (G₂ : Type u) [Group G₁] [Group G₂] :
IsFreeProduct
(Monoid.Coprod.inl : G₁ →* G₁ ∗ G₂)
(Monoid.Coprod.inr : G₂ →* G₁ ∗ G₂)The concrete coproduct model satisfies the universal property of the free product in the category of profinite or pro-\(C\) groups.
Show proof
by
refine ⟨?_⟩
intro K _ φ₁ φ₂
refine ⟨Monoid.Coprod.lift φ₁ φ₂, ?_, ?_⟩
· exact ⟨Monoid.Coprod.lift_comp_inl φ₁ φ₂, Monoid.Coprod.lift_comp_inr φ₁ φ₂⟩
· intro ψ hψ
exact Monoid.Coprod.lift_unique hψ.1 hψ.2Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. For pro-\(C\) claims, the resulting finite quotients lie in \(C\) by the closure property used in the construction: closure under quotients, subgroups, finite products, or extensions. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. The topological assertion is checked by the initial topology of the inverse limit. After composing with each finite-stage projection, the relevant map is a continuous finite-stage homomorphism or an operation on a finite product; compactness, Hausdorffness, total disconnectedness, and profiniteness are then inherited from the finite stages by the standard inverse-limit argument. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□theorem coprod_isPushoutSquare (G₁ : Type u) (G₂ : Type u) [Group G₁] [Group G₂] :
ProCGroups.Categorical.IsPushoutSquare
(1 : ULift.{u, 0} Unit →* G₁) (1 : ULift.{u, 0} Unit →* G₂)
(Monoid.Coprod.inl : G₁ →* G₁ ∗ G₂)
(Monoid.Coprod.inr : G₂ →* G₁ ∗ G₂)The concrete coproduct model is a pushout over the trivial group.
Show proof
(coprod_isFreeProduct G₁ G₂).isPushoutSquareProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating. Consequently the two expressions have the same determining coordinates, and the defining extensionality principle for the inverse-limit, quotient, or presentation construction gives the claim in the statement.
□theorem isFreeProduct_iff_isPushoutSquare {ι₁ : G₁ →* F} {ι₂ : G₂ →* F} :
IsFreeProduct ι₁ ι₂ ↔
ProCGroups.Categorical.IsPushoutSquare
(1 : ULift.{u, 0} Unit →* G₁) (1 : ULift.{u, 0} Unit →* G₂) ι₁ ι₂Binary free products are exactly pushouts over the trivial group.
Show proof
⟨IsFreeProduct.isPushoutSquare, IsFreeProduct.of_isPushoutSquare⟩Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Kernel and image statements are verified after quotienting by sufficiently small open normal subgroups, where they become ordinary finite group calculations. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Exactness is checked by separating injectivity, kernel containment, and image containment. Injectivity is either coordinatewise injectivity or the injectivity of a subtype inclusion; the kernel-to-image direction is obtained by packaging an element with the required vanishing proof, while the reverse direction is obtained by applying the next boundary or augmentation map and simplifying the defining relation. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□structure IsFreeProductFamily {A : Type u} (G : A → Type u) [∀ a, Group (G a)]
{F : Type u} [Group F] (ι : ∀ a, G a →* F) : Prop where
existsUnique_lift :
∀ {K : Type u} [Group K] (φ : ∀ a, G a →* K),
∃! ψ : F →* K, ∀ a, ψ.comp (ι a) = φ aIndexed free products, expressed through the usual universal property.
noncomputable def lift (hF : IsFreeProductFamily G ι)
{K : Type u} [Group K] (φ : ∀ a, G a →* K) : F →* K :=
Classical.choose (ExistsUnique.exists (hF.existsUnique_lift φ))The universal property selects a descent morphism from a family free-product object.
@[simp] theorem lift_ι (hF : IsFreeProductFamily G ι)
{K : Type u} [Group K] (φ : ∀ a, G a →* K) (a : A) :
(hF.lift φ).comp (ι a) = φ aThe universal lift from a free product family restricts to the prescribed component map.
Show proof
Classical.choose_spec (ExistsUnique.exists (hF.existsUnique_lift φ)) aProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. For pro-\(C\) claims, the resulting finite quotients lie in \(C\) by the closure property used in the construction: closure under quotients, subgroups, finite products, or extensions. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For quotient and subgroup claims, representatives are chosen in the ambient group and the induced map is checked to send the class of an element to the class of its image. Normality, openness, and membership in the finite quotient class are preserved by the subgroup, quotient, intersection, or inverse-image closure property being invoked. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps.
□theorem lift_unique (hF : IsFreeProductFamily G ι)
{K : Type u} [Group K] (φ : ∀ a, G a →* K)
{ψ : F →* K} (hψ : ∀ a, ψ.comp (ι a) = φ a) :
ψ = hF.lift φUniqueness of the chosen family free-product descent morphism.
Show proof
by
rcases hF.existsUnique_lift φ with ⟨u, hu, huuniq⟩
have hchosen : hF.lift φ = u := huuniq _ (fun a => hF.lift_ι φ a)
exact (huuniq _ hψ).trans hchosen.symmProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating. Consequently the two expressions have the same determining coordinates, and the defining extensionality principle for the inverse-limit, quotient, or presentation construction gives the claim in the statement.
□@[simp] theorem lift_self (hF : IsFreeProductFamily G ι) :
hF.lift ι = MonoidHom.id FThe distinguished descent map from a family free-product object to itself is the identity.
Show proof
by
symm
exact hF.lift_unique ι (fun _ => rfl)Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□theorem hom_ext (hF : IsFreeProductFamily G ι)
{K : Type u} [Group K] {ψ ψ' : F →* K}
(h : ∀ a, ψ.comp (ι a) = ψ'.comp (ι a)) :
ψ = ψ'Homomorphisms out of a family free-product object are equal when they agree on every canonical factor.
Show proof
by
have hψ : ψ = hF.lift (fun a => ψ.comp (ι a)) := by
exact hF.lift_unique (fun a => ψ.comp (ι a)) (fun _ => rfl)
have hψ' : ψ' = hF.lift (fun a => ψ.comp (ι a)) := by
exact hF.lift_unique (fun a => ψ.comp (ι a)) (fun a => (h a).symm)
exact hψ.trans hψ'.symmProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating. Consequently the two expressions have the same determining coordinates, and the defining extensionality principle for the inverse-limit, quotient, or presentation construction gives the claim in the statement.
□noncomputable def compare (hF : IsFreeProductFamily G ι) : F →* F' :=
hF.lift ι'The canonical comparison morphism between two family free-product objects on the same factors.
@[simp 900] theorem compare_ι (hF : IsFreeProductFamily G ι) (a : A) :
(hF.compare (ι' := ι')).comp (ι a) = ι' aThe abstract free product comparison map preserves the canonical inclusion maps.
Show proof
hF.lift_ι ι' aProof. Use the free product universal property and compare both maps after composing with each canonical inclusion.
□@[simp 900] theorem compare_self (hF : IsFreeProductFamily G ι) :
hF.compare (ι' := ι) = MonoidHom.id FThe canonical comparison map from a family free-product object to itself is the identity.
Show proof
by
exact hF.lift_selfProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□theorem compare_comp (hF : IsFreeProductFamily G ι)
(hF' : IsFreeProductFamily G ι') :
(hF'.compare (ι' := ι'') : F' →* F'').comp
(hF.compare (ι' := ι') : F →* F') =
(hF.compare (ι' := ι'') : F →* F'')Composition of family free-product comparison maps is the expected direct comparison map.
Show proof
by
apply hF.hom_ext
intro a
calc
((hF'.compare (ι' := ι'') : F' →* F'').comp
(hF.compare (ι' := ι') : F →* F')).comp (ι a)
= (hF'.compare (ι' := ι'') : F' →* F'').comp
((hF.compare (ι' := ι') : F →* F').comp (ι a)) := by rfl
_ = (hF'.compare (ι' := ι'') : F' →* F'').comp (ι' a) := by
rw [hF.compare_ι (ι' := ι') a]
_ = ι'' a := hF'.compare_ι (ι' := ι'') a
_ = (hF.compare (ι' := ι'') : F →* F'').comp (ι a) :=
(hF.compare_ι (ι' := ι'') a).symmProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□noncomputable def equiv (hF : IsFreeProductFamily G ι) (hF' : IsFreeProductFamily G ι') :
F ≃* F' :=
MonoidHom.toMulEquiv
(hF.compare (ι' := ι') : F →* F') (hF'.compare (ι' := ι) : F' →* F)
(by
calc
(hF'.compare (ι' := ι) : F' →* F).comp (hF.compare (ι' := ι') : F →* F') =
(hF.compare (ι' := ι) : F →* F) := by
simpa using hF.compare_comp (ι'' := ι) hF'
_ = MonoidHom.id F := hF.compare_self)
(by
calc
(hF.compare (ι' := ι') : F →* F').comp (hF'.compare (ι' := ι) : F' →* F) =
(hF'.compare (ι' := ι') : F' →* F') := by
simpa using hF'.compare_comp (ι'' := ι') hF
_ = MonoidHom.id F' := hF'.compare_self)Any two family free-product objects on the same factors are canonically isomorphic.
@[simp] theorem equiv_ι (hF : IsFreeProductFamily G ι) (hF' : IsFreeProductFamily G ι')
(a : A) :
(hF.equiv hF').toMonoidHom.comp (ι a) = ι' aThe comparison equivalence respects the \(\iota\)-component of the free product family.
Show proof
by
exact hF.compare_ι (ι' := ι') aProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. For pro-\(C\) claims, the resulting finite quotients lie in \(C\) by the closure property used in the construction: closure under quotients, subgroups, finite products, or extensions. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For quotient and subgroup claims, representatives are chosen in the ambient group and the induced map is checked to send the class of an element to the class of its image. Normality, openness, and membership in the finite quotient class are preserved by the subgroup, quotient, intersection, or inverse-image closure property being invoked. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps.
□theorem equiv_symm_ι (hF : IsFreeProductFamily G ι) (hF' : IsFreeProductFamily G ι')
(a : A) :
(hF.equiv hF').symm.toMonoidHom.comp (ι' a) = ι aThe inverse comparison equivalence respects the \(\iota\)-component of the free product family.
Show proof
by
change (hF'.compare (ι' := ι) : F' →* F).comp (ι' a) = ι a
exact hF'.compare_ι (ι' := ι) aProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. For pro-\(C\) claims, the resulting finite quotients lie in \(C\) by the closure property used in the construction: closure under quotients, subgroups, finite products, or extensions. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For quotient and subgroup claims, representatives are chosen in the ambient group and the induced map is checked to send the class of an element to the class of its image. Normality, openness, and membership in the finite quotient class are preserved by the subgroup, quotient, intersection, or inverse-image closure property being invoked. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps.
□structure IsTopologicalFreeProduct (ι₁ : G₁ →ₜ* F) (ι₂ : G₂ →ₜ* F) : Prop where
isFreeProduct : IsFreeProduct ι₁.toMonoidHom ι₂.toMonoidHom
lift_continuous :
∀ {K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K],
∀ (φ₁ : G₁ →ₜ* K) (φ₂ : G₂ →ₜ* K),
Continuous (isFreeProduct.lift φ₁.toMonoidHom φ₂.toMonoidHom)A topology on an abstract binary free product compatible with the usual continuous universal property. This is the interface needed to turn a pro-\(C\) completion of the topological free product into a free pro-\(C\) product.
noncomputable def lift (hF : IsTopologicalFreeProduct ι₁ ι₂)
{K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
(φ₁ : G₁ →ₜ* K) (φ₂ : G₂ →ₜ* K) : F →ₜ* K where
toMonoidHom := hF.isFreeProduct.lift φ₁.toMonoidHom φ₂.toMonoidHom
continuous_toFun := hF.lift_continuous φ₁ φ₂The universal property selects a descent morphism from a binary free product object.
@[simp] theorem lift_left (hF : IsTopologicalFreeProduct ι₁ ι₂)
{K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
(φ₁ : G₁ →ₜ* K) (φ₂ : G₂ →ₜ* K) :
(hF.lift φ₁ φ₂).comp ι₁ = φ₁The left composite of the chosen free-product descent morphism is the prescribed left leg.
Show proof
by
apply ContinuousMonoidHom.toMonoidHom_injective
exact hF.isFreeProduct.lift_left φ₁.toMonoidHom φ₂.toMonoidHomProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. The topological assertion is checked by the initial topology of the inverse limit. After composing with each finite-stage projection, the relevant map is a continuous finite-stage homomorphism or an operation on a finite product; compactness, Hausdorffness, total disconnectedness, and profiniteness are then inherited from the finite stages by the standard inverse-limit argument. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps.
□@[simp 900] theorem lift_right (hF : IsTopologicalFreeProduct ι₁ ι₂)
{K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
(φ₁ : G₁ →ₜ* K) (φ₂ : G₂ →ₜ* K) :
(hF.lift φ₁ φ₂).comp ι₂ = φ₂The right composite of the chosen free-product descent morphism is the prescribed right leg.
Show proof
by
apply ContinuousMonoidHom.toMonoidHom_injective
exact hF.isFreeProduct.lift_right φ₁.toMonoidHom φ₂.toMonoidHomProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. The topological assertion is checked by the initial topology of the inverse limit. After composing with each finite-stage projection, the relevant map is a continuous finite-stage homomorphism or an operation on a finite product; compactness, Hausdorffness, total disconnectedness, and profiniteness are then inherited from the finite stages by the standard inverse-limit argument. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps.
□structure IsFreeProCProduct (ι₁ : G₁ →ₜ* F) (ι₂ : G₂ →ₜ* F) : Prop where
isProC : ProC (G := F)
existsUnique_lift :
∀ {K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K],
ProC (G := K) →
∀ (φ₁ : G₁ →ₜ* K) (φ₂ : G₂ →ₜ* K),
∃! φ : F →ₜ* K, φ.comp ι₁ = φ₁ ∧ φ.comp ι₂ = φ₂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.
def HasFreeProCProductMappingProperty (ι₁ : G₁ →ₜ* F) (ι₂ : G₂ →ₜ* F) : Prop :=
∀ {K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K],
ProC (G := K) →
∀ (φ₁ : G₁ →ₜ* K) (φ₂ : G₂ →ₜ* K),
∃! φ : F →ₜ* K, φ.comp ι₁ = φ₁ ∧ φ.comp ι₂ = φ₂The mapping property part of a binary free pro-\(C\) product.
structure IsFreeProCProductOfProCObjects
[IsTopologicalGroup G₁] [IsTopologicalGroup G₂]
(ι₁ : G₁ →ₜ* F) (ι₂ : G₂ →ₜ* F) : Prop where
left_isProC : ProC (G := G₁)
right_isProC : ProC (G := G₂)
product_isProC : ProC (G := F)
property : HasFreeProCProductMappingProperty (ProC := ProC) ι₁ ι₂A stricter free pro-\(C\) product statement in which the factors are also pro-\(C\) objects.
noncomputable def lift (hF : IsFreeProCProduct (ProC := ProC) ι₁ ι₂)
{K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
(hK : ProC (G := K))
(φ₁ : G₁ →ₜ* K) (φ₂ : G₂ →ₜ* K) : F →ₜ* K :=
Classical.choose (ExistsUnique.exists (hF.existsUnique_lift hK φ₁ φ₂))The universal property selects a descent morphism from a binary free product object.
theorem lift_spec (hF : IsFreeProCProduct (ProC := ProC) ι₁ ι₂)
{K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
(hK : ProC (G := K))
(φ₁ : G₁ →ₜ* K) (φ₂ : G₂ →ₜ* K) :
(hF.lift hK φ₁ φ₂).comp ι₁ = φ₁ ∧ (hF.lift hK φ₁ φ₂).comp ι₂ = φ₂The chosen free-product descent morphism has the prescribed composites.
Show proof
Classical.choose_spec (ExistsUnique.exists (hF.existsUnique_lift hK φ₁ φ₂))Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□@[simp] theorem lift_left (hF : IsFreeProCProduct (ProC := ProC) ι₁ ι₂)
{K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
(hK : ProC (G := K))
(φ₁ : G₁ →ₜ* K) (φ₂ : G₂ →ₜ* K) :
(hF.lift hK φ₁ φ₂).comp ι₁ = φ₁The left composite of the chosen free-product descent morphism is the prescribed left leg.
Show proof
(hF.lift_spec hK φ₁ φ₂).1Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□@[simp] theorem lift_right (hF : IsFreeProCProduct (ProC := ProC) ι₁ ι₂)
{K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
(hK : ProC (G := K))
(φ₁ : G₁ →ₜ* K) (φ₂ : G₂ →ₜ* K) :
(hF.lift hK φ₁ φ₂).comp ι₂ = φ₂The right composite of the chosen free-product descent morphism is the prescribed right leg.
Show proof
(hF.lift_spec hK φ₁ φ₂).2Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□theorem lift_unique (hF : IsFreeProCProduct (ProC := ProC) ι₁ ι₂)
{K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
(hK : ProC (G := K))
(φ₁ : G₁ →ₜ* K) (φ₂ : G₂ →ₜ* K)
{ψ : F →ₜ* K} (hψ : ψ.comp ι₁ = φ₁ ∧ ψ.comp ι₂ = φ₂) :
ψ = hF.lift hK φ₁ φ₂Uniqueness of the chosen free-product descent morphism.
Show proof
by
rcases hF.existsUnique_lift hK φ₁ φ₂ with ⟨u, hu, huuniq⟩
have hchosen : hF.lift hK φ₁ φ₂ = u := huuniq _ (hF.lift_spec hK φ₁ φ₂)
exact (huuniq _ hψ).trans hchosen.symmProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating. Consequently the two expressions have the same determining coordinates, and the defining extensionality principle for the inverse-limit, quotient, or presentation construction gives the claim in the statement.
□@[simp] theorem lift_self (hF : IsFreeProCProduct (ProC := ProC) ι₁ ι₂) :
hF.lift hF.isProC ι₁ ι₂ = ContinuousMonoidHom.id FThe distinguished descent map from a free product object to itself is the identity.
Show proof
by
symm
exact hF.lift_unique hF.isProC ι₁ ι₂ ⟨rfl, rfl⟩Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□theorem hom_ext (hF : IsFreeProCProduct (ProC := ProC) ι₁ ι₂)
{K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
(hK : ProC (G := K))
{ψ ψ' : F →ₜ* K}
(h₁ : ψ.comp ι₁ = ψ'.comp ι₁) (h₂ : ψ.comp ι₂ = ψ'.comp ι₂) :
ψ = ψ'Homomorphisms out of a free-product object are equal when they agree on the canonical factors.
Show proof
by
have hψ : ψ = hF.lift (K := K) hK (ψ.comp ι₁) (ψ.comp ι₂) := by
exact hF.lift_unique (K := K) hK (ψ.comp ι₁) (ψ.comp ι₂) ⟨rfl, rfl⟩
have hψ' : ψ' = hF.lift (K := K) hK (ψ.comp ι₁) (ψ.comp ι₂) := by
exact hF.lift_unique (K := K) hK (ψ.comp ι₁) (ψ.comp ι₂) ⟨h₁.symm, h₂.symm⟩
exact hψ.trans hψ'.symmProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating. Consequently the two expressions have the same determining coordinates, and the defining extensionality principle for the inverse-limit, quotient, or presentation construction gives the claim in the statement.
□noncomputable def compare (hF : IsFreeProCProduct (ProC := ProC) ι₁ ι₂)
(hF' : IsFreeProCProduct (ProC := ProC) ι₁' ι₂') :
F →ₜ* F' :=
hF.lift hF'.isProC ι₁' ι₂'The canonical comparison morphism between two free product objects on the same pair of factors.
@[simp 900] theorem compare_left (hF : IsFreeProCProduct (ProC := ProC) ι₁ ι₂)
(hF' : IsFreeProCProduct (ProC := ProC) ι₁' ι₂') :
(hF.compare hF').comp ι₁ = ι₁'The left composite of the canonical comparison map between free product objects is the prescribed left leg.
Show proof
hF.lift_left hF'.isProC ι₁' ι₂'Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□@[simp 900] theorem compare_right (hF : IsFreeProCProduct (ProC := ProC) ι₁ ι₂)
(hF' : IsFreeProCProduct (ProC := ProC) ι₁' ι₂') :
(hF.compare hF').comp ι₂ = ι₂'The right composite of the canonical comparison map between free product objects is the prescribed right leg.
Show proof
hF.lift_right hF'.isProC ι₁' ι₂'Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□@[simp 900] theorem compare_self (hF : IsFreeProCProduct (ProC := ProC) ι₁ ι₂) :
hF.compare hF = ContinuousMonoidHom.id FThe canonical comparison map from a free product object to itself is the identity.
Show proof
by
exact hF.lift_selfProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□theorem compare_comp (hF : IsFreeProCProduct (ProC := ProC) ι₁ ι₂)
(hF' : IsFreeProCProduct (ProC := ProC) ι₁' ι₂')
(hF'' : IsFreeProCProduct (ProC := ProC) ι₁'' ι₂'') :
(hF'.compare hF'').comp (hF.compare hF') = hF.compare hF''Composition of free-product comparison maps is the expected direct comparison map.
Show proof
by
apply hF.hom_ext hF''.isProC
· calc
((hF'.compare hF'').comp (hF.compare hF')).comp ι₁
= (hF'.compare hF'').comp ((hF.compare hF').comp ι₁) := by rfl
_ = (hF'.compare hF'').comp ι₁' := by rw [hF.compare_left hF']
_ = ι₁'' := hF'.compare_left hF''
_ = (hF.compare hF'').comp ι₁ := (hF.compare_left hF'').symm
· calc
((hF'.compare hF'').comp (hF.compare hF')).comp ι₂
= (hF'.compare hF'').comp ((hF.compare hF').comp ι₂) := by rfl
_ = (hF'.compare hF'').comp ι₂' := by rw [hF.compare_right hF']
_ = ι₂'' := hF'.compare_right hF''
_ = (hF.compare hF'').comp ι₂ := (hF.compare_right hF'').symmProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□noncomputable def equiv (hF : IsFreeProCProduct (ProC := ProC) ι₁ ι₂)
(hF' : IsFreeProCProduct (ProC := ProC) ι₁' ι₂') :
F ≃ₜ* F' := by
let φ : F →ₜ* F' := hF.compare hF'
let ψ : F' →ₜ* F := hF'.compare hF
have hleft : ψ.comp φ = ContinuousMonoidHom.id F := by
calc
ψ.comp φ = hF.compare hF := by
simpa [φ, ψ] using hF.compare_comp hF' hF
_ = ContinuousMonoidHom.id F := hF.compare_self
have hright : φ.comp ψ = ContinuousMonoidHom.id F' := by
calc
φ.comp ψ = hF'.compare hF' := by
simpa [φ, ψ] using hF'.compare_comp hF hF'
_ = ContinuousMonoidHom.id F' := hF'.compare_self
refine ContinuousMulEquiv.mk'
(Homeomorph.mk
(MonoidHom.toMulEquiv φ.toMonoidHom ψ.toMonoidHom
(by simpa using congrArg ContinuousMonoidHom.toMonoidHom hleft)
(by simpa using congrArg ContinuousMonoidHom.toMonoidHom hright))
φ.continuous_toFun ψ.continuous_toFun)
?_
intro x y
exact φ.map_mul x yAny two binary free product objects on the same factors are canonically isomorphic.
@[simp] theorem equiv_left (hF : IsFreeProCProduct (ProC := ProC) ι₁ ι₂)
(hF' : IsFreeProCProduct (ProC := ProC) ι₁' ι₂') :
((hF.equiv hF' : F →ₜ* F').comp ι₁) = ι₁'The left composite of the canonical equivalence between free-product objects is the canonical left map.
Show proof
by
exact hF.compare_left hF'Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For equivalence and homeomorphism statements, the two comparison maps are composed in both orders and evaluated on the coordinates that determine the source. Each composite reduces to the identity transition or to the chosen representative identity on finite stages, so the algebraic inverse laws and the topological inverse laws follow simultaneously.
□@[simp] theorem equiv_right (hF : IsFreeProCProduct (ProC := ProC) ι₁ ι₂)
(hF' : IsFreeProCProduct (ProC := ProC) ι₁' ι₂') :
((hF.equiv hF' : F →ₜ* F').comp ι₂) = ι₂'The right composite of the canonical equivalence between free product objects is the prescribed right leg.
Show proof
by
exact hF.compare_right hF'Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For equivalence and homeomorphism statements, the two comparison maps are composed in both orders and evaluated on the coordinates that determine the source. Each composite reduces to the identity transition or to the chosen representative identity on finite stages, so the algebraic inverse laws and the topological inverse laws follow simultaneously.
□theorem equiv_symm_left (hF : IsFreeProCProduct (ProC := ProC) ι₁ ι₂)
(hF' : IsFreeProCProduct (ProC := ProC) ι₁' ι₂') :
(((hF.equiv hF').symm : F' →ₜ* F).comp ι₁') = ι₁Left-leg formula for the inverse canonical free-product equivalence.
Show proof
by
change (hF'.compare hF).comp ι₁' = ι₁
exact hF'.compare_left hFProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For equivalence and homeomorphism statements, the two comparison maps are composed in both orders and evaluated on the coordinates that determine the source. Each composite reduces to the identity transition or to the chosen representative identity on finite stages, so the algebraic inverse laws and the topological inverse laws follow simultaneously. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□theorem equiv_symm_right (hF : IsFreeProCProduct (ProC := ProC) ι₁ ι₂)
(hF' : IsFreeProCProduct (ProC := ProC) ι₁' ι₂') :
(((hF.equiv hF').symm : F' →ₜ* F).comp ι₂') = ι₂Right-leg formula for the inverse canonical free-product equivalence.
Show proof
by
change (hF'.compare hF).comp ι₂' = ι₂
exact hF'.compare_right hFProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For equivalence and homeomorphism statements, the two comparison maps are composed in both orders and evaluated on the coordinates that determine the source. Each composite reduces to the identity transition or to the chosen representative identity on finite stages, so the algebraic inverse laws and the topological inverse laws follow simultaneously. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□def completionInl
(_hη : ProCGroups.Completion.IsProCCompletion ProC F₀ Fhat η)
(j₁ : G₁ →ₜ* F₀) : G₁ →ₜ* Fhat :=
η.comp j₁The canonical left factor map into a pro-\(C\) completion of the topological free product model.
def completionInr
(_hη : ProCGroups.Completion.IsProCCompletion ProC F₀ Fhat η)
(j₂ : G₂ →ₜ* F₀) : G₂ →ₜ* Fhat :=
η.comp j₂The right factor map into a pro-\(C\) completion of a topological free product model.
@[simp 900] theorem completionInl_apply
(hη : ProCGroups.Completion.IsProCCompletion ProC F₀ Fhat η)
(j₁ : G₁ →ₜ* F₀) (x : G₁) :
completionInl (ProC := ProC) hη j₁ x = η (j₁ x)The completed left inclusion evaluates as \(\eta(j_1 x)\) in the pro-\(C\) completion.
Show proof
rflProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. The topological assertion is checked by the initial topology of the inverse limit. After composing with each finite-stage projection, the relevant map is a continuous finite-stage homomorphism or an operation on a finite product; compactness, Hausdorffness, total disconnectedness, and profiniteness are then inherited from the finite stages by the standard inverse-limit argument. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps.
□@[simp 900] theorem completionInr_apply
(hη : ProCGroups.Completion.IsProCCompletion ProC F₀ Fhat η)
(j₂ : G₂ →ₜ* F₀) (x : G₂) :
completionInr (ProC := ProC) hη j₂ x = η (j₂ x)The completed right inclusion evaluates as \(\eta(j_2 x)\) in the pro-\(C\) completion.
Show proof
rflProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. The topological assertion is checked by the initial topology of the inverse limit. After composing with each finite-stage projection, the relevant map is a continuous finite-stage homomorphism or an operation on a finite product; compactness, Hausdorffness, total disconnectedness, and profiniteness are then inherited from the finite stages by the standard inverse-limit argument. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps.
□theorem isFreeProCProduct_of_completion
(hF₀ : IsTopologicalFreeProduct j₁ j₂)
(hη : ProCGroups.Completion.IsProCCompletion ProC F₀ Fhat η) :
IsFreeProCProduct (ProC := ProC)
(completionInl (ProC := ProC) hη j₁)
(completionInr (ProC := ProC) hη j₂)A pro-\(C\) completion of a topological free product model is a free pro-\(C\) product. This is the construction theorem separating the topological-free-product model from the pro-\(C\) reflection/completion step.
Show proof
by
refine ⟨hη.isProC, ?_⟩
intro K _ _ _ hK φ₁ φ₂
let ψ₀ : F₀ →ₜ* K :=
{ toMonoidHom := hF₀.isFreeProduct.lift φ₁.toMonoidHom φ₂.toMonoidHom
continuous_toFun := hF₀.lift_continuous φ₁ φ₂ }
rcases hη.existsUnique_lift hK ψ₀ with ⟨Ψ, hΨ, huniq⟩
refine ⟨Ψ, ?_, ?_⟩
· constructor
· ext x
have hfacx := congrArg (fun f : F₀ →ₜ* K => f (j₁ x)) hΨ
have hleftx :=
congrArg (fun f : G₁ →* K => f x)
(hF₀.isFreeProduct.lift_left φ₁.toMonoidHom φ₂.toMonoidHom)
calc
Ψ (completionInl (ProC := ProC) hη j₁ x) = Ψ (η (j₁ x)) := rfl
_ = ψ₀ (j₁ x) := hfacx
_ = φ₁ x := hleftx
· ext x
have hfacx := congrArg (fun f : F₀ →ₜ* K => f (j₂ x)) hΨ
have hrightx :=
congrArg (fun f : G₂ →* K => f x)
(hF₀.isFreeProduct.lift_right φ₁.toMonoidHom φ₂.toMonoidHom)
calc
Ψ (completionInr (ProC := ProC) hη j₂ x) = Ψ (η (j₂ x)) := rfl
_ = ψ₀ (j₂ x) := hfacx
_ = φ₂ x := hrightx
· intro Χ hΧ
apply huniq
apply ContinuousMonoidHom.toMonoidHom_injective
apply hF₀.isFreeProduct.hom_ext
· ext x
have hΧx := congrArg (fun f : G₁ →ₜ* K => f x) hΧ.1
have hleftx :=
congrArg (fun f : G₁ →* K => f x)
(hF₀.isFreeProduct.lift_left φ₁.toMonoidHom φ₂.toMonoidHom)
calc
((Χ.comp η).toMonoidHom.comp j₁.toMonoidHom) x =
(Χ.comp (completionInl (ProC := ProC) hη j₁)) x := rfl
_ = φ₁ x := hΧx
_ = ψ₀ (j₁ x) := hleftx.symm
· ext x
have hΧx := congrArg (fun f : G₂ →ₜ* K => f x) hΧ.2
have hrightx :=
congrArg (fun f : G₂ →* K => f x)
(hF₀.isFreeProduct.lift_right φ₁.toMonoidHom φ₂.toMonoidHom)
calc
((Χ.comp η).toMonoidHom.comp j₂.toMonoidHom) x =
(Χ.comp (completionInr (ProC := ProC) hη j₂)) x := rfl
_ = φ₂ x := hΧx
_ = ψ₀ (j₂ x) := hrightx.symmProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. The topological assertion is checked by the initial topology of the inverse limit. After composing with each finite-stage projection, the relevant map is a continuous finite-stage homomorphism or an operation on a finite product; compactness, Hausdorffness, total disconnectedness, and profiniteness are then inherited from the finite stages by the standard inverse-limit argument. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps.
□theorem exists_isFreeProCProduct_of_completion
(hF₀ : IsTopologicalFreeProduct j₁ j₂)
(hη : ProCGroups.Completion.IsProCCompletion ProC F₀ Fhat η) :
∃ (ι₁hat : G₁ →ₜ* Fhat) (ι₂hat : G₂ →ₜ* Fhat),
IsFreeProCProduct (ProC := ProC) ι₁hat ι₂hatExistence form of \(isFreeProCProduct_of_completion\), exposing the completed factor maps as the constructed coproduct legs.
Show proof
⟨completionInl (ProC := ProC) hη j₁,
completionInr (ProC := ProC) hη j₂,
isFreeProCProduct_of_completion (ProC := ProC) hF₀ hη⟩Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. The topological assertion is checked by the initial topology of the inverse limit. After composing with each finite-stage projection, the relevant map is a continuous finite-stage homomorphism or an operation on a finite product; compactness, Hausdorffness, total disconnectedness, and profiniteness are then inherited from the finite stages by the standard inverse-limit argument. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps.
□theorem isProfiniteGroup
(hF : IsFreeProCProduct (ProC := ProCGroups.ProC.allFiniteProC) ι₁ ι₂) :
IsProfiniteGroup FThe underlying profiniteness of a free profinite product object.
Show proof
hF.isProCProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. For pro-\(C\) claims, the resulting finite quotients lie in \(C\) by the closure property used in the construction: closure under quotients, subgroups, finite products, or extensions. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. The topological assertion is checked by the initial topology of the inverse limit. After composing with each finite-stage projection, the relevant map is a continuous finite-stage homomorphism or an operation on a finite product; compactness, Hausdorffness, total disconnectedness, and profiniteness are then inherited from the finite stages by the standard inverse-limit argument.
□theorem hasProfiniteTestPushoutProperty
(hF : IsFreeProCProduct (ProC := ProCGroups.ProC.allFiniteProC) ι₁ ι₂) :
ProCGroups.Categorical.HasProfiniteTestPushoutProperty
(1 : ULift.{u, 0} Unit →ₜ* G₁) (1 : ULift.{u, 0} Unit →ₜ* G₂) ι₁ ι₂A binary free profinite product is a pushout over the trivial profinite group.
Show proof
by
constructor
· ext u
cases u
simp only [ContinuousMonoidHom.comp_toFun, ContinuousMonoidHom.one_toFun, map_one]
· intro K _ _ _ hK φ₁ φ₂ _hφ
refine ⟨hF.lift hK φ₁ φ₂, hF.lift_spec hK φ₁ φ₂, ?_⟩
intro ψ hψ
exact hF.lift_unique hK φ₁ φ₂ hψProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. For pro-\(C\) claims, the resulting finite quotients lie in \(C\) by the closure property used in the construction: closure under quotients, subgroups, finite products, or extensions. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. The topological assertion is checked by the initial topology of the inverse limit. After composing with each finite-stage projection, the relevant map is a continuous finite-stage homomorphism or an operation on a finite product; compactness, Hausdorffness, total disconnectedness, and profiniteness are then inherited from the finite stages by the standard inverse-limit argument. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□theorem of_hasProfiniteTestPushoutProperty (hF : IsProfiniteGroup F)
(hpo : ProCGroups.Categorical.HasProfiniteTestPushoutProperty
(1 : ULift.{u, 0} Unit →ₜ* G₁) (1 : ULift.{u, 0} Unit →ₜ* G₂) ι₁ ι₂) :
IsFreeProCProduct (ProC := ProCGroups.ProC.allFiniteProC) ι₁ ι₂A profinite pushout over the trivial group satisfies the binary free profinite-product universal property.
Show proof
by
refine ⟨hF, ?_⟩
intro K _ _ _ hK φ₁ φ₂
have hφ : φ₁.comp (1 : ULift.{u, 0} Unit →ₜ* G₁) =
φ₂.comp (1 : ULift.{u, 0} Unit →ₜ* G₂) := by
ext u
cases u
simp only [ContinuousMonoidHom.comp_toFun, ContinuousMonoidHom.one_toFun, map_one]
simpa using hpo.2 hK φ₁ φ₂ hφProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. For pro-\(C\) claims, the resulting finite quotients lie in \(C\) by the closure property used in the construction: closure under quotients, subgroups, finite products, or extensions. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. The topological assertion is checked by the initial topology of the inverse limit. After composing with each finite-stage projection, the relevant map is a continuous finite-stage homomorphism or an operation on a finite product; compactness, Hausdorffness, total disconnectedness, and profiniteness are then inherited from the finite stages by the standard inverse-limit argument. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□theorem iff_hasProfiniteTestPushoutProperty (hF : IsProfiniteGroup F) :
IsFreeProCProduct (ProC := ProCGroups.ProC.allFiniteProC) ι₁ ι₂ ↔
ProCGroups.Categorical.HasProfiniteTestPushoutProperty
(1 : ULift.{u, 0} Unit →ₜ* G₁) (1 : ULift.{u, 0} Unit →ₜ* G₂) ι₁ ι₂Binary free profinite products are exactly profinite pushouts over the trivial group.
Show proof
⟨hasProfiniteTestPushoutProperty, of_hasProfiniteTestPushoutProperty hF⟩Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. For pro-\(C\) claims, the resulting finite quotients lie in \(C\) by the closure property used in the construction: closure under quotients, subgroups, finite products, or extensions. Kernel and image statements are verified after quotienting by sufficiently small open normal subgroups, where they become ordinary finite group calculations. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Exactness is checked by separating injectivity, kernel containment, and image containment. Injectivity is either coordinatewise injectivity or the injectivity of a subtype inclusion; the kernel-to-image direction is obtained by packaging an element with the required vanishing proof, while the reverse direction is obtained by applying the next boundary or augmentation map and simplifying the defining relation.
□structure IsFreeProCProductFamily {A : Type u} (G : A → Type u)
[∀ a, Group (G a)] [∀ a, TopologicalSpace (G a)] [∀ a, IsTopologicalGroup (G a)]
{F : Type u} [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
(ι : ∀ a, G a →ₜ* F) : Prop where
isProC : ProC (G := F)
existsUnique_lift :
∀ {K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K],
ProC (G := K) →
∀ (φ : ∀ a, G a →ₜ* K),
∃! ψ : F →ₜ* K, ∀ a, ψ.comp (ι a) = φ aIndexed free pro-\(C\) products satisfy the strengthened universal property used for Kurosh-type decompositions.
noncomputable def lift (hF : IsFreeProCProductFamily (ProC := ProC) G ι)
{K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
(hK : ProC (G := K))
(φ : ∀ a, G a →ₜ* K) : F →ₜ* K :=
Classical.choose (ExistsUnique.exists (hF.existsUnique_lift hK φ))The universal property of a free pro-\(C\) product family supplies the descent morphism for the prescribed component maps.
@[simp] theorem lift_ι (hF : IsFreeProCProductFamily (ProC := ProC) G ι)
{K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
(hK : ProC (G := K))
(φ : ∀ a, G a →ₜ* K) (a : A) :
(hF.lift hK φ).comp (ι a) = φ aThe universal lift from a free pro-\(C\) product family restricts to the prescribed component map.
Show proof
Classical.choose_spec (ExistsUnique.exists (hF.existsUnique_lift hK φ)) aProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. For pro-\(C\) claims, the resulting finite quotients lie in \(C\) by the closure property used in the construction: closure under quotients, subgroups, finite products, or extensions. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For quotient and subgroup claims, representatives are chosen in the ambient group and the induced map is checked to send the class of an element to the class of its image. Normality, openness, and membership in the finite quotient class are preserved by the subgroup, quotient, intersection, or inverse-image closure property being invoked. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps.
□theorem lift_unique (hF : IsFreeProCProductFamily (ProC := ProC) G ι)
{K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
(hK : ProC (G := K))
(φ : ∀ a, G a →ₜ* K)
{ψ : F →ₜ* K} (hψ : ∀ a, ψ.comp (ι a) = φ a) :
ψ = hF.lift hK φUniqueness of the chosen free-product descent morphism.
Show proof
by
rcases hF.existsUnique_lift hK φ with ⟨u, hu, huuniq⟩
have hchosen : hF.lift hK φ = u := huuniq _ (fun a => hF.lift_ι hK φ a)
exact (huuniq _ hψ).trans hchosen.symmProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating. Consequently the two expressions have the same determining coordinates, and the defining extensionality principle for the inverse-limit, quotient, or presentation construction gives the claim in the statement.
□@[simp] theorem lift_self (hF : IsFreeProCProductFamily (ProC := ProC) G ι) :
hF.lift hF.isProC ι = ContinuousMonoidHom.id FThe distinguished descent map from a free product object to itself is the identity.
Show proof
by
symm
exact hF.lift_unique hF.isProC ι (fun _ => rfl)Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□theorem hom_ext (hF : IsFreeProCProductFamily (ProC := ProC) G ι)
{K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
(hK : ProC (G := K))
{ψ ψ' : F →ₜ* K}
(h : ∀ a, ψ.comp (ι a) = ψ'.comp (ι a)) :
ψ = ψ'Homomorphisms out of a free-product object are equal when they agree on the canonical factors.
Show proof
by
have hψ : ψ = hF.lift hK (fun a => ψ.comp (ι a)) := by
exact hF.lift_unique hK (fun a => ψ.comp (ι a)) (fun _ => rfl)
have hψ' : ψ' = hF.lift hK (fun a => ψ.comp (ι a)) := by
exact hF.lift_unique hK (fun a => ψ.comp (ι a)) (fun a => (h a).symm)
exact hψ.trans hψ'.symmProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating. Consequently the two expressions have the same determining coordinates, and the defining extensionality principle for the inverse-limit, quotient, or presentation construction gives the claim in the statement.
□noncomputable def compare
(hF : IsFreeProCProductFamily (ProC := ProC) G ι)
(hF' : IsFreeProCProductFamily (ProC := ProC) G ι') :
F →ₜ* F' :=
hF.lift hF'.isProC ι'The canonical comparison morphism between two free product objects on the same pair of factors.
@[simp 900] theorem compare_ι
(hF : IsFreeProCProductFamily (ProC := ProC) G ι)
(hF' : IsFreeProCProductFamily (ProC := ProC) G ι') (a : A) :
(hF.compare hF').comp (ι a) = ι' aThe free pro-\(C\) product comparison map preserves the canonical inclusion maps.
Show proof
hF.lift_ι hF'.isProC ι' aProof. Use the universal property of the free pro-\(C\) product and compare both maps after composing with each canonical inclusion.
□@[simp 900] theorem compare_self (hF : IsFreeProCProductFamily (ProC := ProC) G ι) :
hF.compare hF = ContinuousMonoidHom.id FThe canonical comparison map from a free product object to itself is the identity.
Show proof
by
exact hF.lift_selfProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□theorem compare_comp
(hF : IsFreeProCProductFamily (ProC := ProC) G ι)
(hF' : IsFreeProCProductFamily (ProC := ProC) G ι')
(hF'' : IsFreeProCProductFamily (ProC := ProC) G ι'') :
(hF'.compare hF'').comp (hF.compare hF') = hF.compare hF''Composition of free-product comparison maps is the expected direct comparison map.
Show proof
by
apply hF.hom_ext hF''.isProC
intro a
calc
((hF'.compare hF'').comp (hF.compare hF')).comp (ι a)
= (hF'.compare hF'').comp ((hF.compare hF').comp (ι a)) := by rfl
_ = (hF'.compare hF'').comp (ι' a) := by rw [hF.compare_ι hF' a]
_ = ι'' a := hF'.compare_ι hF'' a
_ = (hF.compare hF'').comp (ι a) := (hF.compare_ι hF'' a).symmProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□noncomputable def equiv
(hF : IsFreeProCProductFamily (ProC := ProC) G ι)
(hF' : IsFreeProCProductFamily (ProC := ProC) G ι') :
F ≃ₜ* F' := by
let φ : F →ₜ* F' := hF.compare hF'
let ψ : F' →ₜ* F := hF'.compare hF
have hleft : ψ.comp φ = ContinuousMonoidHom.id F := by
calc
ψ.comp φ = hF.compare hF := by
simpa [φ, ψ] using hF.compare_comp hF' hF
_ = ContinuousMonoidHom.id F := hF.compare_self
have hright : φ.comp ψ = ContinuousMonoidHom.id F' := by
calc
φ.comp ψ = hF'.compare hF' := by
simpa [φ, ψ] using hF'.compare_comp hF hF'
_ = ContinuousMonoidHom.id F' := hF'.compare_self
refine ContinuousMulEquiv.mk'
(Homeomorph.mk
(MonoidHom.toMulEquiv φ.toMonoidHom ψ.toMonoidHom
(by simpa using congrArg ContinuousMonoidHom.toMonoidHom hleft)
(by simpa using congrArg ContinuousMonoidHom.toMonoidHom hright))
φ.continuous_toFun ψ.continuous_toFun)
?_
intro x y
exact φ.map_mul x yAny two indexed-family free pro-\(C\) product objects on the same family of factors are canonically isomorphic.
@[simp] theorem equiv_ι
(hF : IsFreeProCProductFamily (ProC := ProC) G ι)
(hF' : IsFreeProCProductFamily (ProC := ProC) G ι') (a : A) :
((hF.equiv hF' : F →ₜ* F').comp (ι a)) = ι' aThe comparison equivalence respects the \(\iota\)-component of the free pro-\(C\) product family.
Show proof
by
exact hF.compare_ι hF' aProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. For pro-\(C\) claims, the resulting finite quotients lie in \(C\) by the closure property used in the construction: closure under quotients, subgroups, finite products, or extensions. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For quotient and subgroup claims, representatives are chosen in the ambient group and the induced map is checked to send the class of an element to the class of its image. Normality, openness, and membership in the finite quotient class are preserved by the subgroup, quotient, intersection, or inverse-image closure property being invoked. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps.
□theorem equiv_symm_ι
(hF : IsFreeProCProductFamily (ProC := ProC) G ι)
(hF' : IsFreeProCProductFamily (ProC := ProC) G ι') (a : A) :
(((hF.equiv hF').symm : F' →ₜ* F).comp (ι' a)) = ι aThe inverse comparison equivalence respects the \(\iota\)-component of the free pro-\(C\) product family.
Show proof
by
change (hF'.compare hF).comp (ι' a) = ι a
exact hF'.compare_ι hF aProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. For pro-\(C\) claims, the resulting finite quotients lie in \(C\) by the closure property used in the construction: closure under quotients, subgroups, finite products, or extensions. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For quotient and subgroup claims, representatives are chosen in the ambient group and the induced map is checked to send the class of an element to the class of its image. Normality, openness, and membership in the finite quotient class are preserved by the subgroup, quotient, intersection, or inverse-image closure property being invoked. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps.
□def ContinuousHomFamilyConvergesToOne {A : Type u} (G : A → Type u)
[∀ a, Group (G a)] [∀ a, TopologicalSpace (G a)]
{K : Type u} [Group K] [TopologicalSpace K]
(φ : ∀ a, G a →ₜ* K) : Prop :=
∀ U : OpenSubgroup K, {a | ¬ (φ a).toMonoidHom.range ≤ (U : Subgroup K)}.FiniteA family of continuous homomorphisms converges to \(1\) if every open subgroup of the target contains the image of all but finitely many components. This is the convergence hypothesis used in the indexed-family free pro-\(C\) product universal property.
theorem comp (hφ : ContinuousHomFamilyConvergesToOne G φ) (ψ : K →ₜ* L) :
ContinuousHomFamilyConvergesToOne G (fun a => ψ.comp (φ a))Postcomposing a convergent family of homomorphisms with a continuous homomorphism preserves convergence to \(1\).
Show proof
by
intro U
let V : OpenSubgroup K := OpenSubgroup.comap (f := ψ.toMonoidHom) ψ.continuous_toFun U
refine (hφ V).subset ?_
intro a ha hle
apply ha
intro y hy
rcases hy with ⟨x, rfl⟩
have hxV : φ a x ∈ (V : Subgroup K) := hle ⟨x, rfl⟩
simpa [V] using hxVProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. The topological assertion is checked by the initial topology of the inverse limit. After composing with each finite-stage projection, the relevant map is a continuous finite-stage homomorphism or an operation on a finite product; compactness, Hausdorffness, total disconnectedness, and profiniteness are then inherited from the finite stages by the standard inverse-limit argument. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps.
□structure IsIndexedFreeProCProductFamily {A : Type u} (G : A → Type u)
[∀ a, Group (G a)] [∀ a, TopologicalSpace (G a)] [∀ a, IsTopologicalGroup (G a)]
{F : Type u} [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
(ι : ∀ a, G a →ₜ* F) : Prop where
isProC : ProC (G := F)
inclusionsConverge : ContinuousHomFamilyConvergesToOne G ι
existsUnique_lift :
∀ {K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K],
ProC (G := K) →
∀ (φ : ∀ a, G a →ₜ* K),
ContinuousHomFamilyConvergesToOne G φ →
∃! ψ : F →ₜ* K, ∀ a, ψ.comp (ι a) = φ aIndexed free pro-\(C\) products in the infinite indexed-family form: the universal property is tested only against families of maps converging to \(1\), and the distinguished inclusions themselves converge to \(1\).
noncomputable def lift (hF : IsIndexedFreeProCProductFamily (ProC := ProC) G ι)
{K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
(hK : ProC (G := K))
(φ : ∀ a, G a →ₜ* K)
(hφ : ContinuousHomFamilyConvergesToOne G φ) : F →ₜ* K :=
Classical.choose (ExistsUnique.exists (hF.existsUnique_lift hK φ hφ))The universal property selects a descent morphism from an indexed free-product family object.
@[simp] theorem lift_ι (hF : IsIndexedFreeProCProductFamily (ProC := ProC) G ι)
{K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
(hK : ProC (G := K))
(φ : ∀ a, G a →ₜ* K)
(hφ : ContinuousHomFamilyConvergesToOne G φ) (a : A) :
(hF.lift hK φ hφ).comp (ι a) = φ aThe indexed universal lift from a free pro-\(C\) product family restricts to the prescribed component map.
Show proof
Classical.choose_spec (ExistsUnique.exists (hF.existsUnique_lift hK φ hφ)) aProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. For pro-\(C\) claims, the resulting finite quotients lie in \(C\) by the closure property used in the construction: closure under quotients, subgroups, finite products, or extensions. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For quotient and subgroup claims, representatives are chosen in the ambient group and the induced map is checked to send the class of an element to the class of its image. Normality, openness, and membership in the finite quotient class are preserved by the subgroup, quotient, intersection, or inverse-image closure property being invoked. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps.
□theorem lift_unique (hF : IsIndexedFreeProCProductFamily (ProC := ProC) G ι)
{K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
(hK : ProC (G := K))
(φ : ∀ a, G a →ₜ* K)
(hφ : ContinuousHomFamilyConvergesToOne G φ)
{ψ : F →ₜ* K} (hψ : ∀ a, ψ.comp (ι a) = φ a) :
ψ = hF.lift hK φ hφUniqueness of the chosen free-product descent morphism.
Show proof
by
rcases hF.existsUnique_lift hK φ hφ with ⟨u, hu, huuniq⟩
have hchosen : hF.lift hK φ hφ = u := huuniq _ (fun a => hF.lift_ι hK φ hφ a)
exact (huuniq _ hψ).trans hchosen.symmProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating. Consequently the two expressions have the same determining coordinates, and the defining extensionality principle for the inverse-limit, quotient, or presentation construction gives the claim in the statement.
□@[simp] theorem lift_self (hF : IsIndexedFreeProCProductFamily (ProC := ProC) G ι) :
hF.lift hF.isProC ι hF.inclusionsConverge = ContinuousMonoidHom.id FThe distinguished descent map from a free product object to itself is the identity.
Show proof
by
symm
exact hF.lift_unique hF.isProC ι hF.inclusionsConverge (fun _ => rfl)Proof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□theorem hom_ext (hF : IsIndexedFreeProCProductFamily (ProC := ProC) G ι)
{K : Type u} [Group K] [TopologicalSpace K] [IsTopologicalGroup K]
(hK : ProC (G := K))
{ψ ψ' : F →ₜ* K}
(h : ∀ a, ψ.comp (ι a) = ψ'.comp (ι a)) :
ψ = ψ'Homomorphisms out of a free-product object are equal when they agree on the canonical factors.
Show proof
by
have hconv :
ContinuousHomFamilyConvergesToOne G (fun a => ψ.comp (ι a)) :=
hF.inclusionsConverge.comp ψ
have hψ : ψ = hF.lift hK (fun a => ψ.comp (ι a)) hconv := by
exact hF.lift_unique hK (fun a => ψ.comp (ι a)) hconv (fun _ => rfl)
have hψ' : ψ' = hF.lift hK (fun a => ψ.comp (ι a)) hconv := by
exact hF.lift_unique hK (fun a => ψ.comp (ι a)) hconv (fun a => (h a).symm)
exact hψ.trans hψ'.symmProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Continuity is checked by composing with all finite quotient projections; each composite is a continuous map between finite or profinite quotient spaces. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating. Consequently the two expressions have the same determining coordinates, and the defining extensionality principle for the inverse-limit, quotient, or presentation construction gives the claim in the statement.
□noncomputable def compare
(hF : IsIndexedFreeProCProductFamily (ProC := ProC) G ι)
(hF' : IsIndexedFreeProCProductFamily (ProC := ProC) G ι') :
F →ₜ* F' :=
hF.lift hF'.isProC ι' hF'.inclusionsConvergeThe canonical comparison morphism between two free product objects on the same pair of factors.
@[simp 900] theorem compare_ι
(hF : IsIndexedFreeProCProductFamily (ProC := ProC) G ι)
(hF' : IsIndexedFreeProCProductFamily (ProC := ProC) G ι') (a : A) :
(hF.compare hF').comp (ι a) = ι' aThe indexed free pro-\(C\) product comparison map preserves the canonical inclusion maps.
Show proof
hF.lift_ι hF'.isProC ι' hF'.inclusionsConverge aProof. Use the indexed universal property and compare both maps after composing with each canonical inclusion.
□@[simp 900] theorem compare_self (hF : IsIndexedFreeProCProductFamily (ProC := ProC) G ι) :
hF.compare hF = ContinuousMonoidHom.id FThe canonical comparison map from a free product object to itself is the identity.
Show proof
by
exact hF.lift_selfProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□theorem compare_comp
(hF : IsIndexedFreeProCProductFamily (ProC := ProC) G ι)
(hF' : IsIndexedFreeProCProductFamily (ProC := ProC) G ι')
(hF'' : IsIndexedFreeProCProductFamily (ProC := ProC) G ι'') :
(hF'.compare hF'').comp (hF.compare hF') = hF.compare hF''Composition of free-product comparison maps is the expected direct comparison map.
Show proof
by
apply hF.hom_ext hF''.isProC
intro a
calc
((hF'.compare hF'').comp (hF.compare hF')).comp (ι a)
= (hF'.compare hF'').comp ((hF.compare hF').comp (ι a)) := by rfl
_ = (hF'.compare hF'').comp (ι' a) := by rw [hF.compare_ι hF' a]
_ = ι'' a := hF'.compare_ι hF'' a
_ = (hF.compare hF'').comp (ι a) := (hF.compare_ι hF'' a).symmProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps. For pro-\(C\) claims, the finite quotient obtained from the construction remains in \(C\) by the relevant closure axiom, such as closure under subgroups, quotients, finite products, or extensions. The universal or lifting property is then checked on the prescribed generators, and uniqueness follows because the generators are dense or topologically generating.
□noncomputable def equiv
(hF : IsIndexedFreeProCProductFamily (ProC := ProC) G ι)
(hF' : IsIndexedFreeProCProductFamily (ProC := ProC) G ι') :
F ≃ₜ* F' := by
let φ : F →ₜ* F' := hF.compare hF'
let ψ : F' →ₜ* F := hF'.compare hF
have hleft : ψ.comp φ = ContinuousMonoidHom.id F := by
calc
ψ.comp φ = hF.compare hF := by
simpa [φ, ψ] using hF.compare_comp hF' hF
_ = ContinuousMonoidHom.id F := hF.compare_self
have hright : φ.comp ψ = ContinuousMonoidHom.id F' := by
calc
φ.comp ψ = hF'.compare hF' := by
simpa [φ, ψ] using hF'.compare_comp hF hF'
_ = ContinuousMonoidHom.id F' := hF'.compare_self
refine ContinuousMulEquiv.mk'
(Homeomorph.mk
(MonoidHom.toMulEquiv φ.toMonoidHom ψ.toMonoidHom
(by simpa using congrArg ContinuousMonoidHom.toMonoidHom hleft)
(by simpa using congrArg ContinuousMonoidHom.toMonoidHom hright))
φ.continuous_toFun ψ.continuous_toFun)
?_
intro x y
exact φ.map_mul x yAny two indexed free pro-\(C\) product objects on the same indexed family of factors are canonically isomorphic.
@[simp] theorem equiv_ι
(hF : IsIndexedFreeProCProductFamily (ProC := ProC) G ι)
(hF' : IsIndexedFreeProCProductFamily (ProC := ProC) G ι') (a : A) :
((hF.equiv hF' : F →ₜ* F').comp (ι a)) = ι' aThe indexed comparison equivalence respects the \(\iota\)-component of the free pro-\(C\) product family.
Show proof
by
exact hF.compare_ι hF' aProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. For pro-\(C\) claims, the resulting finite quotients lie in \(C\) by the closure property used in the construction: closure under quotients, subgroups, finite products, or extensions. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For quotient and subgroup claims, representatives are chosen in the ambient group and the induced map is checked to send the class of an element to the class of its image. Normality, openness, and membership in the finite quotient class are preserved by the subgroup, quotient, intersection, or inverse-image closure property being invoked. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps.
□theorem equiv_symm_ι
(hF : IsIndexedFreeProCProductFamily (ProC := ProC) G ι)
(hF' : IsIndexedFreeProCProductFamily (ProC := ProC) G ι') (a : A) :
(((hF.equiv hF').symm : F' →ₜ* F).comp (ι' a)) = ι aThe inverse indexed comparison equivalence respects the \(\iota\)-component of the free pro-\(C\) product family.
Show proof
by
change (hF'.compare hF).comp (ι' a) = ι a
exact hF'.compare_ι hF aProof. Work with open normal subgroups and finite quotients of the profinite or pro-\(C\) group. Finite quotients separate points, and continuous homomorphisms are determined by their compatible quotient-level maps. For pro-\(C\) claims, the resulting finite quotients lie in \(C\) by the closure property used in the construction: closure under quotients, subgroups, finite products, or extensions. Compatibility under refinement then assembles the finite-quotient data and proves the required profinite or pro-\(C\) statement. The quotient-level assertions are stable under passing to smaller open normal subgroups, so they define compatible data in the inverse system of finite quotients. For pro-\(C\) permanence, the construction uses only operations for which the chosen finite group class is closed. Hence the finite verification assembles to the desired profinite map, subgroup, or quotient statement. For categorical constructions such as products, pullbacks, and inverse limits, the universal property is checked by composing with the coordinate projections. The uniqueness part follows because any two candidate maps with the same finite quotient composites have the same value on every separating finite quotient. Existence is obtained by assembling the compatible coordinate maps supplied by the finite quotient construction. For quotient and subgroup claims, representatives are chosen in the ambient group and the induced map is checked to send the class of an element to the class of its image. Normality, openness, and membership in the finite quotient class are preserved by the subgroup, quotient, intersection, or inverse-image closure property being invoked. Functoriality and naturality are proved by comparing the two composites after projection to an arbitrary target stage. The source stage is the pullback or refined quotient required by the construction, and both composites are induced by the same quotient homomorphism together with the same coefficient map; hence the coordinate maps agree and so do the completed maps.
□