ReidemeisterSchreier.Profinite.SchreierFormula

38 Theorem | 12 Definition

This module develops Reidemeister--Schreier rewriting, Schreier generators, finite quotient transversals, and presentation transformations.

import
Imported by

Declarations

def HasFreeProCConvergingSetModel
    (ProC : ProCGroups.ProC.ProCGroupPredicate.{u})
    (G : Type u) [Group G] [TopologicalSpace G] : Prop :=
  ∃ Fdata : FreeProCGroupOnConvergingSetData (ProC := ProC),
    Nonempty (Fdata.carrier ≃ₜ* G)

G admits a free pro-\(C\) model on a converging set.

def HasFreeProCConvergingSetModelOfRank
    (ProC : ProCGroups.ProC.ProCGroupPredicate.{u})
    (G : Type u) [Group G] [TopologicalSpace G]
    (m : Cardinal) : Prop :=
  ∃ Fdata : FreeProCGroupOnConvergingSetData (ProC := ProC),
    Nonempty (Fdata.carrier ≃ₜ* G) ∧ Cardinal.mk Fdata.basis = m

G admits a free pro-\(C\) model on a converging set of cardinal m.

def SatisfiesOpenNormalSchreierFormulaAtRank
    (G : Type u) [Group G] [TopologicalSpace G] [IsTopologicalGroup G]
    (r : ℕ) : Prop :=
  ∀ U : OpenNormalSubgroup G,
    Generation.topologicalRank ↥(U : Subgroup G) =
      (_root_.ReidemeisterSchreier.Schreier.rankTransform r (Nat.card (G ⧸ (U : Subgroup G))) : Cardinal)

A group with topological rank r satisfies Schreier's formula at rank r if every open normal subgroup has the expected rank transform.

def SatisfiesOpenNormalSchreierFormula
    (G : Type u) [Group G] [TopologicalSpace G] [IsTopologicalGroup G] : Prop :=
  ∃ r : ℕ,
    Generation.topologicalRank G = r ∧ SatisfiesOpenNormalSchreierFormulaAtRank (G := G) r

A group satisfies Schreier's formula if the rank transform holds at its finite topological rank.

noncomputable def chosenLeftSchreierGeneratorFamily
    (H : OpenSubgroup F) :
    (F ⧸ (H : Subgroup F)) × X → ↥(H : Subgroup F) :=
  fun p =>
    leftSchreierGenerator
      (F := F) (H := H)
      (σ := openSubgroupLeftSchreierSection (F := F) H)
      (hσ := openSubgroupLeftSchreierSection_rightInverse (F := F) H)
      (ι := ι) p.1 p.2

The chosen left Schreier generator family attached to an open subgroup.

@[simp] theorem chosenLeftSchreierGeneratorFamily_apply
    (H : OpenSubgroup F) (q : F ⧸ (H : Subgroup F)) (x : X) :
    chosenLeftSchreierGeneratorFamily (F := F) (ι := ι) H (q, x) =
      leftSchreierGenerator
        (F := F) (H := H)
        (σ := openSubgroupLeftSchreierSection (F := F) H)
        (hσ := openSubgroupLeftSchreierSection_rightInverse (F := F) H)
        (ι := ι) q x

The left Schreier pair map is evaluated by applying the chosen section and then taking the corresponding generator value.

Show proof
def chosenLeftSchreierGeneratorSet
    (H : OpenSubgroup F) : Set ↥(H : Subgroup F) :=
  leftSchreierGeneratorSet
    (F := F) (H := H)
    (σ := openSubgroupLeftSchreierSection (F := F) H)
    (hσ := openSubgroupLeftSchreierSection_rightInverse (F := F) H)
    (ι := ι)

The nontrivial chosen left Schreier generators attached to an open subgroup.

def chosenLeftNontrivialSchreierPairs
    (H : OpenSubgroup F) : Type u :=
  leftNontrivialSchreierPairs
    (F := F) H
    (openSubgroupLeftSchreierSection (F := F) H)
    (openSubgroupLeftSchreierSection_rightInverse (F := F) H)
    ι

