ProCGroups.Presentations.SchreierTietze.Data

22 Theorem | 32 Definition | 9 Structure

This module develops the rewriting and basis constructions behind the subgroup calculations. It tracks words and relations through the chosen transversal to obtain the required presentation or basis statements.

import
Imported by

Declarations

def schreierPresentationHom
    (π : F →ₜ* G) (U : Subgroup G)
    (α : E →ₜ* presentationSubgroupPreimage π U) : E →ₜ* U :=
  (restrictPresentationHom π U).comp α

The presentation map to an open-subgroup target after a proposed Schreier source maps into the source preimage.

def openSchreierPresentationHom
    (π : F →ₜ* G) (U : OpenSubgroup G)
    (α : E →ₜ* presentationSubgroupPreimage π (U : Subgroup G)) :
    E →ₜ* ↥(U : Subgroup G) :=
  schreierPresentationHom π (U : Subgroup G) α

The same map, specialized to an open subgroup target.

structure SchreierRelatorPresentationData
    (π : F →ₜ* G) (U : Subgroup G) (R : Set E) where
  targetProC : ProCGroups.ProC.IsProCGroup C U
  sourceToPreimage : E →ₜ* presentationSubgroupPreimage π U
  sourceToOpen_surjective :
    Function.Surjective (schreierPresentationHom π U sourceToPreimage)
  kernel_eq_closedNormalClosure :
    (schreierPresentationHom π U sourceToPreimage).toMonoidHom.ker =
      closedNormalClosure R

The Reidemeister--Schreier relator transformation Schreier Relator Presentation Data preserves the normal-closure relation in the presented group.

structure OpenSubgroupSchreierRelatorPresentationData
    (π : F →ₜ* G) (U : OpenSubgroup G) (R : Set E) where
  sourceToPreimage : E →ₜ* presentationSubgroupPreimage π (U : Subgroup G)
  sourceToOpen_surjective :
    Function.Surjective (openSchreierPresentationHom π U sourceToPreimage)
  kernel_eq_closedNormalClosure :
    (openSchreierPresentationHom π U sourceToPreimage).toMonoidHom.ker =
      closedNormalClosure R

Open-subgroup Schreier presentation data with the rewriting map, surjectivity, and kernel identity recorded explicitly.

theorem isRelatorPresentationOf
    (D : SchreierRelatorPresentationData C π U R) :
    IsRelatorPresentationOf C (F := E) (G := U) R

The resulting Reidemeister--Schreier relators present the corresponding open subgroup.

Show proof
def clean
    (D : SchreierRelatorPresentationData C π U R)
    (T : RelatorTietzeData R S) :
    SchreierRelatorPresentationData C π U S where
  targetProC := D.targetProC
  sourceToPreimage := D.sourceToPreimage
  sourceToOpen_surjective := D.sourceToOpen_surjective
  kernel_eq_closedNormalClosure := by
    simpa [T.closedNormalClosure_eq] using D.kernel_eq_closedNormalClosure

Tietze-cleaning the relator set transports Schreier relator presentation data to the cleaned relators.

def delete_redundant_relators
    (Ddata : SchreierRelatorPresentationData C π U (R ∪ D))
    (hD : D ⊆ closedNormalClosure R) :
    SchreierRelatorPresentationData C π U R where
  targetProC := Ddata.targetProC
  sourceToPreimage := Ddata.sourceToPreimage
  sourceToOpen_surjective := Ddata.sourceToOpen_surjective
  kernel_eq_closedNormalClosure := by
    simpa [closedNormalClosure_union_eq_left (F := E) hD] using
      Ddata.kernel_eq_closedNormalClosure

Deleting redundant Reidemeister--Schreier relators preserves the relator presentation of the corresponding open subgroup.

def add_redundant_relators
    (Ddata : SchreierRelatorPresentationData C π U R)
    (hD : D ⊆ closedNormalClosure R) :
    SchreierRelatorPresentationData C π U (R ∪ D) where
  targetProC := Ddata.targetProC
  sourceToPreimage := Ddata.sourceToPreimage
  sourceToOpen_surjective := Ddata.sourceToOpen_surjective
  kernel_eq_closedNormalClosure := by
    simpa [closedNormalClosure_union_eq_left (F := E) hD] using
      Ddata.kernel_eq_closedNormalClosure

