CrowellExactSequence.Profinite.FreeProCSourceData

10 Theorem | 3 Definition | 1 Structure | 1 Instance

This module develops the Crowell--Blanchfield--Lyndon exact sequence and its completed coordinate forms.

import
Imported by

Declarations

structure FreeProCSourceData (ProC : ProCGroupPredicate.{u}) where
  basis : Type u
  carrier : Type u
  instGroup : Group carrier
  instTopologicalSpace : TopologicalSpace carrier
  instIsTopologicalGroup : IsTopologicalGroup carrier
  inclusion : basis → carrier
  isFree :
    ProCGroups.FreeProC.IsFreeProCGroupOnConvergingSet
      (ProC := ProC) basis carrier inclusion
  proCGroup : ProCGroup ProC carrier

Packaged carrier for a free pro-\(C\) group on a set converging to \(1\).

instance FreeProCSourceData.instProCGroup
    {ProC : ProCGroupPredicate.{u}} (sourceData : FreeProCSourceData ProC) :
    ProCGroup ProC sourceData.carrier :=
  sourceData.proCGroup

The profinite group carried by the free pro-\(C\) source data is pro-\(C\), because its finite quotients lie in the prescribed class and the class is stable under the required operations.

def freeProCChosenBasisEquivOfBasisCard
    {ProC : ProCGroupPredicate.{u}} (sourceData : FreeProCSourceData ProC)
    {n : Nat} (hbasis : Cardinal.mk sourceData.basis = n) :
    sourceData.basis ≃ Fin n :=
  Classical.choice ((Cardinal.mk_eq_nat_iff).1 hbasis)

Choose an equivalence from a finite free pro-\(C\) basis to \(\operatorname{Fin} n\).

def freeProCChosenFamilyOfBasisCard
    {ProC : ProCGroupPredicate.{u}} (sourceData : FreeProCSourceData ProC)
    {n : Nat} (hbasis : Cardinal.mk sourceData.basis = n) :
    Fin n → sourceData.carrier :=
  fun i =>
    sourceData.inclusion
      ((freeProCChosenBasisEquivOfBasisCard (ProC := ProC) sourceData hbasis).symm i)

The concrete \(\operatorname{Fin} n\)-indexed family obtained from the chosen free pro-\(C\) basis.

def freeProCChosenULiftFamilyOfBasisCard
    {ProC : ProCGroupPredicate.{u}} (sourceData : FreeProCSourceData ProC)
    {n : Nat} (hbasis : Cardinal.mk sourceData.basis = n) :
    ULift.{u} (Fin n) → sourceData.carrier :=
  fun i => freeProCChosenFamilyOfBasisCard (ProC := ProC) sourceData hbasis i.down

The universe-lifted chosen finite family. ProGroups' free pro-\(C\) formulation keeps the generator space in the same universe as the carrier, while \(\operatorname{Fin} n\) lives in universe 0; this is the canonical lifted version used when invoking that formulation.

theorem freeProCChosenULiftFamilyOfBasisCard_range
    {ProC : ProCGroupPredicate.{u}} (sourceData : FreeProCSourceData ProC)
    {n : Nat} (hbasis : Cardinal.mk sourceData.basis = n) :
    Set.range (freeProCChosenULiftFamilyOfBasisCard (ProC := ProC) sourceData hbasis) =
      Set.range (freeProCChosenFamilyOfBasisCard (ProC := ProC) sourceData hbasis)

The lifted chosen family has the same range as the concrete \(\operatorname{Fin} n\) family.

Show proof
theorem freeProCChosenFamilyOfBasisCard_isFree
    {ProC : ProCGroupPredicate.{u}} (sourceData : FreeProCSourceData ProC)
    {n : Nat} (hbasis : Cardinal.mk sourceData.basis = n) :
    ProCGroups.FreeProC.IsFreeProCGroupOnConvergingSet
      (ProC := ProC) (Fin n) sourceData.carrier
      (freeProCChosenFamilyOfBasisCard (ProC := ProC) sourceData hbasis)

The concrete \(\operatorname{Fin} n\)-indexed chosen family is the same free pro-\(C\) converging basis, reindexed. This is the finite-coordinate form used by the Crowell exactness assembly.

Show proof
theorem freeProCChosenULiftFamilyOfBasisCard_isFree
    {ProC : ProCGroupPredicate.{u}} (sourceData : FreeProCSourceData ProC)
    {n : Nat} (hbasis : Cardinal.mk sourceData.basis = n) :
    ProCGroups.FreeProC.IsFreeProCGroupOnConvergingSet
      (ProC := ProC) (ULift.{u} (Fin n)) sourceData.carrier
      (freeProCChosenULiftFamilyOfBasisCard (ProC := ProC) sourceData hbasis)

Reindexing identifies the lifted chosen \(\operatorname{Fin} n\)-indexed family with the same free pro-\(C\) converging basis.

Show proof
theorem freeProCChosenFamilyOfBasisCard_generates
    {ProC : ProCGroupPredicate.{u}} (sourceData : FreeProCSourceData ProC)
    {n : Nat} (hbasis : Cardinal.mk sourceData.basis = n) :
    ProCGroups.Generation.TopologicallyGenerates
      (G := sourceData.carrier)
      (Set.range (freeProCChosenFamilyOfBasisCard (ProC := ProC) sourceData hbasis))