The nontrivial chosen left Schreier pairs attached to an open subgroup.

noncomputable def chosenLeftNontrivialSchreierPairsToGeneratorSet
    (H : OpenSubgroup F) :
    chosenLeftNontrivialSchreierPairs (F := F) (ι := ι) H →
      ↥(chosenLeftSchreierGeneratorSet (F := F) (ι := ι) H) :=
  leftNontrivialSchreierPairsToGeneratorSet
    (F := F) H
    (openSubgroupLeftSchreierSection (F := F) H)
    (openSubgroupLeftSchreierSection_rightInverse (F := F) H)
    ι

The tautological map from chosen nontrivial left pairs to the chosen generator set.

@[simp] theorem chosenLeftNontrivialSchreierPairsToGeneratorSet_apply
    (H : OpenSubgroup F)
    (p : chosenLeftNontrivialSchreierPairs (F := F) (ι := ι) H) :
    ((chosenLeftNontrivialSchreierPairsToGeneratorSet (F := F) (ι := ι) H p :
        ↥(chosenLeftSchreierGeneratorSet (F := F) (ι := ι) H)) : ↥(H : Subgroup F)) =
      chosenLeftSchreierGeneratorFamily (F := F) (ι := ι) H p.1

The map from nontrivial left Schreier pairs to the generator set evaluates to the corresponding generator value.

Show proof
theorem surjective_chosenLeftNontrivialSchreierPairsToGeneratorSet
    (H : OpenSubgroup F) :
    Function.Surjective
      (chosenLeftNontrivialSchreierPairsToGeneratorSet (F := F) (ι := ι) H)

The map from nontrivial left Schreier pairs onto the left Schreier generator set is surjective.

Show proof
theorem chosenLeftSchreierGeneratorSet_subset_range
    (H : OpenSubgroup F) :
    chosenLeftSchreierGeneratorSet (F := F) (ι := ι) H ⊆
      Set.range (chosenLeftSchreierGeneratorFamily (F := F) (ι := ι) H)

The left Schreier generator set is contained in the range of the corresponding generator map.

Show proof
theorem subgroupClosure_chosenLeftSchreierGeneratorSet_eq_closure_range
    (H : OpenSubgroup F) :
    Subgroup.closure (chosenLeftSchreierGeneratorSet (F := F) (ι := ι) H) =
      Subgroup.closure (Set.range
        (chosenLeftSchreierGeneratorFamily (F := F) (ι := ι) H))

The subgroup closure of the left Schreier generator set is the closure of the corresponding generator-map range.

Show proof
theorem topologicallyGenerates_chosenLeftSchreierGeneratorSet_iff
    {H : OpenSubgroup F} :
    ProCGroups.Generation.TopologicallyGenerates (G := ↥(H : Subgroup F))
        (chosenLeftSchreierGeneratorSet (F := F) (ι := ι) H) ↔
      ProCGroups.Generation.TopologicallyGenerates (G := ↥(H : Subgroup F))
        (Set.range (chosenLeftSchreierGeneratorFamily (F := F) (ι := ι) H))

The Schreier generator family topologically generates precisely when the corresponding subgroup-generation condition holds.

Show proof
theorem chosenLeftSchreierNextCoset_eq_of_mem
      (H : OpenSubgroup F) {q : F ⧸ (H : Subgroup F)} {x : X}
      (hx : ι x ∈ (H : Subgroup F)) :
      leftSchreierNextCoset (F := F) H (openSubgroupLeftSchreierSection (F := F) H) ι q x =
        q

The next left Schreier coset has the stated value under the membership hypothesis.

Show proof
theorem chosenLeftSchreierNextCoset_eq_basepoint_of_mul_mem
      (H : OpenSubgroup F) {q : F ⧸ (H : Subgroup F)} {x : X}
      (hx : openSubgroupLeftSchreierSection (F := F) H q * ι x ∈ (H : Subgroup F)) :
      leftSchreierNextCoset (F := F) H (openSubgroupLeftSchreierSection (F := F) H) ι q x =
        QuotientGroup.mk (s := (H : Subgroup F)) (1 : F)