Adding redundant relators preserves the corresponding relator presentation data.

def delete_trivial_relators
    (Ddata : SchreierRelatorPresentationData C π U (R ∪ D))
    (hD : D ⊆ ({1} : Set E)) :
    SchreierRelatorPresentationData C π U R :=
  Ddata.delete_redundant_relators
    (subset_closedNormalClosure_of_subset_singleton_one (F := E) hD)

Deleting trivial relators preserves the corresponding presentation data.

def add_trivial_relators
    (Ddata : SchreierRelatorPresentationData C π U R)
    (hD : D ⊆ ({1} : Set E)) :
    SchreierRelatorPresentationData C π U (R ∪ D) :=
  Ddata.add_redundant_relators
    (subset_closedNormalClosure_of_subset_singleton_one (F := E) hD)

Adding trivial relators preserves the corresponding relator presentation data.

def delete_degenerate_schreier_relators
    {T : ProfiniteSchreierRelatorSets E}
    (Ddata : SchreierRelatorPresentationData C π U T.raw)
    (H : ProfiniteSchreierRelatorSets.DegenerateRelatorDeletionData T) :
    SchreierRelatorPresentationData C π U T.rewritten :=
  Ddata.clean H.relatorTietze_raw_rewritten

Deleting degenerate Schreier relators preserves the corresponding presentation data.

def clean_schreier_relators
    {T : ProfiniteSchreierRelatorSets E}
    (Ddata : SchreierRelatorPresentationData C π U T.raw)
    (H : ProfiniteSchreierRelatorSets.CleaningData T) :
    SchreierRelatorPresentationData C π U T.cleaned :=
  Ddata.clean H.relatorTietze_raw_cleaned

The cleaned Schreier relators retain the corresponding structural property for profinite or pro-\(C\) groups.

def targetProC
    (hC : ProCGroups.FiniteGroupClass.FullFormation C)
    (hG : ProCGroups.ProC.IsProCGroup C G) :
    ProCGroups.ProC.IsProCGroup C ↥(U : Subgroup G) := by
  have hUclosed : IsClosed (((U : Subgroup G) : Set G)) :=
    ProCGroups.openSubgroup_isClosed (G := G) U
  exact ProCGroups.ProC.IsProCGroup.of_isClosed_subgroup_of_fullFormation
    hC hG (U : Subgroup G) hUclosed

The target of a free presentation is pro-\(C\).

def toSchreierRelatorPresentationData
    (Ddata : OpenSubgroupSchreierRelatorPresentationData π U R)
    (hC : ProCGroups.FiniteGroupClass.FullFormation C)
    (hG : ProCGroups.ProC.IsProCGroup C G) :
    SchreierRelatorPresentationData C π (U : Subgroup G) R where
  targetProC := targetProC (C := C) (U := U) hC hG
  sourceToPreimage := Ddata.sourceToPreimage
  sourceToOpen_surjective := Ddata.sourceToOpen_surjective
  kernel_eq_closedNormalClosure := Ddata.kernel_eq_closedNormalClosure

Open-subgroup Schreier relator presentation data forgets to the ordinary Schreier relator presentation data.

theorem isRelatorPresentationOf
    (Ddata : OpenSubgroupSchreierRelatorPresentationData π U R)
    (hC : ProCGroups.FiniteGroupClass.FullFormation C)
    (hG : ProCGroups.ProC.IsProCGroup C G) :
    IsRelatorPresentationOf C (F := E) (G := ↥(U : Subgroup G)) R

The resulting Reidemeister--Schreier relators present the corresponding open subgroup.

Show proof
theorem isRelatorPresentationOf_of_ambientPresentation
    {R₀ : Set F}
    (Ddata : OpenSubgroupSchreierRelatorPresentationData π U R)
    (hC : ProCGroups.FiniteGroupClass.FullFormation C)
    (hambient : IsRelatorPresentationOf C (F := F) (G := G) R₀) :
    IsRelatorPresentationOf C (F := E) (G := ↥(U : Subgroup G)) R

The resulting Reidemeister--Schreier relators present the corresponding open subgroup.

