ProCGroups.FreeProC.Criteria.InverseLimitsAndFiniteSubsets

9 Theorem | 2 Definition | 1 Abbreviation | 3 Structure | 1 Instance

This module sets up the finite-stage and inverse-limit description of the construction. It records the stage maps, projections, and comparison lemmas used to pass back to the completed object.

import
Imported by

Declarations

structure TopologicalGroupInverseSystemData where
  toInverseSystem : ProCGroups.InverseSystems.InverseSystem (I := I)
  group : ∀ i, Group (toInverseSystem.X i)
  isGroupSystem : ProCGroups.InverseSystems.IsGroupSystem toInverseSystem
  isTopologicalGroup : ∀ i, IsTopologicalGroup (toInverseSystem.X i)
  inverseLimit_isTopologicalGroup :
    letI : ∀ i, Group (toInverseSystem.X i) := group
    letI : ProCGroups.InverseSystems.IsGroupSystem toInverseSystem := isGroupSystem
    letI : ∀ i, IsTopologicalGroup (toInverseSystem.X i) := isTopologicalGroup
    IsTopologicalGroup toInverseSystem.inverseLimit

A bundled inverse system of topological groups.

instance instInverseLimitIsTopologicalGroupTopologicalGroupInverseSystemData
    (S : TopologicalGroupInverseSystemData (I := I)) :
    IsTopologicalGroup S.toInverseSystem.inverseLimit := by
  simpa using S.inverseLimit_isTopologicalGroup

The finite-stage inverse system carries the bundled structure determined by its transition maps.

structure PointedProfiniteInverseSystem where
  I : Type u
  instPreorder : Preorder I
  system : ProCGroups.InverseSystems.InverseSystem.{u, u} (I := I)
  point : ∀ i, system.X i
  map_point : ∀ {i j : I} (hij : i ≤ j), system.map hij (point j) = point i
  profinite_stage : ∀ i, ProCGroups.InverseSystems.IsProfiniteSpace (system.X i)

This structure packages a pointed inverse system of profinite spaces.

def limitPoint (S : PointedProfiniteInverseSystem) : S.system.inverseLimit :=
  ⟨fun i => S.point i, fun _i _j hij => S.map_point hij⟩

The compatible basepoint in the inverse limit of a pointed profinite system.

structure PointedProfinitePresentation
    (X : Type u) [TopologicalSpace X] (x0 : X) where
  inverseSystem : PointedProfiniteInverseSystem
  homeomorph : X ≃ₜ inverseSystem.system.inverseLimit
  map_base : homeomorph x0 = inverseSystem.limitPoint

A presentation of a pointed profinite space as an inverse limit of pointed profinite spaces.

