Module

Basic.lean

Nyll.ProCGroups.FiniteGeneration.Basic
21 declarations indexed from sourceView source ↗

Basic results on topological finite generation

This module defines topological finite generation and topologically characteristic subgroups, then relates finite generating sets to free-group maps and generator-converging families.

Declarations

ProCGroups.FiniteGeneration.TopologicallyFinitelyGenerated

Finitely generated as a topological group.

Source context 7 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
section Basic
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
def TopologicallyFinitelyGenerated
    (G : Type u) [Group G] [TopologicalSpace G] [IsTopologicalGroup G] : Prop
ProCGroups.FiniteGeneration.IsTopologicallyCharacteristic

A subgroup is topologically characteristic if every continuous automorphism preserves it.

Source context 7 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
section Basic
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
def IsTopologicallyCharacteristic
    (G : Type u) [Group G] [TopologicalSpace G] (H : Subgroup G) : Prop
ProCGroups.FiniteGeneration.IsTopologicallyCharacteristic.apply_mem_iff

Membership in a topologically characteristic subgroup is invariant under applying a continuous automorphism.

Source context 9 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
section Basic
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
section Characteristic
omit [IsTopologicalGroup G]
theorem IsTopologicallyCharacteristic.apply_mem_iff {H : Subgroup G}
    (hH : IsTopologicallyCharacteristic (G := G) H) (φ : G ≃ₜ* G) {g : G} :
    φ g ∈ H ↔ g ∈ H
theorem

inf

L54 ↗
ProCGroups.FiniteGeneration.IsTopologicallyCharacteristic.inf

Intersections of topologically characteristic subgroups are topologically characteristic.

Source context 9 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
section Basic
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
section Characteristic
omit [IsTopologicalGroup G]
theorem IsTopologicallyCharacteristic.inf {H K : Subgroup G}
    (hH : IsTopologicallyCharacteristic (G := G) H) (hK : IsTopologicallyCharacteristic (G := G)
        K) :
    IsTopologicallyCharacteristic (G := G) (H ⊓ K)
ProCGroups.FiniteGeneration.IsTopologicallyCharacteristic.sInf

Arbitrary infima of topologically characteristic subgroups are topologically characteristic.

Source context 9 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
section Basic
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
section Characteristic
omit [IsTopologicalGroup G]
theorem IsTopologicallyCharacteristic.sInf {S : Set (Subgroup G)}
    (hS : ∀ H ∈ S, IsTopologicallyCharacteristic (G := G) H) :
    IsTopologicallyCharacteristic (G := G) (sInf S)
ProCGroups.FiniteGeneration.IsTopologicallyCharacteristic.iInf

Indexed infima of topologically characteristic subgroups are topologically characteristic.

Source context 9 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
section Basic
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
section Characteristic
omit [IsTopologicalGroup G]
theorem IsTopologicallyCharacteristic.iInf {ι : Sort*} {S : ι → Subgroup G}
    (hS : ∀ i, IsTopologicallyCharacteristic (G := G) (S i)) :
    IsTopologicallyCharacteristic (G := G) (iInf S)
theorem

top

L89 ↗
ProCGroups.FiniteGeneration.IsTopologicallyCharacteristic.top

The top subgroup is topologically characteristic, since every continuous automorphism preserves it.

Source context 9 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
section Basic
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
section Characteristic
omit [IsTopologicalGroup G]
theorem IsTopologicallyCharacteristic.top :
    IsTopologicallyCharacteristic (G := G) (⊤ : Subgroup G)
ProCGroups.FiniteGeneration.TopologicallyGeneratedByAtMost

\(G\) can be topologically generated by at most \(n\) elements.

Source context 7 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
section Basic
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
def TopologicallyGeneratedByAtMost
    (n : ℕ) (G : Type u) [Group G] [TopologicalSpace G] [IsTopologicalGroup G] :
    Prop
ProCGroups.FiniteGeneration.TopologicallyGeneratedByAtMost.mono

Increasing the allowed number of generators preserves bounded topological generation.

Source context 7 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
section Basic
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
theorem TopologicallyGeneratedByAtMost.mono {m n : ℕ}
    (hmn : m ≤ n)
    (hG : TopologicallyGeneratedByAtMost (G := G) m) :
    TopologicallyGeneratedByAtMost (G := G) n
ProCGroups.FiniteGeneration.topologicallyFinitelyGenerated_iff_exists_topologicallyGeneratedByAtMost

A group is topologically finitely generated if and only if it is generated by at most \(n\) elements for some natural number \(n\).

Source context 7 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
section Basic
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
theorem topologicallyFinitelyGenerated_iff_exists_topologicallyGeneratedByAtMost :
    TopologicallyFinitelyGenerated G ↔
      ∃ n, TopologicallyGeneratedByAtMost (G := G) n
ProCGroups.FiniteGeneration.finiteSet_convergesToOneAlongOpenSubgroups

A finite set of elements converges to \(1\) in the profinite generating-family sense.

Source context 8 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
section Basic
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
omit [IsTopologicalGroup G] in
theorem finiteSet_convergesToOneAlongOpenSubgroups (s : Finset G) :
    ConvergesToOneAlongOpenSubgroups (G := G) (↑s : Set G)
ProCGroups.FiniteGeneration.topologicalRank_le_of_topologicallyGeneratedByAtMost

If \(G\) is topologically generated by at most \(n\) elements, its topological rank is at most \(n\).