Show proof
def clean
    (Ddata : OpenSubgroupSchreierRelatorPresentationData π U R)
    (T : RelatorTietzeData R S) :
    OpenSubgroupSchreierRelatorPresentationData π U S where
  sourceToPreimage := Ddata.sourceToPreimage
  sourceToOpen_surjective := Ddata.sourceToOpen_surjective
  kernel_eq_closedNormalClosure := by
    simpa [T.closedNormalClosure_eq] using Ddata.kernel_eq_closedNormalClosure

Tietze-cleaning the relator set transports open-subgroup Schreier relator presentation data to the cleaned relators.

def delete_redundant_relators
    (Ddata : OpenSubgroupSchreierRelatorPresentationData π U (R ∪ D))
    (hD : D ⊆ closedNormalClosure R) :
    OpenSubgroupSchreierRelatorPresentationData π U R where
  sourceToPreimage := Ddata.sourceToPreimage
  sourceToOpen_surjective := Ddata.sourceToOpen_surjective
  kernel_eq_closedNormalClosure := by
    simpa [closedNormalClosure_union_eq_left (F := E) hD] using
      Ddata.kernel_eq_closedNormalClosure

Deleting redundant Reidemeister--Schreier relators preserves the relator presentation of the corresponding open subgroup.

def add_redundant_relators
    (Ddata : OpenSubgroupSchreierRelatorPresentationData π U R)
    (hD : D ⊆ closedNormalClosure R) :
    OpenSubgroupSchreierRelatorPresentationData π U (R ∪ D) where
  sourceToPreimage := Ddata.sourceToPreimage
  sourceToOpen_surjective := Ddata.sourceToOpen_surjective
  kernel_eq_closedNormalClosure := by
    simpa [closedNormalClosure_union_eq_left (F := E) hD] using
      Ddata.kernel_eq_closedNormalClosure

Adding redundant relators preserves the corresponding relator presentation data.

def delete_trivial_relators
    (Ddata : OpenSubgroupSchreierRelatorPresentationData π U (R ∪ D))
    (hD : D ⊆ ({1} : Set E)) :
    OpenSubgroupSchreierRelatorPresentationData π U R :=
  Ddata.delete_redundant_relators
    (subset_closedNormalClosure_of_subset_singleton_one (F := E) hD)

Deleting trivial relators preserves the corresponding presentation data.

def add_trivial_relators
    (Ddata : OpenSubgroupSchreierRelatorPresentationData π U R)
    (hD : D ⊆ ({1} : Set E)) :
    OpenSubgroupSchreierRelatorPresentationData π U (R ∪ D) :=
  Ddata.add_redundant_relators
    (subset_closedNormalClosure_of_subset_singleton_one (F := E) hD)

Adding trivial relators preserves the corresponding relator presentation data.

def delete_degenerate_schreier_relators
    {T : ProfiniteSchreierRelatorSets E}
    (Ddata : OpenSubgroupSchreierRelatorPresentationData π U T.raw)
    (H : ProfiniteSchreierRelatorSets.DegenerateRelatorDeletionData T) :
    OpenSubgroupSchreierRelatorPresentationData π U T.rewritten :=
  Ddata.clean H.relatorTietze_raw_rewritten

Deleting degenerate Schreier relators preserves the corresponding presentation data.

def clean_schreier_relators
    {T : ProfiniteSchreierRelatorSets E}
    (Ddata : OpenSubgroupSchreierRelatorPresentationData π U T.raw)
    (H : ProfiniteSchreierRelatorSets.CleaningData T) :
    OpenSubgroupSchreierRelatorPresentationData π U T.cleaned :=
  Ddata.clean H.relatorTietze_raw_cleaned

The cleaned Schreier relators retain the corresponding structural property for profinite or pro-\(C\) groups.

theorem cleanedRelatorPresentationOf_of_ambientPresentation
    {R₀ : Set F} {T : ProfiniteSchreierRelatorSets E}
    (Ddata : OpenSubgroupSchreierRelatorPresentationData π U T.raw)
    (H : ProfiniteSchreierRelatorSets.CleaningData T)
    (hC : ProCGroups.FiniteGroupClass.FullFormation C)
    (hambient : IsRelatorPresentationOf C (F := F) (G := G) R₀) :
    IsRelatorPresentationOf C (F := E) (G := ↥(U : Subgroup G)) T.cleaned

The cleaned Reidemeister--Schreier relators still present the corresponding open subgroup.

