Module

ClosedNormalDataAndTransfiniteSeries.lean

Nyll.ProCGroups.LocalWeight.ClosedNormalDataAndTransfiniteSeries
12 declarations indexed from sourceView source ↗

Closed normal chains and local weight

This file constructs ordinal-indexed descending chains of closed normal subgroups from local-weight bounds. Successive quotients lie in a prescribed finite-group class, and the resulting series recovers the corresponding cardinal bound without external assumption packages.

Declarations

ProCGroups.LocalWeight.ClosedNormalSubgroupData

A closed subgroup equipped with normality, for quotient constructions.

Source context 12 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open Set
open TopologicalSpace
open Order
open scoped Cardinal
open scoped Topology Pointwise
namespace ProCGroups.LocalWeight
universe u
open ProCGroups.ProC ProCGroups.Generation
open ProCGroups.FiniteGeneration
section ClosedNormalSeriesStatements
section ClosedNormalData
variable (G : Type u) [Group G] [TopologicalSpace G]
structure ClosedNormalSubgroupData extends ClosedSubgroup G where
  /-- The underlying closed subgroup is normal. -/
  normal' : toSubgroup.Normal
ProCGroups.LocalWeight.instCoeClosedNormalSubgroupData

Closed-normal-subgroup data coerces to its underlying closed subgroup.

Source context 12 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open Set
open TopologicalSpace
open Order
open scoped Cardinal
open scoped Topology Pointwise
namespace ProCGroups.LocalWeight
universe u
open ProCGroups.ProC ProCGroups.Generation
open ProCGroups.FiniteGeneration
section ClosedNormalSeriesStatements
section ClosedNormalData
variable (G : Type u) [Group G] [TopologicalSpace G]
instance instCoeClosedNormalSubgroupData : Coe (ClosedNormalSubgroupData G) (Subgroup G) where
  coe H := H.toSubgroup
ProCGroups.LocalWeight.ClosedNormalSubgroupData.coe_mk

The closed-normal-subgroup datum constructed by mk has the stated underlying subgroup.

Source context 12 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open Set
open TopologicalSpace
open Order
open scoped Cardinal
open scoped Topology Pointwise
namespace ProCGroups.LocalWeight
universe u
open ProCGroups.ProC ProCGroups.Generation
open ProCGroups.FiniteGeneration
section ClosedNormalSeriesStatements
section ClosedNormalData
variable (G : Type u) [Group G] [TopologicalSpace G]
theorem ClosedNormalSubgroupData.coe_mk
    (H : Subgroup G) (hHclosed : IsClosed (H : Set G)) (hHnormal : H.Normal) :
    ((⟨⟨H, hHclosed⟩, hHnormal⟩ : ClosedNormalSubgroupData G) : Subgroup G) = H
ProCGroups.LocalWeight.ClosedNormalSubgroupData.instNormal

The closed-normal-subgroup data define a normal subgroup.

Source context 12 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open Set
open TopologicalSpace
open Order
open scoped Cardinal
open scoped Topology Pointwise
namespace ProCGroups.LocalWeight
universe u
open ProCGroups.ProC ProCGroups.Generation
open ProCGroups.FiniteGeneration
section ClosedNormalSeriesStatements
section ClosedNormalData
variable (G : Type u) [Group G] [TopologicalSpace G]
instance ClosedNormalSubgroupData.instNormal
    (H : ClosedNormalSubgroupData G) : H.toSubgroup.Normal
ProCGroups.LocalWeight.ClosedNormalSubgroupData.isClosed

The subgroup packaged in closed-normal subgroup data is closed.

Source context 12 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open Set
open TopologicalSpace
open Order
open scoped Cardinal
open scoped Topology Pointwise
namespace ProCGroups.LocalWeight
universe u
open ProCGroups.ProC ProCGroups.Generation
open ProCGroups.FiniteGeneration
section ClosedNormalSeriesStatements
section ClosedNormalData
variable (G : Type u) [Group G] [TopologicalSpace G]
theorem ClosedNormalSubgroupData.isClosed
    (H : ClosedNormalSubgroupData G) : IsClosed ((H : Subgroup G) : Set G)
ProCGroups.LocalWeight.ClosedNormalSubgroupData.stepQuotient

The step quotient \(H/K\) for closed-normal subgroup chains.