The next left Schreier coset is the basepoint when the chosen representative times the generator image lies in the subgroup.

Show proof
theorem chosenLeftSchreierGeneratorFamily_eq_of_mem
      (H : OpenSubgroup F) {q : F ⧸ (H : Subgroup F)} {x : X}
      (hx : ι x ∈ (H : Subgroup F)) :
      chosenLeftSchreierGeneratorFamily (F := F) (ι := ι) H (q, x) = ⟨ι x, hx⟩

The left Schreier generator has the displayed value under the subgroup-membership hypothesis.

Show proof
theorem chosenLeftSchreierGeneratorFamily_eq_one
      (H : OpenSubgroup F) {q : F ⧸ (H : Subgroup F)} {x : X}
      (hx : ι x = 1) :
    chosenLeftSchreierGeneratorFamily (F := F) (ι := ι) H (q, x) = 1

The chosen left Schreier generator family evaluates to the identity in the target subgroup presentation.

Show proof
theorem chosenLeftSchreierGeneratorFamily_eq_one_iff
    {H : OpenSubgroup F} {q : F ⧸ (H : Subgroup F)} {x : X} :
    chosenLeftSchreierGeneratorFamily (F := F) (ι := ι) H (q, x) = 1 ↔
      openSubgroupLeftSchreierSection (F := F) H
          (leftSchreierNextCoset (F := F) H
            (openSubgroupLeftSchreierSection (F := F) H) ι q x) =
        openSubgroupLeftSchreierSection (F := F) H q * ι x

The Schreier generator is trivial exactly under the corresponding coset condition.

Show proof
theorem chosenLeftSchreierGeneratorFamily_eq_of_mul_mem
    (H : OpenSubgroup F) {q : F ⧸ (H : Subgroup F)} {x : X}
    (hx : openSubgroupLeftSchreierSection (F := F) H q * ι x ∈ (H : Subgroup F)) :
    chosenLeftSchreierGeneratorFamily (F := F) (ι := ι) H (q, x) =
      ⟨openSubgroupLeftSchreierSection (F := F) H q * ι x, hx⟩

The left Schreier generator or next-coset formula is obtained by evaluating the chosen section cocycle.

Show proof
theorem continuous_chosenLeftSchreierNextCoset
    (H : OpenSubgroup F)
    (hιcont : Continuous ι) :
    Continuous (fun p : (F ⧸ (H : Subgroup F)) × X =>
      leftSchreierNextCoset (F := F) H (openSubgroupLeftSchreierSection (F := F) H) ι
        p.1 p.2)

The corresponding Schreier next-coset map is continuous.

Show proof
theorem continuous_chosenLeftSchreierGeneratorFamily
    (H : OpenSubgroup F)
    (hιcont : Continuous ι) :
    Continuous (chosenLeftSchreierGeneratorFamily (F := F) (ι := ι) H)

The corresponding Schreier generator map is continuous.

Show proof
theorem natCard_chosenLeftSchreierGeneratorSet_le
    (H : OpenSubgroup F) [CompactSpace F] [Finite X] :
    Nat.card (chosenLeftSchreierGeneratorSet (F := F) (ι := ι) H) ≤
      Nat.card (F ⧸ (H : Subgroup F)) * Nat.card X

The left Schreier generator set has the corresponding finite cardinality bound.

Show proof
theorem natCard_chosenLeftNontrivialSchreierPairs_le
    (H : OpenSubgroup F) [CompactSpace F] [Finite X] :
    Nat.card (chosenLeftNontrivialSchreierPairs (F := F) (ι := ι) H) ≤
      Nat.card (F ⧸ (H : Subgroup F)) * Nat.card X

The number of nontrivial left Schreier pairs is bounded by the corresponding finite coset-generator product.

Show proof
theorem natCard_chosenLeftSchreierGeneratorSet_le_nontrivialPairs
    (H : OpenSubgroup F) [CompactSpace F] [Finite X] :
    Nat.card (chosenLeftSchreierGeneratorSet (F := F) (ι := ι) H) ≤
      Nat.card (chosenLeftNontrivialSchreierPairs (F := F) (ι := ι) H)