Show proof
structure SchreierStandardPresentationData
    (π : F →ₜ* G) (U : Subgroup G)
    (rawRelators : Set E) (standardRelators : Set Eₛ) where
  rawData : SchreierRelatorPresentationData C π U rawRelators
  standardTietze : RelatorMapTietzeData rawRelators standardRelators

A standard-form Schreier presentation package when the final Tietze step may change the presentation source, as in deletion of redundant Schreier generators.

theorem isRelatorPresentationOf
    (D : SchreierStandardPresentationData C π U rawRelators standardRelators) :
    IsRelatorPresentationOf C (F := Eₛ) (G := U) standardRelators

The resulting Reidemeister--Schreier relators present the corresponding open subgroup.

Show proof
def ofCleaningData
    {T : ProfiniteSchreierRelatorSets E}
    (Ddata : SchreierRelatorPresentationData C π U T.raw)
    (H : ProfiniteSchreierRelatorSets.CleaningData T) :
    SchreierStandardPresentationData C π U T.raw T.cleaned where
  rawData := Ddata
  standardTietze :=
    RelatorMapTietzeData.ofRelatorTietzeData H.relatorTietze_raw_cleaned

Cleaning data produces the corresponding standard Schreier presentation data.

structure OpenSubgroupSchreierStandardPresentationData
    (π : F →ₜ* G) (U : OpenSubgroup G)
    (rawRelators : Set E) (standardRelators : Set Eₛ) where
  rawData : OpenSubgroupSchreierRelatorPresentationData π U rawRelators
  standardTietze : RelatorMapTietzeData rawRelators standardRelators

Standard-form data for an open subgroup, consisting of a raw Schreier presentation datum and a Tietze datum from the raw source to the final standard source.

theorem isRelatorPresentationOf
    (D : OpenSubgroupSchreierStandardPresentationData π U rawRelators standardRelators)
    (hC : ProCGroups.FiniteGroupClass.FullFormation C)
    (hG : ProCGroups.ProC.IsProCGroup C G) :
    IsRelatorPresentationOf C (F := Eₛ) (G := ↥(U : Subgroup G)) standardRelators

The resulting Reidemeister--Schreier relators present the corresponding open subgroup.

Show proof
theorem isRelatorPresentationOf_of_ambientPresentation
    {R₀ : Set F}
    (D : OpenSubgroupSchreierStandardPresentationData π U rawRelators standardRelators)
    (hC : ProCGroups.FiniteGroupClass.FullFormation C)
    (hambient : IsRelatorPresentationOf C (F := F) (G := G) R₀) :
    IsRelatorPresentationOf C (F := Eₛ) (G := ↥(U : Subgroup G)) standardRelators

The resulting Reidemeister--Schreier relators present the corresponding open subgroup.

Show proof
theorem isRelatorPresentationOf_of_ambientFreeRelatorPresentation
    {X : Type u} [TopologicalSpace X] {ι : X → F} {R₀ : Set F}
    (D : OpenSubgroupSchreierStandardPresentationData π U rawRelators standardRelators)
    (hC : ProCGroups.FiniteGroupClass.FullFormation C)
    (hambient : IsFreeRelatorPresentationOfClass C (F := F) (G := G) ι R₀) :
    IsRelatorPresentationOf C (F := Eₛ) (G := ↥(U : Subgroup G)) standardRelators

The resulting Reidemeister--Schreier relators present the corresponding open subgroup.

Show proof
def ofCleaningData
    {T : ProfiniteSchreierRelatorSets E}
    (Ddata : OpenSubgroupSchreierRelatorPresentationData π U T.raw)
    (H : ProfiniteSchreierRelatorSets.CleaningData T) :
    OpenSubgroupSchreierStandardPresentationData π U T.raw T.cleaned where
  rawData := Ddata
  standardTietze :=
    RelatorMapTietzeData.ofRelatorTietzeData H.relatorTietze_raw_cleaned

Cleaning data produces the corresponding standard Schreier presentation data.

theorem isRelatorPresentationOf_ofCleaningData
    {T : ProfiniteSchreierRelatorSets E}
    (Ddata : OpenSubgroupSchreierRelatorPresentationData π U T.raw)
    (H : ProfiniteSchreierRelatorSets.CleaningData T)
    (hC : ProCGroups.FiniteGroupClass.FullFormation C)
    (hG : ProCGroups.ProC.IsProCGroup C G) :
    IsRelatorPresentationOf C (F := E) (G := ↥(U : Subgroup G)) T.cleaned