Source context 7 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
section Basic
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
theorem topologicalRank_le_of_topologicallyGeneratedByAtMost {n : ℕ}
    (h : TopologicallyGeneratedByAtMost (G := G) n) :
    topologicalRank G ≤ n
ProCGroups.FiniteGeneration.topologicallyGenerates_range_comp_of_surjective

The image of a topological generating family under a continuous surjective homomorphism topologically generates the codomain.

Source context 7 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
section Basic
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
theorem topologicallyGenerates_range_comp_of_surjective
    {H : Type v} [Group H] [TopologicalSpace H] [IsTopologicalGroup H]
    (φ : G →ₜ* H) (hφ : Function.Surjective φ)
    {ι : Sort w} (g : ι → G)
    (hg : TopologicallyGenerates (G := G) (Set.range g)) :
    TopologicallyGenerates (G := H) (Set.range (φ ∘ g))
ProCGroups.FiniteGeneration.TopologicallyGeneratedByAtMost.of_surjective

Bounded topological generation descends along continuous surjective homomorphisms.

Source context 7 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
section Basic
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
theorem TopologicallyGeneratedByAtMost.of_surjective
    {H : Type v} [Group H] [TopologicalSpace H] [IsTopologicalGroup H]
    (φ : G →ₜ* H) (hφ : Function.Surjective φ) {n : ℕ}
    (hG : TopologicallyGeneratedByAtMost (G := G) n) :
    TopologicallyGeneratedByAtMost (G := H) n
ProCGroups.FiniteGeneration.topologicallyFinitelyGenerated_of_continuousSurjective

Topological finite generation descends along continuous surjective homomorphisms.

Source context 7 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
section Basic
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
theorem topologicallyFinitelyGenerated_of_continuousSurjective
    {H : Type v} [Group H] [TopologicalSpace H] [IsTopologicalGroup H]
    (φ : G →ₜ* H) (hφ : Function.Surjective φ)
    (hG : TopologicallyFinitelyGenerated G) :
    TopologicallyFinitelyGenerated H
ProCGroups.FiniteGeneration.topologicallyGenerates_iff_subgroupClosure_eq_top_of_discrete

In the discrete case, topological generation is abstract subgroup generation.

Source context 7 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
section Basic
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
theorem topologicallyGenerates_iff_subgroupClosure_eq_top_of_discrete
    [DiscreteTopology G] {X : Set G} :
    TopologicallyGenerates (G := G) X ↔ Subgroup.closure X = ⊤
ProCGroups.FiniteGeneration.freeGroup_lift_surjective_of_topologicallyGenerates_discrete

A map from a free group to a discrete group is surjective when the images of the chosen generators topologically generate the target; in the discrete topology this is exactly abstract generation.

Source context 7 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
section Basic
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
theorem freeGroup_lift_surjective_of_topologicallyGenerates_discrete
    {X : Type v} [DiscreteTopology G] (g : X → G)
    (hg : TopologicallyGenerates (G := G) (Set.range g)) :
    Function.Surjective (FreeGroup.lift g)
ProCGroups.FiniteGeneration.topologicallyFinitelyGenerated_of_finite

A finite discrete group is topologically finitely generated.

Source context 7 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
section Basic
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
theorem topologicallyFinitelyGenerated_of_finite [Finite G] [DiscreteTopology G] :
    TopologicallyFinitelyGenerated G
ProCGroups.FiniteGeneration.topologicallyGeneratedByAtMost_of_topologicalRank_eq_nat

If the topological rank of a profinite group is the natural number \(n\), then the group is topologically generated by at most \(n\) elements.

Source context 7 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
section Basic
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
theorem topologicallyGeneratedByAtMost_of_topologicalRank_eq_nat
    [CompactSpace G] [T2Space G] [TotallyDisconnectedSpace G] {n : ℕ}
    (hd : topologicalRank G = n) :
    TopologicallyGeneratedByAtMost (G := G) n
ProCGroups.FiniteGeneration.exists_generatingTuple_of_topologicalRank_le_of_finite

A finite upper bound on the topological rank gives an explicit generating tuple of that length.

Source context 7 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
section Basic
variable {G : Type u} [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
theorem exists_generatingTuple_of_topologicalRank_le_of_finite
    (hG : TopologicallyFinitelyGenerated G) {n : ℕ} (hd : topologicalRank G ≤ n) :
    ∃ g : Fin n → G, TopologicallyGenerates (G := G) (Set.range g)
ProCGroups.FiniteGeneration.topologicalRank_inverseLimit_le_of_componentBound

If every finite stage of a surjective inverse system has topological rank at most \(n\), then so does the inverse limit.

Source context 5 commands

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

open Set
open scoped Topology Pointwise
namespace ProCGroups.FiniteGeneration
universe u v w
open ProCGroups.Generation
theorem topologicalRank_inverseLimit_le_of_componentBound
    {I : Type v} [Preorder I]
    (S : ProCGroups.InverseSystems.InverseSystem (I := I))
    [Nonempty I] [∀ i, Group (S.X i)] [ProCGroups.InverseSystems.IsGroupSystem S]
    [∀ i, IsTopologicalGroup (S.X i)] [∀ i, Finite (S.X i)]
    [∀ i, CompactSpace (S.X i)] [∀ i, T2Space (S.X i)]
    (hdir : Directed (· ≤ ·) (id : I → I))
    (hsurj : ∀ {i j : I} (hij : i ≤ j), Function.Surjective (S.map hij))
    {n : ℕ} (hbound : ∀ i, topologicalRank (S.X i) ≤ n) :
    topologicalRank S.inverseLimit ≤ n