abbrev FiniteSubset (X : Type u) := {Y : Set X // Y.Finite}

The type of finite subsets of \(X\), encoded without any decidable-equality assumption.

theorem surjective_of_rangeContainsGeneratingSet
    {α : Type u}
    {G : Type u} [Group G] [TopologicalSpace G]
    {H : Type u} [Group H] [TopologicalSpace H] [IsTopologicalGroup H]
    (hGprof : IsProfiniteGroup G)
    (hHprof : IsProfiniteGroup H)
    {ι : α → H}
    (hgen : Generation.TopologicallyGenerates (G := H) (Set.range ι))
    {σ : G →* H} (hσ : Continuous σ)
    (hsub : Set.range ι ⊆ (σ.range : Set H)) :
    Function.Surjective σ

A continuous homomorphism from a profinite group onto a profinite target is surjective once its range contains a topological generating family of the target.

Show proof
def IsSmallestClosedNormalSubgroupContaining
    {G : Type u} [Group G] [TopologicalSpace G]
    (A : Set G) (N : Subgroup G) : Prop :=
  N.Normal ∧
    IsClosed ((N : Set G)) ∧
    A ⊆ (N : Set G) ∧
    ∀ M : Subgroup G, M.Normal → IsClosed ((M : Set G)) → A ⊆ (M : Set G) → N ≤ M

The kernel in a split exact sequence is the smallest closed normal subgroup containing a specified set.

theorem pointedFreeProCGroup_preserves_inverseLimits
    {X : Type u} [TopologicalSpace X] {x0 : X}
    (P : PointedProfinitePresentation X x0)
    {F : Type u} [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
    {ι : X → F}
    (hι : IsPointedFreeProCGroupOn (ProC := ProC) X x0 F ι) :
    ∃ ιlim : P.inverseSystem.system.inverseLimit → F,
      Continuous ιlim ∧
        ιlim P.inverseSystem.limitPoint = 1 ∧
        (∀ x, ιlim (P.homeomorph x) = ι x) ∧
        IsPointedFreeProCGroupOn (ProC := ProC)
          P.inverseSystem.system.inverseLimit P.inverseSystem.limitPoint F ιlim

Pointed free pro-\(C\) groups on pointed profinite spaces preserve inverse-limit presentations by transporting the pointed free structure across the presenting homeomorphism.

Show proof
theorem exists_pointedProfinitePresentation_of_isProfiniteSpace
    {X : Type u} [TopologicalSpace X] (hX : ProCGroups.InverseSystems.IsProfiniteSpace X)
    (x0 : X) :
    ∃ P : PointedProfinitePresentation.{u, u} X x0,
      ∀ i : P.inverseSystem.I, Finite (P.inverseSystem.system.X i)

Every pointed profinite space has a finite inverse-limit presentation.

Show proof
theorem pointedFreeProCGroup_has_finite_inverseLimitPresentation
    {X : Type u} [TopologicalSpace X] {x0 : X}
    (hX : ProCGroups.InverseSystems.IsProfiniteSpace X)
    {F : Type u} [Group F] [TopologicalSpace F] [IsTopologicalGroup F]
    {ι : X → F}
    (hι : IsPointedFreeProCGroupOn (ProC := ProC) X x0 F ι) :
    ∃ P : PointedProfinitePresentation.{u, u} X x0,
      (∀ i : P.inverseSystem.I, Finite (P.inverseSystem.system.X i)) ∧
        ∃ ιlim : P.inverseSystem.system.inverseLimit → F,
          Continuous ιlim ∧
            ιlim P.inverseSystem.limitPoint = 1 ∧
            IsPointedFreeProCGroupOn (ProC := ProC)
              P.inverseSystem.system.inverseLimit P.inverseSystem.limitPoint F ιlim

Every pointed profinite space admits a finite inverse-limit presentation, and a pointed free pro-\(C\) group on it transports to the inverse-limit space.

Show proof
theorem exists_finiteSubsetSystem_raw
    {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 : TopologicalGroupInverseSystemData (I := FiniteSubset X),
      ∃ basis : ∀ s : FiniteSubset X, ↥s.1 → S.toInverseSystem.X s,
        (∀ s : FiniteSubset X,
          IsFreeProCGroupOnConvergingSet (ProC := ProC)
            ↥s.1 (S.toInverseSystem.X s) (basis s)) ∧
        (∀ {s t : FiniteSubset X} (hst : s ≤ t) (x : ↥t.1),
          S.toInverseSystem.map hst (basis t x) =
            by
              classical
              exact if hx : x.1 ∈ s.1 then basis s ⟨x.1, hx⟩ else 1) ∧
        (∀ s : FiniteSubset X,
          ∃ e : S.toInverseSystem.X s →* F,
            Continuous e ∧
              Function.Injective e ∧
              IsClosed (Set.range e) ∧
              ∀ x : ↥s.1, e (basis s x) = ι x.1) ∧
        Nonempty (F ≃ₜ* S.toInverseSystem.inverseLimit)

The raw finite-subset inverse-system construction for a free pro-\(C\) group on a basis converging to \(1\). It is intentionally unbundled; \(\mathrm{FiniteSubsetSystem}\) packages this data for ordinary use.

Show proof
theorem finiteSubset_embeds
    {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 : FiniteSubset X) :
    ∃ (Fs : Type u) (_ : Group Fs) (_ : TopologicalSpace Fs) (_ : IsTopologicalGroup Fs)
      (ιs : ↥s.1 → Fs),
        IsFreeProCGroupOnConvergingSet (ProC := ProC) ↥s.1 Fs ιs ∧
        ∃ e : Fs →* F,
          Continuous e ∧ Function.Injective e ∧ IsClosed (Set.range e) ∧
            ∀ x : ↥s.1, e (ιs x) = ι x.1

3.10(a). For each finite subset of a basis converging to \(1\), the finite-stage free pro-\(C\) group embeds as a closed subgroup of the ambient free pro-\(C\) group.

Show proof
theorem exists_finiteSubsetLimit_raw
    {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 : TopologicalGroupInverseSystemData (I := FiniteSubset X),
      ∃ basis : ∀ s : FiniteSubset X, ↥s.1 → S.toInverseSystem.X s,
        (∀ s : FiniteSubset X,
          IsFreeProCGroupOnConvergingSet (ProC := ProC)
            ↥s.1 (S.toInverseSystem.X s) (basis s)) ∧
        (∀ {s t : FiniteSubset X} (hst : s ≤ t) (x : ↥t.1),
          S.toInverseSystem.map hst (basis t x) =
            by
              classical
              exact if hx : x.1 ∈ s.1 then basis s ⟨x.1, hx⟩ else 1) ∧
        (∀ s : FiniteSubset X,
          ∃ e : S.toInverseSystem.X s →* F,
            Continuous e ∧
              Function.Injective e ∧
              IsClosed (Set.range e) ∧
              ∀ x : ↥s.1, e (basis s x) = ι x.1) ∧
        Nonempty (F ≃ₜ* S.toInverseSystem.inverseLimit)

3.10(b). A free pro-\(C\) group on a basis converging to \(1\) is the inverse limit of the finite-stage free pro-\(C\) groups attached to its finite subsets.

Show proof
theorem restriction_splitExact
    (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 _ _ _)
    {X : Type u} (Y : Set X)
    {FX : Type u} [Group FX] [TopologicalSpace FX] [IsTopologicalGroup FX]
    {FY : Type u} [Group FY] [TopologicalSpace FY] [IsTopologicalGroup FY]
    {ιX : X → FX} {ιY : Y → FY}
    (hX : IsFreeProCGroupOnConvergingSet (ProC := ProC) X FX ιX)
    (hY : IsFreeProCGroupOnConvergingSet (ProC := ProC) Y FY ιY) :
    by
      classical
      exact
        ∃ φ : FX →* FY,
          Continuous φ ∧
            (∀ x, φ (ιX x) = if hx : x ∈ Y then ιY ⟨x, hx⟩ else 1) ∧
            Function.Surjective φ ∧
            ∃ σ : FY →* FX,
              Continuous σ ∧
                φ.comp σ = MonoidHom.id FY ∧
                IsSmallestClosedNormalSubgroupContaining
                  (Set.range fun x : {x : X // x ∉ Y} => ιX x.1) φ.ker

Restricting a free pro-\(C\) group from a basis X to a subtraction-basis Y gives a split quotient whose kernel is the smallest closed normal subgroup generated by the complementary basis elements.

Show proof
theorem openSubgroup_finiteSubsetApproximation
    {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 _ _ _)
        (K : Subgroup G), IsClosed (K : Set G) →
          @ProCGroups.ProC.ProCGroupPredicate.holds ProC K _ _ _)
    (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 ι)
    (H : Subgroup F) (hH : IsOpen ((H : Set F))) :
    ∃ S : TopologicalGroupInverseSystemData (I := FiniteSubset X),
      ∃ basis : ∀ s : FiniteSubset X, ↥s.1 → S.toInverseSystem.X s,
        (∀ s : FiniteSubset X,
          IsFreeProCGroupOnConvergingSet (ProC := ProC)
            ↥s.1 (S.toInverseSystem.X s) (basis s)) ∧
        (∀ {s t : FiniteSubset X} (hst : s ≤ t) (x : ↥t.1),
          S.toInverseSystem.map hst (basis t x) =
            by
              classical
              exact if hx : x.1 ∈ s.1 then basis s ⟨x.1, hx⟩ else 1) ∧
          ∃ _limitIso : F ≃ₜ* S.toInverseSystem.inverseLimit,
          ∃ cofinalSubsets : Set (FiniteSubset X),
            (∀ s : FiniteSubset X, ∃ t, t ∈ cofinalSubsets ∧ s ≤ t) ∧
            ∃ stageSubgroup :
                ∀ {t : FiniteSubset X},
                  t ∈ cofinalSubsets → Subgroup (S.toInverseSystem.X t),
              (∀ {t : FiniteSubset X} (ht : t ∈ cofinalSubsets),
                IsOpen ((stageSubgroup ht : Set (S.toInverseSystem.X t)))) ∧
              (∀ {t : FiniteSubset X} (ht : t ∈ cofinalSubsets),
                (stageSubgroup ht).index = H.index)

For an open subgroup of a free pro-\(C\) group on a basis converging to \(1\), there is a cofinal finite-subset subsystem whose stage indices agree with the original open subgroup, under the same explicit profiniteness, closed-subgroup permanence, finite-quotient permanence, and injectivity hypotheses used in the finite-subset approximation theorem.

Show proof