The resulting Reidemeister--Schreier relators present the corresponding open subgroup.

Show proof
theorem isRelatorPresentationOf_ofCleaningData_of_ambientFreeRelatorPresentation
    {X : Type u} [TopologicalSpace X] {ι : X → F} {R₀ : Set F}
    {T : ProfiniteSchreierRelatorSets E}
    (Ddata : OpenSubgroupSchreierRelatorPresentationData π U T.raw)
    (H : ProfiniteSchreierRelatorSets.CleaningData T)
    (hC : ProCGroups.FiniteGroupClass.FullFormation C)
    (hambient : IsFreeRelatorPresentationOfClass C (F := F) (G := G) ι R₀) :
    IsRelatorPresentationOf C (F := E) (G := ↥(U : Subgroup G)) T.cleaned

The resulting Reidemeister--Schreier relators present the corresponding open subgroup.

Show proof
structure SchreierFreeRelatorPresentationData
    (η : Y → E) (π : F →ₜ* G) (U : Subgroup G) (R : Set E) where
  freeSource :
    ProCGroups.FreeProC.IsFreeProCGroup
      (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) η
  relatorData : SchreierRelatorPresentationData C π U R

A Schreier relator-presentation datum whose source is explicitly the free pro-\(C\) group on the chosen Schreier generators. This is the direct mathematical shape of \(U=(\text{Schreier generators}\mid\text{rewritten relators})_{\mathrm{pro}-C}\).

theorem isFreeRelatorPresentationOfClass
    (Ddata : SchreierFreeRelatorPresentationData C η π U R) :
    IsFreeRelatorPresentationOfClass C (F := E) (G := U) η R

The resulting Reidemeister--Schreier free-relator presentation belongs to the required class.

Show proof
theorem isRelatorPresentationOf
    (Ddata : SchreierFreeRelatorPresentationData C η π U R) :
    IsRelatorPresentationOf C (F := E) (G := U) R

The resulting Reidemeister--Schreier relators present the corresponding open subgroup.

Show proof
def clean
    (Ddata : SchreierFreeRelatorPresentationData C η π U R)
    (T : RelatorTietzeData R S) :
    SchreierFreeRelatorPresentationData C η π U S where
  freeSource := Ddata.freeSource
  relatorData := Ddata.relatorData.clean T

Tietze-cleaning the relator set preserves the free Schreier relator presentation package.

def delete_redundant_relators
    (Ddata : SchreierFreeRelatorPresentationData C η π U (R ∪ D))
    (hD : D ⊆ closedNormalClosure R) :
    SchreierFreeRelatorPresentationData C η π U R where
  freeSource := Ddata.freeSource
  relatorData := Ddata.relatorData.delete_redundant_relators hD

Deleting redundant Reidemeister--Schreier relators preserves the relator presentation of the corresponding open subgroup.

def delete_trivial_relators
    (Ddata : SchreierFreeRelatorPresentationData C η π U (R ∪ D))
    (hD : D ⊆ ({1} : Set E)) :
    SchreierFreeRelatorPresentationData C η π U R where
  freeSource := Ddata.freeSource
  relatorData := Ddata.relatorData.delete_trivial_relators hD

Deleting trivial relators preserves the corresponding presentation data.

def delete_degenerate_schreier_relators
    {T : ProfiniteSchreierRelatorSets E}
    (Ddata : SchreierFreeRelatorPresentationData C η π U T.raw)
    (H : ProfiniteSchreierRelatorSets.DegenerateRelatorDeletionData T) :
    SchreierFreeRelatorPresentationData C η π U T.rewritten :=
  Ddata.clean H.relatorTietze_raw_rewritten

Deleting degenerate Schreier relators preserves the corresponding presentation data.

def clean_schreier_relators
    {T : ProfiniteSchreierRelatorSets E}
    (Ddata : SchreierFreeRelatorPresentationData C η π U T.raw)
    (H : ProfiniteSchreierRelatorSets.CleaningData T) :
    SchreierFreeRelatorPresentationData C η π U T.cleaned :=
  Ddata.clean H.relatorTietze_raw_cleaned