The number of nontrivial left Schreier pairs is bounded by the corresponding finite coset-generator product.

Show proof
theorem natCard_range_chosenLeftSchreierGeneratorFamily_le_rankTransform
    [Finite X] {x0 : X} (hx0 : ι x0 = 1)
    (H : OpenSubgroup F) [CompactSpace F] :
    Nat.card (Set.range (chosenLeftSchreierGeneratorFamily (F := F) (ι := ι) H)) ≤
      _root_.ReidemeisterSchreier.Schreier.rankTransform (Nat.card X) (Nat.card (F ⧸ (H : Subgroup F)))

The range of the left Schreier generator map has the corresponding finite cardinality bound.

Show proof
theorem natCard_chosenLeftSchreierGeneratorSet_le_rankTransform
    [Finite X] {x0 : X} (hx0 : ι x0 = 1)
    (H : OpenSubgroup F) [CompactSpace F] :
    Nat.card (chosenLeftSchreierGeneratorSet (F := F) (ι := ι) H) ≤
      _root_.ReidemeisterSchreier.Schreier.rankTransform (Nat.card X) (Nat.card (F ⧸ (H : Subgroup F)))

The left Schreier generator set has the corresponding finite cardinality bound.

Show proof
noncomputable def chosenRightSchreierGeneratorFamily
    (H : OpenSubgroup F) :
    OpenSubgroupRightQuotient H × X → ↥(H : Subgroup F) :=
  fun p =>
    rightSchreierGenerator
      (F := F) (H := H)
      (τ := openSubgroupRightCosetSection (F := F) H)
      (hτ := openSubgroupRightCosetSection_spec (F := F) H)
      (ι := ι) p.1 p.2

The chosen right Schreier generator family attached to an open subgroup.

@[simp] theorem chosenRightSchreierGeneratorFamily_apply
    (H : OpenSubgroup F) (q : OpenSubgroupRightQuotient H) (x : X) :
    chosenRightSchreierGeneratorFamily (F := F) (ι := ι) H (q, x) =
      rightSchreierGenerator
        (F := F) (H := H)
        (τ := openSubgroupRightCosetSection (F := F) H)
        (hτ := openSubgroupRightCosetSection_spec (F := F) H)
        (ι := ι) q x

The right Schreier pair map is evaluated by applying the chosen section and then taking the corresponding generator value.

Show proof
def chosenRightSchreierGeneratorSet
    (H : OpenSubgroup F) : Set ↥(H : Subgroup F) :=
  rightSchreierGeneratorSet
    (F := F) (H := H)
    (τ := openSubgroupRightCosetSection (F := F) H)
    (hτ := openSubgroupRightCosetSection_spec (F := F) H)
    (ι := ι)

The nontrivial chosen right Schreier generators attached to an open subgroup.

def chosenRightNontrivialSchreierPairs
    (H : OpenSubgroup F) : Type u :=
  rightNontrivialSchreierPairs
    (F := F) H
    (openSubgroupRightCosetSection (F := F) H)
    (openSubgroupRightCosetSection_spec (F := F) H)
    ι

The nontrivial chosen right Schreier pairs attached to an open subgroup.

noncomputable def chosenRightNontrivialSchreierPairsToGeneratorSet
    (H : OpenSubgroup F) :
    chosenRightNontrivialSchreierPairs (F := F) (ι := ι) H →
      ↥(chosenRightSchreierGeneratorSet (F := F) (ι := ι) H) :=
  rightNontrivialSchreierPairsToGeneratorSet
    (F := F) H
    (openSubgroupRightCosetSection (F := F) H)
    (openSubgroupRightCosetSection_spec (F := F) H)
    ι

The tautological map from chosen nontrivial right pairs to the chosen generator set.

@[simp] theorem chosenRightNontrivialSchreierPairsToGeneratorSet_apply
    (H : OpenSubgroup F)
    (p : chosenRightNontrivialSchreierPairs (F := F) (ι := ι) H) :
    ((chosenRightNontrivialSchreierPairsToGeneratorSet (F := F) (ι := ι) H p :
        ↥(chosenRightSchreierGeneratorSet (F := F) (ι := ι) H)) : ↥(H : Subgroup F)) =
      chosenRightSchreierGeneratorFamily (F := F) (ι := ι) H p.1