Reindexing the chosen basis by \(\operatorname{Fin} n\) preserves topological generation.

Show proof
theorem freeProCChosenFamilyOfBasisCard_image_convergesToOne
    {ProC : ProCGroupPredicate.{u}} (sourceData : FreeProCSourceData ProC)
    {n : Nat} (hbasis : Cardinal.mk sourceData.basis = n)
    {H : Type u} [Group H] [TopologicalSpace H] (ψ : sourceData.carrier → H) :
    ProCGroups.FreeProC.FamilyConvergesToOne
      (G := H)
      (fun i : Fin n =>
        ψ (freeProCChosenFamilyOfBasisCard (ProC := ProC) sourceData hbasis i))

The image of the concrete chosen finite free basis under any map converges to \(1\), because the indexing type is finite.

Show proof
theorem freeProCChosenFamilyOfBasisCard_image_generates_of_surjective
    {ProC : ProCGroupPredicate.{u}} (sourceData : FreeProCSourceData ProC)
    {n : Nat} (hbasis : Cardinal.mk sourceData.basis = n)
    {H : Type u} [Group H] [TopologicalSpace H] [IsTopologicalGroup H]
    (psi : ContinuousMonoidHom sourceData.carrier H) (hpsi : Function.Surjective psi) :
    ProCGroups.Generation.TopologicallyGenerates
      (G := H)
      (Set.range
        (fun i : Fin n =>
          psi (freeProCChosenFamilyOfBasisCard (ProC := ProC) sourceData hbasis i)))

A surjective continuous homomorphism carries the chosen finite free basis to a topological generating family of the target.

Show proof
theorem freeProCChosenULiftFamilyOfBasisCard_generates
    {ProC : ProCGroupPredicate.{u}} (sourceData : FreeProCSourceData ProC)
    {n : Nat} (hbasis : Cardinal.mk sourceData.basis = n) :
    ProCGroups.Generation.TopologicallyGenerates
      (G := sourceData.carrier)
      (Set.range (freeProCChosenULiftFamilyOfBasisCard (ProC := ProC) sourceData hbasis))

The universe-lifted chosen family also topologically generates the free pro-\(C\) source.

Show proof
theorem freeProCChosenULiftFamilyOfBasisCard_image_convergesToOne
    {ProC : ProCGroupPredicate.{u}} (sourceData : FreeProCSourceData ProC)
    {n : Nat} (hbasis : Cardinal.mk sourceData.basis = n)
    {H : Type u} [Group H] [TopologicalSpace H]
    (ψ : sourceData.carrier →* H) :
    ProCGroups.FreeProC.FamilyConvergesToOne
      (G := H)
      (fun i : ULift.{u} (Fin n) =>
        ψ (freeProCChosenULiftFamilyOfBasisCard (ProC := ProC) sourceData hbasis i))

The image of the finite lifted basis under any target homomorphism converges to \(1\) in the converging-set sense used by the free pro-\(C\) formulation.

Show proof
theorem freeProCChosenULiftFamilyOfBasisCard_image_generates_of_surjective
    {ProC : ProCGroupPredicate.{u}} (sourceData : FreeProCSourceData ProC)
    {n : Nat} (hbasis : Cardinal.mk sourceData.basis = n)
    {H : Type u} [Group H] [TopologicalSpace H] [IsTopologicalGroup H]
    (psi : ContinuousMonoidHom sourceData.carrier H) (hpsi : Function.Surjective psi) :
    ProCGroups.Generation.TopologicallyGenerates
      (G := H)
      (Set.range
        (fun i : ULift.{u} (Fin n) =>
          psi (freeProCChosenULiftFamilyOfBasisCard (ProC := ProC) sourceData hbasis i)))

A surjective continuous homomorphism carries the lifted chosen finite free basis to a topological generating family of the target.

Show proof
theorem freeProCChosenULiftFamilyOfBasisCard_liftHom_eq_of_surjective
    {ProC : ProCGroupPredicate.{u}} (sourceData : FreeProCSourceData ProC)
    {n : Nat} (hbasis : Cardinal.mk sourceData.basis = n)
    {H : Type u} [Group H] [TopologicalSpace H] [IsTopologicalGroup H]
    (hH : ProC (G := H))
    (psi : ContinuousMonoidHom sourceData.carrier H) (hpsi : Function.Surjective psi) :
    (freeProCChosenULiftFamilyOfBasisCard_isFree (ProC := ProC) sourceData hbasis).liftHom hH
        (fun i : ULift.{u} (Fin n) =>
          psi (freeProCChosenULiftFamilyOfBasisCard (ProC := ProC) sourceData hbasis i))
        (freeProCChosenULiftFamilyOfBasisCard_image_convergesToOne
          (ProC := ProC) sourceData hbasis psi.toMonoidHom)
        (freeProCChosenULiftFamilyOfBasisCard_image_generates_of_surjective
          (ProC := ProC) sourceData hbasis psi hpsi) =
      psi

For the lifted finite free basis, the converging-set universal lift of a surjective target map is the target map itself. This is the concrete bridge needed when Fox constructions produce a right component from the universal property.

Show proof