The cleaned Schreier relators retain the corresponding structural property for profinite or pro-\(C\) groups.

structure OpenSubgroupSchreierFreeRelatorPresentationData
    (η : Y → E) (π : F →ₜ* G) (U : OpenSubgroup G) (R : Set E) where
  freeSource :
    ProCGroups.FreeProC.IsFreeProCGroup
      (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) η
  relatorData : OpenSubgroupSchreierRelatorPresentationData π U R

The open-subgroup version of Schreier free-relator presentation data. The open subgroup is shown to be pro-\(C\) from the ambient presentation and full-formation hypothesis.

theorem isFreeRelatorPresentationOfClass
    (Ddata : OpenSubgroupSchreierFreeRelatorPresentationData C η π U R)
    (hC : ProCGroups.FiniteGroupClass.FullFormation C)
    (hG : ProCGroups.ProC.IsProCGroup C G) :
    IsFreeRelatorPresentationOfClass C (F := E) (G := ↥(U : Subgroup G)) η R

The resulting Reidemeister--Schreier free-relator presentation belongs to the required class.

Show proof
theorem isFreeRelatorPresentationOfClass_of_ambientPresentation
    {R₀ : Set F}
    (Ddata : OpenSubgroupSchreierFreeRelatorPresentationData C η π U R)
    (hC : ProCGroups.FiniteGroupClass.FullFormation C)
    (hambient : IsRelatorPresentationOf C (F := F) (G := G) R₀) :
    IsFreeRelatorPresentationOfClass C (F := E) (G := ↥(U : Subgroup G)) η R

The resulting Reidemeister--Schreier free-relator presentation belongs to the required class.

Show proof
theorem isFreeRelatorPresentationOfClass_of_ambientFreeRelatorPresentation
    {X : Type u} [TopologicalSpace X] {ι : X → F} {R₀ : Set F}
    (Ddata : OpenSubgroupSchreierFreeRelatorPresentationData C η π U R)
    (hC : ProCGroups.FiniteGroupClass.FullFormation C)
    (hambient : IsFreeRelatorPresentationOfClass C (F := F) (G := G) ι R₀) :
    IsFreeRelatorPresentationOfClass C (F := E) (G := ↥(U : Subgroup G)) η R

The resulting Reidemeister--Schreier free-relator presentation belongs to the required class.

Show proof
def clean
    (Ddata : OpenSubgroupSchreierFreeRelatorPresentationData C η π U R)
    (T : RelatorTietzeData R S) :
    OpenSubgroupSchreierFreeRelatorPresentationData C η π U S where
  freeSource := Ddata.freeSource
  relatorData := Ddata.relatorData.clean T

Tietze-cleaning the relator set preserves the open-subgroup free Schreier relator presentation package.

def delete_redundant_relators
    (Ddata : OpenSubgroupSchreierFreeRelatorPresentationData C η π U (R ∪ D))
    (hD : D ⊆ closedNormalClosure R) :
    OpenSubgroupSchreierFreeRelatorPresentationData C η π U R where
  freeSource := Ddata.freeSource
  relatorData := Ddata.relatorData.delete_redundant_relators hD

Deleting redundant Reidemeister--Schreier relators preserves the relator presentation of the corresponding open subgroup.

def delete_trivial_relators
    (Ddata : OpenSubgroupSchreierFreeRelatorPresentationData C η π U (R ∪ D))
    (hD : D ⊆ ({1} : Set E)) :
    OpenSubgroupSchreierFreeRelatorPresentationData C η π U R where
  freeSource := Ddata.freeSource
  relatorData := Ddata.relatorData.delete_trivial_relators hD

Deleting trivial relators preserves the corresponding presentation data.

def delete_degenerate_schreier_relators
    {T : ProfiniteSchreierRelatorSets E}
    (Ddata : OpenSubgroupSchreierFreeRelatorPresentationData C η π U T.raw)
    (H : ProfiniteSchreierRelatorSets.DegenerateRelatorDeletionData T) :
    OpenSubgroupSchreierFreeRelatorPresentationData C η π U T.rewritten :=
  Ddata.clean H.relatorTietze_raw_rewritten

Deleting degenerate Schreier relators preserves the corresponding presentation data.