Source context 12 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open Set
open TopologicalSpace
open Order
open scoped Cardinal
open scoped Topology Pointwise
namespace ProCGroups.LocalWeight
universe u
open ProCGroups.ProC ProCGroups.Generation
open ProCGroups.FiniteGeneration
section ClosedNormalSeriesStatements
section ClosedNormalData
variable (G : Type u) [Group G] [TopologicalSpace G]
abbrev ClosedNormalSubgroupData.stepQuotient
    (H K : ClosedNormalSubgroupData G) : Type u
ProCGroups.LocalWeight.TransfiniteClosedNormalSeries

Transfinite closed normal series with finite-class step quotients.

Source context 13 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open Set
open TopologicalSpace
open Order
open scoped Cardinal
open scoped Topology Pointwise
namespace ProCGroups.LocalWeight
universe u
open ProCGroups.ProC ProCGroups.Generation
open ProCGroups.FiniteGeneration
section ClosedNormalSeriesStatements
section TransfiniteSeries
variable (C : FiniteGroupClass.{u})
variable (G : Type u) [Group G] [TopologicalSpace G]
structure TransfiniteClosedNormalSeries
    (C : FiniteGroupClass.{u}) (G : Type u) [Group G] [TopologicalSpace G]
    [IsTopologicalGroup G] (μ : Ordinal) where
  /-- The closed normal subgroup at each ordinal stage. -/
  series : Ordinal → ClosedNormalSubgroupData G
  /-- The series starts at the whole group. -/
  top_eq : (series 0).toSubgroup = ⊤
  /-- The series reaches the trivial subgroup at stage \(\mu\). -/
  bot_eq : (series μ).toSubgroup = ⊥
  /-- The series is antitone up to its terminal stage \(\mu\). -/
  antitone' : ∀ ⦃lam ν : Ordinal⦄, lam ≤ ν → ν ≤ μ →
    (series ν).toSubgroup ≤ (series lam).toSubgroup
  /-- Every successor-step quotient before \(\mu\) belongs to the finite-group class \(C\). -/
  step_mem' : ∀ ⦃lam : Ordinal⦄, lam < μ →
    C (ClosedNormalSubgroupData.stepQuotient (G := G) (series lam) (series (succ lam)))
  /-- At a nonzero limit stage, the series is the intersection of all preceding stages. -/
  limit_eq_iInf' : ∀ ⦃lam : Ordinal⦄, lam ≤ μ → IsSuccLimit lam →
    (series lam).toSubgroup =
      iInf (fun ν : {ν : Ordinal // ν < lam} => (series ν.1).toSubgroup)
ProCGroups.LocalWeight.closed_normal_subgroup_eq_inter_openNormal_of_finite_index

Successor-step lemma for transfinite closed-normal chains: a closed normal finite-index subgroup of a closed subgroup is obtained by intersecting that subgroup with an open normal subgroup of the ambient profinite group. The subgroup \(H\) is assumed closed in \(G\), and \(K\) is assumed closed and normal in \(G\).

Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open Set
open TopologicalSpace
open Order
open scoped Cardinal
open scoped Topology Pointwise
namespace ProCGroups.LocalWeight
universe u
open ProCGroups.ProC ProCGroups.Generation
open ProCGroups.FiniteGeneration
theorem closed_normal_subgroup_eq_inter_openNormal_of_finite_index
    (G : Type u) [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
    [CompactSpace G] [T2Space G] [TotallyDisconnectedSpace G]
    (H K : Subgroup G)
    (hKclosed : IsClosed (K : Set G)) [K.Normal] (hKH : K ≤ H)
    [Finite (H ⧸ K.subgroupOf H)] :
    ∃ V : OpenNormalSubgroup G, K = H ⊓ (V : Subgroup G)
ProCGroups.LocalWeight.localWeight_le_of_openNormal_family

If a quotient carries a neighborhood basis indexed by a family of open normal subgroups, then its local weight is bounded by the cardinality of that family.

Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open Set
open TopologicalSpace
open Order
open scoped Cardinal
open scoped Topology Pointwise
namespace ProCGroups.LocalWeight
universe u
open ProCGroups.ProC ProCGroups.Generation
open ProCGroups.FiniteGeneration
theorem localWeight_le_of_openNormal_family
    (G : Type u) [Group G] [TopologicalSpace G]
    {ι : Type u} {κ : Cardinal.{u}} (W : ι → OpenNormalSubgroup G)
    (hWbasis : IsNeighborhoodBasisAt (X := G) (1 : G)
      (Set.range fun i : ι => (((W i : Subgroup G) : Set G))))
    (hWcard : Cardinal.mk ι ≤ κ) : localWeight G ≤ κ := by
  classical
  let f : ι → Set G := fun i => (((W i : Subgroup G) : Set G))
  let chooseIdx : { V : Set G // V ∈ Set.range f } → ι :=
    fun V => Classical.choose V.2
  have hchoose : ∀ V : { V : Set G // V ∈ Set.range f }, f (chooseIdx V) = V.1 := by
    intro V
    exact Classical.choose_spec V.2
  have hchoose_inj : Function.Injective chooseIdx := by
    intro V₁ V₂ hEq
    apply Subtype.ext
    calc
      V₁.1 = f (chooseIdx V₁) := (hchoose V₁).symm
      _ = f (chooseIdx V₂) := by simp only [hEq]
      _ = V₂.1 := hchoose V₂
  simpa [localWeight] using
  calc
    localWeightAt (X := G) (1 : G) ≤ familyCardinal (X := G) (Set.range f) :=
      localWeightAt_le_familyCardinal_of_basis (X := G) (x := (1 : G)) hWbasis
    _ ≤ Cardinal.mk ι := by
      unfold familyCardinal
      exact Cardinal.mk_le_of_injective (f := chooseIdx) hchoose_inj
    _ ≤ κ := hWcard
ProCGroups.LocalWeight.localWeight_split_over_closedNormalSubgroup

6.5(d). Weight splitting formula over a closed normal subgroup.

Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open Set
open TopologicalSpace
open Order
open scoped Cardinal
open scoped Topology Pointwise
namespace ProCGroups.LocalWeight
universe u
open ProCGroups.ProC ProCGroups.Generation
open ProCGroups.FiniteGeneration
theorem localWeight_split_over_closedNormalSubgroup
    (G : Type u) [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
    [CompactSpace G] [T2Space G] [TotallyDisconnectedSpace G]
    (H : ClosedNormalSubgroupData G)
    (hInf : Infinite ↥H.toSubgroup ∨ Infinite (G ⧸ H.toSubgroup)) :
    localWeight G =
      localWeight ↥H.toSubgroup + quotientLocalWeight (G := G) H.toSubgroup
ProCGroups.LocalWeight.quotientLocalWeight_subadd_of_subgroup_chain

Subadditivity of quotient local weight along a chain \(H \le K \le M\).

Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open Set
open TopologicalSpace
open Order
open scoped Cardinal
open scoped Topology Pointwise
namespace ProCGroups.LocalWeight
universe u
open ProCGroups.ProC ProCGroups.Generation
open ProCGroups.FiniteGeneration
theorem quotientLocalWeight_subadd_of_subgroup_chain
    (G : Type u) [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
    (H M K : ClosedNormalSubgroupData G)
    (hHK : H.toSubgroup ≤ K.toSubgroup) :
    quotientLocalWeight (G := ↥M.toSubgroup) (K.toSubgroup.subgroupOf M.toSubgroup) ≤
      quotientLocalWeight (G := ↥M.toSubgroup) (H.toSubgroup.subgroupOf M.toSubgroup) +
      quotientLocalWeight (G := ↥K.toSubgroup) (H.toSubgroup.subgroupOf K.toSubgroup)
ProCGroups.LocalWeight.build_transfiniteClosedNormalSeries_of_localWeight_le

Forward direction: existence of a transfinite closed normal series from the local-weight bound.

Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open Set
open TopologicalSpace
open Order
open scoped Cardinal
open scoped Topology Pointwise
namespace ProCGroups.LocalWeight
universe u
open ProCGroups.ProC ProCGroups.Generation
open ProCGroups.FiniteGeneration
theorem build_transfiniteClosedNormalSeries_of_localWeight_le
    (C : FiniteGroupClass.{u}) (G : Type u)
    [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
    [CompactSpace G] [T2Space G] [TotallyDisconnectedSpace G]
    (μ : Ordinal) (hForm : FiniteGroupClass.Formation C)
    (hNorm : FiniteGroupClass.NormalSubgroupClosed C) (hG : HasOpenNormalBasisInClass C G)
    (hμ : localWeight G ≤ μ.card) :
    Nonempty (TransfiniteClosedNormalSeries C G μ)