The map from nontrivial right Schreier pairs to the generator set evaluates to the corresponding generator value.

Show proof
theorem surjective_chosenRightNontrivialSchreierPairsToGeneratorSet
    (H : OpenSubgroup F) :
    Function.Surjective
      (chosenRightNontrivialSchreierPairsToGeneratorSet (F := F) (ι := ι) H)

The map from nontrivial right Schreier pairs onto the right Schreier generator set is surjective.

Show proof
theorem chosenRightSchreierGeneratorSet_subset_range
    (H : OpenSubgroup F) :
    chosenRightSchreierGeneratorSet (F := F) (ι := ι) H ⊆
      Set.range (chosenRightSchreierGeneratorFamily (F := F) (ι := ι) H)

The right Schreier generator set is contained in the range of the corresponding generator map.

Show proof
theorem subgroupClosure_chosenRightSchreierGeneratorSet_eq_closure_range
    (H : OpenSubgroup F) :
    Subgroup.closure (chosenRightSchreierGeneratorSet (F := F) (ι := ι) H) =
      Subgroup.closure (Set.range
        (chosenRightSchreierGeneratorFamily (F := F) (ι := ι) H))

The subgroup closure of the right Schreier generator set is the closure of the corresponding generator-map range.

Show proof
theorem topologicallyGenerates_chosenRightSchreierGeneratorSet_iff
    {H : OpenSubgroup F} :
    ProCGroups.Generation.TopologicallyGenerates (G := ↥(H : Subgroup F))
        (chosenRightSchreierGeneratorSet (F := F) (ι := ι) H) ↔
      ProCGroups.Generation.TopologicallyGenerates (G := ↥(H : Subgroup F))
        (Set.range (chosenRightSchreierGeneratorFamily (F := F) (ι := ι) H))

The Schreier generator family topologically generates precisely when the corresponding subgroup-generation condition holds.

Show proof
theorem chosenRightSchreierNextCoset_basepoint_eq_of_mem
      (H : OpenSubgroup F) {x : X}
      (hx : ι x ∈ (H : Subgroup F)) :
      rightSchreierNextCoset (F := F) H ι (openSubgroupRightCoset H (1 : F)) x =
        openSubgroupRightCoset H (1 : F)

The next right Schreier coset is the basepoint when the relevant representative-generator product lies in the subgroup.

Show proof
theorem chosenRightSchreierNextCoset_eq_basepoint_of_mul_mem
      (H : OpenSubgroup F) {q : OpenSubgroupRightQuotient H} {x : X}
      (hx : openSubgroupRightCosetSection (F := F) H q * ι x ∈ (H : Subgroup F)) :
      rightSchreierNextCoset (F := F) H ι q x = openSubgroupRightCoset H (1 : F)

The next right Schreier coset is the basepoint when the relevant representative-generator product lies in the subgroup.

Show proof
theorem chosenRightSchreierGeneratorFamily_eq_one
      (H : OpenSubgroup F) {q : OpenSubgroupRightQuotient H} {x : X}
      (hx : ι x = 1) :
    chosenRightSchreierGeneratorFamily (F := F) (ι := ι) H (q, x) = 1

The chosen right Schreier generator family evaluates to the identity in the target subgroup presentation.

Show proof
theorem chosenRightSchreierGeneratorFamily_eq_one_iff
    {H : OpenSubgroup F} {q : OpenSubgroupRightQuotient H} {x : X} :
    chosenRightSchreierGeneratorFamily (F := F) (ι := ι) H (q, x) = 1 ↔
      openSubgroupRightCosetSection (F := F) H
          (rightSchreierNextCoset (F := F) H ι q x) =
        openSubgroupRightCosetSection (F := F) H q * ι x

The Schreier generator is trivial exactly under the corresponding coset condition.