def clean_schreier_relators
    {T : ProfiniteSchreierRelatorSets E}
    (Ddata : OpenSubgroupSchreierFreeRelatorPresentationData C η π U T.raw)
    (H : ProfiniteSchreierRelatorSets.CleaningData T) :
    OpenSubgroupSchreierFreeRelatorPresentationData C η π U T.cleaned :=
  Ddata.clean H.relatorTietze_raw_cleaned

The cleaned Schreier relators retain the corresponding structural property for profinite or pro-\(C\) groups.

theorem cleanedFreeRelatorPresentationOf_of_ambientFreeRelatorPresentation
    {X : Type u} [TopologicalSpace X] {ι : X → F} {R₀ : Set F}
    {T : ProfiniteSchreierRelatorSets E}
    (Ddata : OpenSubgroupSchreierFreeRelatorPresentationData C η π U T.raw)
    (H : ProfiniteSchreierRelatorSets.CleaningData T)
    (hC : ProCGroups.FiniteGroupClass.FullFormation C)
    (hambient : IsFreeRelatorPresentationOfClass C (F := F) (G := G) ι R₀) :
    IsFreeRelatorPresentationOfClass C (F := E) (G := ↥(U : Subgroup G)) η T.cleaned

The cleaned Reidemeister--Schreier free-relator presentation induced from the ambient presentation presents the open subgroup.

Show proof
structure OpenSubgroupSchreierStandardFreeRelatorPresentationData
    (ηₛ : Yₛ → Eₛ) (π : F →ₜ* G) (U : OpenSubgroup G)
    (rawRelators : Set E) (standardRelators : Set Eₛ) where
  freeStandardSource :
    ProCGroups.FreeProC.IsFreeProCGroup
      (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) ηₛ
  standardData :
    OpenSubgroupSchreierStandardPresentationData π U rawRelators standardRelators

Standard-form free Schreier presentation data. The final source is explicitly free on the surviving Schreier generators after generator deletion.

theorem isFreeRelatorPresentationOfClass
    (D : OpenSubgroupSchreierStandardFreeRelatorPresentationData
      C ηₛ π U rawRelators standardRelators)
    (hC : ProCGroups.FiniteGroupClass.FullFormation C)
    (hG : ProCGroups.ProC.IsProCGroup C G) :
    IsFreeRelatorPresentationOfClass C
      (F := Eₛ) (G := ↥(U : Subgroup G)) ηₛ standardRelators

The resulting Reidemeister--Schreier free-relator presentation belongs to the required class.

Show proof
theorem isFreeRelatorPresentationOfClass_of_ambientFreeRelatorPresentation
    {X : Type u} [TopologicalSpace X] {ι : X → F} {R₀ : Set F}
    (D : OpenSubgroupSchreierStandardFreeRelatorPresentationData
      C ηₛ π U rawRelators standardRelators)
    (hC : ProCGroups.FiniteGroupClass.FullFormation C)
    (hambient : IsFreeRelatorPresentationOfClass C (F := F) (G := G) ι R₀) :
    IsFreeRelatorPresentationOfClass C
      (F := Eₛ) (G := ↥(U : Subgroup G)) ηₛ standardRelators

The resulting Reidemeister--Schreier free-relator presentation belongs to the required class.

Show proof
structure OpenSubgroupSchreierFreeRewritingPresentationData
    (η : Y → E) (π : F →ₜ* G) (U : OpenSubgroup G)
    (Srw : ProfiniteSchreierRewritingRelatorSets Q F E) where
  freeSource :
    ProCGroups.FreeProC.IsFreeProCGroup
      (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) η
  relatorData :
    OpenSubgroupSchreierRelatorPresentationData π U Srw.toRelatorSets.raw

Open-subgroup free Schreier presentation data whose rewritten relators are definitionally constructed from a map \(\tau\).

def toRawFreeRelatorPresentationData
    (Ddata : OpenSubgroupSchreierFreeRewritingPresentationData C η π U Srw) :
    OpenSubgroupSchreierFreeRelatorPresentationData C η π U Srw.toRelatorSets.raw where
  freeSource := Ddata.freeSource
  relatorData := Ddata.relatorData

The free rewriting presentation data forgets to the corresponding raw free-relator presentation data.

