ProCGroups.FreeProC.FinitelyGenerated

14 Theorem | 3 Definition | 2 Structure

This module develops the maps induced by continuous homomorphisms. It organizes the relevant quotient pullbacks and finite-stage maps, then proves the compatibility statements needed for the completed construction.

import
Imported by

Declarations

theorem existsUnique_liftHom_of_finite
    (C : ProCGroups.FiniteGroupClass.{u})
    [hVar : Fact (ProCGroups.FiniteGroupClass.Variety C)]
    [hIso : Fact (ProCGroups.FiniteGroupClass.IsomClosed C)]
    {X : Type v} [Finite X]
    {F : Type u} [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
    {ι : X → F}
    (hι :
      IsFreeProCGroupOnConvergingSet
        (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) X F ι)
    {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
    (hG : (ProCGroups.ProC.finiteGroupClassProCPredicate C) (G := G))
    (φ : X → G) :
    ∃! f : F →ₜ* G, ∀ x, f (ι x) = φ x

For a finite basis and a concrete finite-group class, every target map has a unique continuous lift. This is the finite-rank replacement for repeatedly supplying the automatic convergence-to-\(1\) proof.

Show proof
noncomputable def liftHomOfFinite
    (C : ProCGroups.FiniteGroupClass.{u})
    [Fact (ProCGroups.FiniteGroupClass.Variety C)]
    [Fact (ProCGroups.FiniteGroupClass.IsomClosed C)]
    {X : Type v} [Finite X]
    {F : Type u} [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
    {ι : X → F}
    (hι :
      IsFreeProCGroupOnConvergingSet
        (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) X F ι)
    {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
    (hG : (ProCGroups.ProC.finiteGroupClassProCPredicate C) (G := G))
    (φ : X → G) :
    F →ₜ* G :=
  Classical.choose
    (ExistsUnique.exists
      (hι.existsUnique_liftHom_of_finite C hG φ))

The finite-rank lift of a map from the basis into a concrete finite-class pro-\(C\) target.

@[simp] theorem liftHomOfFinite_apply
    (C : ProCGroups.FiniteGroupClass.{u})
    [Fact (ProCGroups.FiniteGroupClass.Variety C)]
    [Fact (ProCGroups.FiniteGroupClass.IsomClosed C)]
    {X : Type v} [Finite X]
    {F : Type u} [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
    {ι : X → F}
    (hι :
      IsFreeProCGroupOnConvergingSet
        (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) X F ι)
    {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
    (hG : (ProCGroups.ProC.finiteGroupClassProCPredicate C) (G := G))
    (φ : X → G) (x : X) :
    hι.liftHomOfFinite C hG φ (ι x) = φ x

The finite-domain lift homomorphism from a free pro-\(C\) group on a converging set evaluates according to the chosen generator map.

Show proof
theorem liftHomOfFinite_unique
    (C : ProCGroups.FiniteGroupClass.{u})
    [Fact (ProCGroups.FiniteGroupClass.Variety C)]
    [Fact (ProCGroups.FiniteGroupClass.IsomClosed C)]
    {X : Type v} [Finite X]
    {F : Type u} [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
    {ι : X → F}
    (hι :
      IsFreeProCGroupOnConvergingSet
        (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) X F ι)
    {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
    (hG : (ProCGroups.ProC.finiteGroupClassProCPredicate C) (G := G))
    (φ : X → G)
    {f : F →ₜ* G} (hf : ∀ x, f (ι x) = φ x) :
    f = hι.liftHomOfFinite C hG φ

The finite-rank lift is unique among continuous homomorphisms with the prescribed basis values.

Show proof
theorem isFreeProCGroup_of_finite
    (C : ProCGroups.FiniteGroupClass.{u})
    [hVar : Fact (ProCGroups.FiniteGroupClass.Variety C)]
    [hIso : Fact (ProCGroups.FiniteGroupClass.IsomClosed C)]
    {X : Type u} [TopologicalSpace X] [DiscreteTopology X] [Finite X]
    {F : Type u} [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
    {ι : X → F}
    (hι :
      IsFreeProCGroupOnConvergingSet
        (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) X F ι) :
    IsFreeProCGroup (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) ι

A finite discrete converging-set basis gives the usual free pro-\(C\) universal property for a concrete finite-group class.

Show proof
structure FiniteRankData
    (ProC : ProCGroups.ProC.ProCGroupPredicate.{u}) (n : ℕ) where
  carrier : Type u
  instGroup : Group carrier
  instTopologicalSpace : TopologicalSpace carrier
  instIsTopologicalGroup : IsTopologicalGroup carrier
  inclusion : Fin n → carrier
  isFree : IsFreeProCGroupOnConvergingSet (ProC := ProC) (Fin n) carrier inclusion

A free pro-\(C\) group with an explicit finite basis \(\operatorname{Fin} n\).

theorem isProC (Fdata : FiniteRankData ProC n) :
    ProC (G := Fdata.carrier)

The carrier of finite-rank free pro-\(C\) data is a pro-\(C\) group.

Show proof
theorem hom_ext
    (Fdata : FiniteRankData ProC n)
    {G : Type u} [Group G] [TopologicalSpace G] [T2Space G]
    {f g : Fdata.carrier →ₜ* G}
    (hfg : ∀ i, f (Fdata.inclusion i) = g (Fdata.inclusion i)) :
    f = g

Homomorphisms out of finite-rank free pro-\(C\) data are determined by the finite basis.

Show proof
noncomputable def liftHom
    (C : ProCGroups.FiniteGroupClass.{u})
    [Fact (ProCGroups.FiniteGroupClass.Variety C)]
    [Fact (ProCGroups.FiniteGroupClass.IsomClosed C)]
    {n : ℕ}
    (Fdata :
      FiniteRankData
        (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) n)
    {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
    (hG : (ProCGroups.ProC.finiteGroupClassProCPredicate C) (G := G))
    (φ : Fin n → G) :
    Fdata.carrier →ₜ* G :=
  Fdata.isFree.liftHomOfFinite C hG φ

A map from a finite basis lifts to the concrete finite-class pro-\(C\) target.

@[simp] theorem liftHom_apply
    (C : ProCGroups.FiniteGroupClass.{u})
    [Fact (ProCGroups.FiniteGroupClass.Variety C)]
    [Fact (ProCGroups.FiniteGroupClass.IsomClosed C)]
    {n : ℕ}
    (Fdata :
      FiniteRankData
        (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) n)
    {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
    (hG : (ProCGroups.ProC.finiteGroupClassProCPredicate C) (G := G))
    (φ : Fin n → G) (i : Fin n) :
    Fdata.liftHom C hG φ (Fdata.inclusion i) = φ i

The finite-rank free pro-\(C\) lift evaluates according to the chosen map on the finite basis.

Show proof
theorem liftHom_unique
    (C : ProCGroups.FiniteGroupClass.{u})
    [Fact (ProCGroups.FiniteGroupClass.Variety C)]
    [Fact (ProCGroups.FiniteGroupClass.IsomClosed C)]
    {n : ℕ}
    (Fdata :
      FiniteRankData
        (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) n)
    {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
    (hG : (ProCGroups.ProC.finiteGroupClassProCPredicate C) (G := G))
    (φ : Fin n → G)
    {f : Fdata.carrier →ₜ* G} (hf : ∀ i, f (Fdata.inclusion i) = φ i) :
    f = Fdata.liftHom C hG φ

The finite-rank lift is unique among continuous homomorphisms with the prescribed values on the finite basis.

Show proof
noncomputable def equivOfSameRank
    (Fdata Edata : FiniteRankData ProC n) :
    Fdata.carrier ≃ₜ* Edata.carrier :=
  Fdata.isFree.continuousMulEquivOfSameBasis Edata.isFree

The canonical continuous multiplicative equivalence between two finite-rank free pro-\(C\) groups with the same rank.

@[simp] theorem equivOfSameRank_apply
    (Fdata Edata : FiniteRankData ProC n) (i : Fin n) :
    Fdata.equivOfSameRank Edata (Fdata.inclusion i) = Edata.inclusion i

The finite-rank comparison equivalence evaluates according to the chosen rank data.

Show proof
structure FiniteSubsetSystem
    (ProC : ProCGroups.ProC.ProCGroupPredicate.{u})
    (X : Type u)
    (F : Type u) [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
    (ι : X → F) where
  system : TopologicalGroupInverseSystemData (I := FiniteSubset X)
  basis : ∀ s : FiniteSubset X, ↥s.1 → system.toInverseSystem.X s
  stage_isFree :
    ∀ s : FiniteSubset X,
      IsFreeProCGroupOnConvergingSet (ProC := ProC)
        ↥s.1 (system.toInverseSystem.X s) (basis s)
  transition_basis :
    ∀ {s t : FiniteSubset X} (hst : s ≤ t) (x : ↥t.1),
      system.toInverseSystem.map hst (basis t x) =
        by
          classical
          exact if hx : x.1 ∈ s.1 then basis s ⟨x.1, hx⟩ else 1
  stage_embedding :
    ∀ s : FiniteSubset X,
      ∃ e : system.toInverseSystem.X s →* F,
        Continuous e ∧
          Function.Injective e ∧
          IsClosed (Set.range e) ∧
          ∀ x : ↥s.1, e (basis s x) = ι x.1
  limitEquiv : Nonempty (F ≃ₜ* system.toInverseSystem.inverseLimit)

The finite-subset inverse system is attached to a free pro-\(C\) group on a basis converging to \(1\). For an infinite basis this is the usual projective system over all finite subsets of the basis.

theorem exists_finiteSubsetSystem
    {ProC : ProCGroups.ProC.ProCGroupPredicate.{u}}
    {X : Type u}
    {F : Type u} [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
    {ι : X → F}
    (hProfinite :
      ∀ {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G],
        @ProCGroups.ProC.ProCGroupPredicate.holds ProC G _ _ _ →
          InverseSystems.IsProfiniteSpace G)
    (hClosed :
      ∀ {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
        (_hG : @ProCGroups.ProC.ProCGroupPredicate.holds ProC G _ _ _)
        (H : Subgroup G), IsClosed (H : Set G) →
          @ProCGroups.ProC.ProCGroupPredicate.holds ProC H _ _ _)
    (hFiniteQuot :
      ∀ {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
        (_hG : @ProCGroups.ProC.ProCGroupPredicate.holds ProC G _ _ _)
        (U : OpenNormalSubgroup G),
          @ProCGroups.ProC.ProCGroupPredicate.holds ProC (G ⧸ (U : Subgroup G)) _ _ _)
    (hF : IsFreeProCGroupOnConvergingSet (ProC := ProC) X F ι) :
    Nonempty (FiniteSubsetSystem ProC X F ι)

This declaration constructs the packaged finite-subset system from the explicit permanence hypotheses used by the general finite-subset theorem.

Show proof
theorem isLimit_finiteSubsets
    {ProC : ProCGroups.ProC.ProCGroupPredicate.{u}}
    {X : Type u}
    {F : Type u} [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
    {ι : X → F}
    (hProfinite :
      ∀ {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G],
        @ProCGroups.ProC.ProCGroupPredicate.holds ProC G _ _ _ →
          InverseSystems.IsProfiniteSpace G)
    (hClosed :
      ∀ {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
        (_hG : @ProCGroups.ProC.ProCGroupPredicate.holds ProC G _ _ _)
        (H : Subgroup G), IsClosed (H : Set G) →
          @ProCGroups.ProC.ProCGroupPredicate.holds ProC H _ _ _)
    (hFiniteQuot :
      ∀ {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
        (_hG : @ProCGroups.ProC.ProCGroupPredicate.holds ProC G _ _ _)
        (U : OpenNormalSubgroup G),
          @ProCGroups.ProC.ProCGroupPredicate.holds ProC (G ⧸ (U : Subgroup G)) _ _ _)
    (hF : IsFreeProCGroupOnConvergingSet (ProC := ProC) X F ι) :
    ∃ S : FiniteSubsetSystem ProC X F ι,
      Nonempty (F ≃ₜ* S.system.toInverseSystem.inverseLimit)

A free pro-\(C\) group on a basis converging to \(1\) is a projective limit of the finite-rank free pro-\(C\) groups attached to all finite subsets of the basis.

Show proof
theorem isLimit_finiteSubsets_of_infinite
    {ProC : ProCGroups.ProC.ProCGroupPredicate.{u}}
    {X : Type u} [Infinite X]
    {F : Type u} [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
    {ι : X → F}
    (hProfinite :
      ∀ {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G],
        @ProCGroups.ProC.ProCGroupPredicate.holds ProC G _ _ _ →
          InverseSystems.IsProfiniteSpace G)
    (hClosed :
      ∀ {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
        (_hG : @ProCGroups.ProC.ProCGroupPredicate.holds ProC G _ _ _)
        (H : Subgroup G), IsClosed (H : Set G) →
          @ProCGroups.ProC.ProCGroupPredicate.holds ProC H _ _ _)
    (hFiniteQuot :
      ∀ {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
        (_hG : @ProCGroups.ProC.ProCGroupPredicate.holds ProC G _ _ _)
        (U : OpenNormalSubgroup G),
          @ProCGroups.ProC.ProCGroupPredicate.holds ProC (G ⧸ (U : Subgroup G)) _ _ _)
    (hF : IsFreeProCGroupOnConvergingSet (ProC := ProC) X F ι) :
    ∃ S : FiniteSubsetSystem ProC X F ι,
      Nonempty (F ≃ₜ* S.system.toInverseSystem.inverseLimit)

Infinite-basis spelling of the finite-subset projective-limit theorem. The argument is the same as in the arbitrary-basis theorem, but this name is convenient for the standard infinite-rank use case.

Show proof
theorem exists_finiteSubsetSystem_of_class
    (C : ProCGroups.FiniteGroupClass.{u})
    [hVar : Fact (ProCGroups.FiniteGroupClass.Variety C)]
    [hIso : Fact (ProCGroups.FiniteGroupClass.IsomClosed C)]
    {X : Type u}
    {F : Type u} [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
    {ι : X → F}
    (hF :
      IsFreeProCGroupOnConvergingSet
        (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) X F ι) :
    Nonempty
      (FiniteSubsetSystem
        (ProCGroups.ProC.finiteGroupClassProCPredicate C) X F ι)

For a chosen finite group class, the finite-subset projective-limit system exists.

Show proof
theorem isLimit_finiteSubsets_of_class_of_infinite
    (C : ProCGroups.FiniteGroupClass.{u})
    [Fact (ProCGroups.FiniteGroupClass.Variety C)]
    [Fact (ProCGroups.FiniteGroupClass.IsomClosed C)]
    {X : Type u} [Infinite X]
    {F : Type u} [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
    {ι : X → F}
    (hF :
      IsFreeProCGroupOnConvergingSet
        (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) X F ι) :
    ∃ S : FiniteSubsetSystem
      (ProCGroups.ProC.finiteGroupClassProCPredicate C) X F ι,
      Nonempty (F ≃ₜ* S.system.toInverseSystem.inverseLimit)

For a chosen finite group class, a free pro-\(C\) group on an infinite basis is the projective limit of its finite-subset free pro-\(C\) groups.

Show proof