Show proof
theorem chosenRightSchreierGeneratorFamily_basepoint_eq_of_mem
      (H : OpenSubgroup F) {x : X}
      (hx : ι x ∈ (H : Subgroup F)) :
      chosenRightSchreierGeneratorFamily (F := F) (ι := ι) H
          (openSubgroupRightCoset H (1 : F), x) =
        ⟨ι x, hx⟩

The right Schreier generator has the displayed value under the subgroup-membership hypothesis.

Show proof
theorem chosenRightSchreierGeneratorFamily_eq_of_mul_mem
    (H : OpenSubgroup F) {q : OpenSubgroupRightQuotient H} {x : X}
    (hx : openSubgroupRightCosetSection (F := F) H q * ι x ∈ (H : Subgroup F)) :
    chosenRightSchreierGeneratorFamily (F := F) (ι := ι) H (q, x) =
      ⟨openSubgroupRightCosetSection (F := F) H q * ι x, hx⟩

The right Schreier generator or next-coset formula is obtained by evaluating the chosen section cocycle.

Show proof
theorem continuous_chosenRightSchreierNextCoset
    (H : OpenSubgroup F)
    (hιcont : Continuous ι) :
    Continuous (fun p : OpenSubgroupRightQuotient H × X =>
      rightSchreierNextCoset (F := F) H ι p.1 p.2)

The corresponding Schreier next-coset map is continuous.

Show proof
theorem continuous_chosenRightSchreierGeneratorFamily
    (H : OpenSubgroup F)
    (hιcont : Continuous ι) :
    Continuous (chosenRightSchreierGeneratorFamily (F := F) (ι := ι) H)

The corresponding Schreier generator map is continuous.

Show proof
theorem natCard_chosenRightSchreierGeneratorSet_le
    (H : OpenSubgroup F) [CompactSpace F] [Finite X] :
    Nat.card (chosenRightSchreierGeneratorSet (F := F) (ι := ι) H) ≤
      Nat.card (OpenSubgroupRightQuotient H) * Nat.card X

The right Schreier generator set has the corresponding finite cardinality bound.

Show proof
theorem natCard_chosenRightNontrivialSchreierPairs_le
    (H : OpenSubgroup F) [CompactSpace F] [Finite X] :
    Nat.card (chosenRightNontrivialSchreierPairs (F := F) (ι := ι) H) ≤
      Nat.card (OpenSubgroupRightQuotient H) * Nat.card X

The number of nontrivial right Schreier pairs is bounded by the corresponding finite coset-generator product.

Show proof
theorem natCard_chosenRightSchreierGeneratorSet_le_nontrivialPairs
    (H : OpenSubgroup F) [CompactSpace F] [Finite X] :
    Nat.card (chosenRightSchreierGeneratorSet (F := F) (ι := ι) H) ≤
      Nat.card (chosenRightNontrivialSchreierPairs (F := F) (ι := ι) H)

The number of nontrivial right Schreier pairs is bounded by the corresponding finite coset-generator product.

Show proof
theorem natCard_range_chosenRightSchreierGeneratorFamily_le_rankTransform
    [Finite X] {x0 : X} (hx0 : ι x0 = 1)
    (H : OpenSubgroup F) [CompactSpace F] :
    Nat.card (Set.range (chosenRightSchreierGeneratorFamily (F := F) (ι := ι) H)) ≤
      _root_.ReidemeisterSchreier.Schreier.rankTransform (Nat.card X) (Nat.card (OpenSubgroupRightQuotient H))

The range of the right Schreier generator map has the corresponding finite cardinality bound.

Show proof
theorem natCard_chosenRightSchreierGeneratorSet_le_rankTransform
    [Finite X] {x0 : X} (hx0 : ι x0 = 1)
    (H : OpenSubgroup F) [CompactSpace F] :
    Nat.card (chosenRightSchreierGeneratorSet (F := F) (ι := ι) H) ≤
      _root_.ReidemeisterSchreier.Schreier.rankTransform (Nat.card X) (Nat.card (OpenSubgroupRightQuotient H))

The right Schreier generator set has the corresponding finite cardinality bound.

Show proof