theorem rawFreeRelatorPresentationOf_of_ambientFreeRelatorPresentation
    {X : Type u} [TopologicalSpace X] {ι : X → F}
    (Ddata : OpenSubgroupSchreierFreeRewritingPresentationData C η π U Srw)
    (hC : ProCGroups.FiniteGroupClass.FullFormation C)
    (hambient :
      IsFreeRelatorPresentationOfClass C (F := F) (G := G) ι Srw.originalRelators) :
    IsFreeRelatorPresentationOfClass C
      (F := E) (G := ↥(U : Subgroup G)) η Srw.toRelatorSets.raw

The raw Reidemeister--Schreier free-relator presentation induced from the ambient presentation presents the open subgroup.

Show proof
theorem rewrittenFreeRelatorPresentationOf_of_ambientFreeRelatorPresentation
    {X : Type u} [TopologicalSpace X] {ι : X → F}
    (Ddata : OpenSubgroupSchreierFreeRewritingPresentationData C η π U Srw)
    (H : ProfiniteSchreierRewritingRelatorSets.DegenerateRelatorDeletionData Srw)
    (hC : ProCGroups.FiniteGroupClass.FullFormation C)
    (hambient :
      IsFreeRelatorPresentationOfClass C (F := F) (G := G) ι Srw.originalRelators) :
    IsFreeRelatorPresentationOfClass C
      (F := E) (G := ↥(U : Subgroup G)) η Srw.toRelatorSets.rewritten

The rewritten Reidemeister--Schreier free-relator presentation induced from the ambient presentation presents the open subgroup.

Show proof
theorem cleanedFreeRelatorPresentationOf_of_ambientFreeRelatorPresentation
    {X : Type u} [TopologicalSpace X] {ι : X → F}
    (Ddata : OpenSubgroupSchreierFreeRewritingPresentationData C η π U Srw)
    (H : ProfiniteSchreierRewritingRelatorSets.CleaningData Srw)
    (hC : ProCGroups.FiniteGroupClass.FullFormation C)
    (hambient :
      IsFreeRelatorPresentationOfClass C (F := F) (G := G) ι Srw.originalRelators) :
    IsFreeRelatorPresentationOfClass C
      (F := E) (G := ↥(U : Subgroup G)) η Srw.toRelatorSets.cleaned

The cleaned Reidemeister--Schreier free-relator presentation induced from the ambient presentation presents the open subgroup.

Show proof
structure OpenSubgroupSchreierStandardFreeRewritingPresentationData
    (ηₛ : Yₛ → Eₛ) (π : F →ₜ* G) (U : OpenSubgroup G)
    (Srw : ProfiniteSchreierRewritingRelatorSets Q F E)
    (standardRelators : Set Eₛ) where
  freeStandardSource :
    ProCGroups.FreeProC.IsFreeProCGroup
      (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) ηₛ
  standardData :
    OpenSubgroupSchreierStandardPresentationData π U Srw.toRelatorSets.raw standardRelators

Standard-form free Schreier presentation data whose raw relators are built from \(\tau\). The standard source may differ from the raw source after deleting redundant Schreier generators.

def toStandardFreeRelatorPresentationData
    (D : OpenSubgroupSchreierStandardFreeRewritingPresentationData
      C ηₛ π U Srw standardRelators) :
    OpenSubgroupSchreierStandardFreeRelatorPresentationData
      C ηₛ π U Srw.toRelatorSets.raw standardRelators where
  freeStandardSource := D.freeStandardSource
  standardData := D.standardData

The standard free rewriting presentation data forgets to standard free-relator presentation data.

theorem isFreeRelatorPresentationOfClass_of_ambientFreeRelatorPresentation
    {X : Type u} [TopologicalSpace X] {ι : X → F}
    (D : OpenSubgroupSchreierStandardFreeRewritingPresentationData
      C ηₛ π U Srw standardRelators)
    (hC : ProCGroups.FiniteGroupClass.FullFormation C)
    (hambient :
      IsFreeRelatorPresentationOfClass C (F := F) (G := G) ι Srw.originalRelators) :
    IsFreeRelatorPresentationOfClass C
      (F := Eₛ) (G := ↥(U : Subgroup G)) ηₛ standardRelators

The resulting Reidemeister--Schreier free-relator presentation belongs to the required class.

Show proof