ProCGroups/Presentations/SchreierTietze/Data.lean
1import ProCGroups.Presentations.SchreierTietze.Restricted
3/-
4PUBLIC_PAGE_SNAPSHOT
5generated_at: 2026-05-27T09:47:29+09:00
6lean_source: lean4/ProCGroups/Presentations/SchreierTietze/Data.lean
7translation_root: data/translation
8purpose: identifies the local data snapshot used to build pages/
9placement: after imports, never before imports
10-/
11/-!
12# Profinite presentations
14Presentation-level API for profinite groups, finite quotients, relators, and Schreier-Tietze restrictions.
15-/
17noncomputable section
19open scoped Topology
21namespace ProCGroups.Presentations
23universe u v w
27variable (C : ProCGroups.FiniteGroupClass.{u})
28variable {E F G : Type u} [Group E] [Group F] [Group G]
29variable [TopologicalSpace E] [TopologicalSpace F] [TopologicalSpace G]
30variable [IsTopologicalGroup E] [IsTopologicalGroup F] [IsTopologicalGroup G]
32/-- The presentation map to an open-subgroup target after a proposed Schreier source
33maps into the source preimage. -/
36 (α : E →ₜ* presentationSubgroupPreimage π U) : E →ₜ* U :=
37 (restrictPresentationHom π U).comp α
39/-- The same map, specialized to an open subgroup target. -/
42 (α : E →ₜ* presentationSubgroupPreimage π (U : Subgroup G)) :
43 E →ₜ* ↥(U : Subgroup G) :=
44 schreierPresentationHom π (U : Subgroup G) α
46/-- Abstract profinite Reidemeister-Schreier presentation data.
48Here `E` is the proposed source on Schreier generators, `R` is the raw or cleaned
51surjectivity onto `U` and equality of the kernel with the closed normal closure
52of the rewritten relators. -/
53structure SchreierRelatorPresentationData
55 targetProC : ProCGroups.ProC.IsProCGroup C U
56 sourceToPreimage : E →ₜ* presentationSubgroupPreimage π U
57 sourceToOpen_surjective :
58 Function.Surjective (schreierPresentationHom π U sourceToPreimage)
60 (schreierPresentationHom π U sourceToPreimage).toMonoidHom.ker =
61 closedNormalClosure R
63/-- Open-subgroup Schreier presentation data with the rewriting map, surjectivity, and kernel
64identity recorded explicitly. -/
67 sourceToPreimage : E →ₜ* presentationSubgroupPreimage π (U : Subgroup G)
68 sourceToOpen_surjective :
69 Function.Surjective (openSchreierPresentationHom π U sourceToPreimage)
71 (openSchreierPresentationHom π U sourceToPreimage).toMonoidHom.ker =
72 closedNormalClosure R
74namespace SchreierRelatorPresentationData
76variable {C}
79omit [IsTopologicalGroup F] in
80theorem isRelatorPresentationOf
81 (D : SchreierRelatorPresentationData C π U R) :
82 IsRelatorPresentationOf C (F := E) (G := U) R := by
83 exact ⟨D.targetProC, schreierPresentationHom π U D.sourceToPreimage,
84 D.sourceToOpen_surjective, D.kernel_eq_closedNormalClosure⟩
86def clean
87 (D : SchreierRelatorPresentationData C π U R)
88 (T : RelatorTietzeData R S) :
89 SchreierRelatorPresentationData C π U S where
90 targetProC := D.targetProC
91 sourceToPreimage := D.sourceToPreimage
92 sourceToOpen_surjective := D.sourceToOpen_surjective
94 simpa [T.closedNormalClosure_eq] using D.kernel_eq_closedNormalClosure
96def delete_redundant_relators
97 (Ddata : SchreierRelatorPresentationData C π U (R ∪ D))
98 (hD : D ⊆ closedNormalClosure R) :
99 SchreierRelatorPresentationData C π U R where
100 targetProC := Ddata.targetProC
101 sourceToPreimage := Ddata.sourceToPreimage
102 sourceToOpen_surjective := Ddata.sourceToOpen_surjective
104 simpa [closedNormalClosure_union_eq_left (F := E) hD] using
105 Ddata.kernel_eq_closedNormalClosure
107def add_redundant_relators
108 (Ddata : SchreierRelatorPresentationData C π U R)
109 (hD : D ⊆ closedNormalClosure R) :
110 SchreierRelatorPresentationData C π U (R ∪ D) where
111 targetProC := Ddata.targetProC
112 sourceToPreimage := Ddata.sourceToPreimage
113 sourceToOpen_surjective := Ddata.sourceToOpen_surjective
115 simpa [closedNormalClosure_union_eq_left (F := E) hD] using
116 Ddata.kernel_eq_closedNormalClosure
118def delete_trivial_relators
119 (Ddata : SchreierRelatorPresentationData C π U (R ∪ D))
120 (hD : D ⊆ ({1} : Set E)) :
121 SchreierRelatorPresentationData C π U R :=
122 Ddata.delete_redundant_relators
123 (subset_closedNormalClosure_of_subset_singleton_one (F := E) hD)
125def add_trivial_relators
126 (Ddata : SchreierRelatorPresentationData C π U R)
127 (hD : D ⊆ ({1} : Set E)) :
128 SchreierRelatorPresentationData C π U (R ∪ D) :=
129 Ddata.add_redundant_relators
130 (subset_closedNormalClosure_of_subset_singleton_one (F := E) hD)
132def delete_degenerate_schreier_relators
133 {T : ProfiniteSchreierRelatorSets E}
134 (Ddata : SchreierRelatorPresentationData C π U T.raw)
135 (H : ProfiniteSchreierRelatorSets.DegenerateRelatorDeletionData T) :
136 SchreierRelatorPresentationData C π U T.rewritten :=
137 Ddata.clean H.relatorTietze_raw_rewritten
139def clean_schreier_relators
140 {T : ProfiniteSchreierRelatorSets E}
141 (Ddata : SchreierRelatorPresentationData C π U T.raw)
142 (H : ProfiniteSchreierRelatorSets.CleaningData T) :
143 SchreierRelatorPresentationData C π U T.cleaned :=
144 Ddata.clean H.relatorTietze_raw_cleaned
150variable {C}
153def targetProC
155 (hG : ProCGroups.ProC.IsProCGroup C G) :
156 ProCGroups.ProC.IsProCGroup C ↥(U : Subgroup G) := by
157 have hUclosed : IsClosed (((U : Subgroup G) : Set G)) :=
158 ProCGroups.openSubgroup_isClosed (G := G) U
160 hC hG (U : Subgroup G) hUclosed
163 (Ddata : OpenSubgroupSchreierRelatorPresentationData π U R)
165 (hG : ProCGroups.ProC.IsProCGroup C G) :
166 SchreierRelatorPresentationData C π (U : Subgroup G) R where
167 targetProC := targetProC (C := C) (U := U) hC hG
168 sourceToPreimage := Ddata.sourceToPreimage
169 sourceToOpen_surjective := Ddata.sourceToOpen_surjective
170 kernel_eq_closedNormalClosure := Ddata.kernel_eq_closedNormalClosure
172omit [IsTopologicalGroup F] in
173theorem isRelatorPresentationOf
174 (Ddata : OpenSubgroupSchreierRelatorPresentationData π U R)
176 (hG : ProCGroups.ProC.IsProCGroup C G) :
177 IsRelatorPresentationOf C (F := E) (G := ↥(U : Subgroup G)) R :=
178 (Ddata.toSchreierRelatorPresentationData hC hG).isRelatorPresentationOf
180theorem isRelatorPresentationOf_of_ambientPresentation
181 {R₀ : Set F}
182 (Ddata : OpenSubgroupSchreierRelatorPresentationData π U R)
184 (hambient : IsRelatorPresentationOf C (F := F) (G := G) R₀) :
185 IsRelatorPresentationOf C (F := E) (G := ↥(U : Subgroup G)) R :=
186 Ddata.isRelatorPresentationOf hC hambient.1
188def clean
189 (Ddata : OpenSubgroupSchreierRelatorPresentationData π U R)
190 (T : RelatorTietzeData R S) :
191 OpenSubgroupSchreierRelatorPresentationData π U S where
192 sourceToPreimage := Ddata.sourceToPreimage
193 sourceToOpen_surjective := Ddata.sourceToOpen_surjective
195 simpa [T.closedNormalClosure_eq] using Ddata.kernel_eq_closedNormalClosure
197def delete_redundant_relators
198 (Ddata : OpenSubgroupSchreierRelatorPresentationData π U (R ∪ D))
199 (hD : D ⊆ closedNormalClosure R) :
200 OpenSubgroupSchreierRelatorPresentationData π U R where
201 sourceToPreimage := Ddata.sourceToPreimage
202 sourceToOpen_surjective := Ddata.sourceToOpen_surjective
204 simpa [closedNormalClosure_union_eq_left (F := E) hD] using
205 Ddata.kernel_eq_closedNormalClosure
207def add_redundant_relators
208 (Ddata : OpenSubgroupSchreierRelatorPresentationData π U R)
209 (hD : D ⊆ closedNormalClosure R) :
210 OpenSubgroupSchreierRelatorPresentationData π U (R ∪ D) where
211 sourceToPreimage := Ddata.sourceToPreimage
212 sourceToOpen_surjective := Ddata.sourceToOpen_surjective
214 simpa [closedNormalClosure_union_eq_left (F := E) hD] using
215 Ddata.kernel_eq_closedNormalClosure
217def delete_trivial_relators
218 (Ddata : OpenSubgroupSchreierRelatorPresentationData π U (R ∪ D))
219 (hD : D ⊆ ({1} : Set E)) :
221 Ddata.delete_redundant_relators
222 (subset_closedNormalClosure_of_subset_singleton_one (F := E) hD)
224def add_trivial_relators
225 (Ddata : OpenSubgroupSchreierRelatorPresentationData π U R)
226 (hD : D ⊆ ({1} : Set E)) :
227 OpenSubgroupSchreierRelatorPresentationData π U (R ∪ D) :=
228 Ddata.add_redundant_relators
229 (subset_closedNormalClosure_of_subset_singleton_one (F := E) hD)
231def delete_degenerate_schreier_relators
232 {T : ProfiniteSchreierRelatorSets E}
233 (Ddata : OpenSubgroupSchreierRelatorPresentationData π U T.raw)
234 (H : ProfiniteSchreierRelatorSets.DegenerateRelatorDeletionData T) :
235 OpenSubgroupSchreierRelatorPresentationData π U T.rewritten :=
236 Ddata.clean H.relatorTietze_raw_rewritten
238def clean_schreier_relators
239 {T : ProfiniteSchreierRelatorSets E}
240 (Ddata : OpenSubgroupSchreierRelatorPresentationData π U T.raw)
241 (H : ProfiniteSchreierRelatorSets.CleaningData T) :
242 OpenSubgroupSchreierRelatorPresentationData π U T.cleaned :=
243 Ddata.clean H.relatorTietze_raw_cleaned
246 {R₀ : Set F} {T : ProfiniteSchreierRelatorSets E}
247 (Ddata : OpenSubgroupSchreierRelatorPresentationData π U T.raw)
248 (H : ProfiniteSchreierRelatorSets.CleaningData T)
250 (hambient : IsRelatorPresentationOf C (F := F) (G := G) R₀) :
251 IsRelatorPresentationOf C (F := E) (G := ↥(U : Subgroup G)) T.cleaned :=
252 (Ddata.clean_schreier_relators H).isRelatorPresentationOf hC hambient.1
256section StandardPresentationData
258variable {Eₛ : Type u} [Group Eₛ] [TopologicalSpace Eₛ] [IsTopologicalGroup Eₛ]
260/-- A standard-form Schreier presentation package when the final Tietze step may change the
261presentation source, as in deletion of redundant Schreier generators. -/
262structure SchreierStandardPresentationData
264 (rawRelators : Set E) (standardRelators : Set Eₛ) where
265 rawData : SchreierRelatorPresentationData C π U rawRelators
266 standardTietze : RelatorMapTietzeData rawRelators standardRelators
268namespace SchreierStandardPresentationData
270variable {C}
272variable {rawRelators : Set E} {standardRelators : Set Eₛ}
274omit [IsTopologicalGroup F] in
275theorem isRelatorPresentationOf
276 (D : SchreierStandardPresentationData C π U rawRelators standardRelators) :
277 IsRelatorPresentationOf C (F := Eₛ) (G := U) standardRelators :=
278 D.standardTietze.presentation (C := C) (G := U) D.rawData.isRelatorPresentationOf
280def ofCleaningData
281 {T : ProfiniteSchreierRelatorSets E}
282 (Ddata : SchreierRelatorPresentationData C π U T.raw)
283 (H : ProfiniteSchreierRelatorSets.CleaningData T) :
284 SchreierStandardPresentationData C π U T.raw T.cleaned where
285 rawData := Ddata
286 standardTietze :=
287 RelatorMapTietzeData.ofRelatorTietzeData H.relatorTietze_raw_cleaned
291/-- Standard-form data for an open subgroup, consisting of a raw Schreier presentation datum and
292a Tietze datum from the raw source to the final standard source. -/
295 (rawRelators : Set E) (standardRelators : Set Eₛ) where
296 rawData : OpenSubgroupSchreierRelatorPresentationData π U rawRelators
297 standardTietze : RelatorMapTietzeData rawRelators standardRelators
301variable {C}
303variable {rawRelators : Set E} {standardRelators : Set Eₛ}
305omit [IsTopologicalGroup F] in
306theorem isRelatorPresentationOf
307 (D : OpenSubgroupSchreierStandardPresentationData π U rawRelators standardRelators)
309 (hG : ProCGroups.ProC.IsProCGroup C G) :
310 IsRelatorPresentationOf C (F := Eₛ) (G := ↥(U : Subgroup G)) standardRelators :=
311 D.standardTietze.presentation (C := C) (G := ↥(U : Subgroup G))
312 (D.rawData.isRelatorPresentationOf hC hG)
314theorem isRelatorPresentationOf_of_ambientPresentation
315 {R₀ : Set F}
316 (D : OpenSubgroupSchreierStandardPresentationData π U rawRelators standardRelators)
318 (hambient : IsRelatorPresentationOf C (F := F) (G := G) R₀) :
319 IsRelatorPresentationOf C (F := Eₛ) (G := ↥(U : Subgroup G)) standardRelators :=
320 D.isRelatorPresentationOf hC hambient.1
323 {X : Type u} [TopologicalSpace X] {ι : X → F} {R₀ : Set F}
324 (D : OpenSubgroupSchreierStandardPresentationData π U rawRelators standardRelators)
326 (hambient : IsFreeRelatorPresentationOfClass C (F := F) (G := G) ι R₀) :
327 IsRelatorPresentationOf C (F := Eₛ) (G := ↥(U : Subgroup G)) standardRelators :=
328 D.isRelatorPresentationOf hC
329 (IsFreeRelatorPresentationOfClass.isRelatorPresentationOf (C := C) (G := G) hambient).1
331def ofCleaningData
332 {T : ProfiniteSchreierRelatorSets E}
333 (Ddata : OpenSubgroupSchreierRelatorPresentationData π U T.raw)
334 (H : ProfiniteSchreierRelatorSets.CleaningData T) :
335 OpenSubgroupSchreierStandardPresentationData π U T.raw T.cleaned where
336 rawData := Ddata
337 standardTietze :=
338 RelatorMapTietzeData.ofRelatorTietzeData H.relatorTietze_raw_cleaned
340omit [IsTopologicalGroup F] in
342 {T : ProfiniteSchreierRelatorSets E}
343 (Ddata : OpenSubgroupSchreierRelatorPresentationData π U T.raw)
344 (H : ProfiniteSchreierRelatorSets.CleaningData T)
346 (hG : ProCGroups.ProC.IsProCGroup C G) :
347 IsRelatorPresentationOf C (F := E) (G := ↥(U : Subgroup G)) T.cleaned :=
348 (ofCleaningData Ddata H).isRelatorPresentationOf hC hG
351 {X : Type u} [TopologicalSpace X] {ι : X → F} {R₀ : Set F}
352 {T : ProfiniteSchreierRelatorSets E}
353 (Ddata : OpenSubgroupSchreierRelatorPresentationData π U T.raw)
354 (H : ProfiniteSchreierRelatorSets.CleaningData T)
356 (hambient : IsFreeRelatorPresentationOfClass C (F := F) (G := G) ι R₀) :
357 IsRelatorPresentationOf C (F := E) (G := ↥(U : Subgroup G)) T.cleaned :=
358 (ofCleaningData Ddata H).isRelatorPresentationOf_of_ambientFreeRelatorPresentation
359 hC hambient
363section FreeSourcePresentationData
365variable {Y Yₛ : Type u} [TopologicalSpace Y] [TopologicalSpace Yₛ]
366variable {η : Y → E} {ηₛ : Yₛ → Eₛ}
368/-- A Schreier relator-presentation datum whose source is explicitly the free pro-`C` group on
369the chosen Schreier generators. This is the direct formal shape of
371structure SchreierFreeRelatorPresentationData
375 (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) η
376 relatorData : SchreierRelatorPresentationData C π U R
378namespace SchreierFreeRelatorPresentationData
380variable {C}
383omit [IsTopologicalGroup F] in
384theorem isFreeRelatorPresentationOfClass
385 (Ddata : SchreierFreeRelatorPresentationData C η π U R) :
386 IsFreeRelatorPresentationOfClass C (F := E) (G := U) η R := by
387 exact ⟨Ddata.freeSource, by simpa using Ddata.relatorData.targetProC,
388 schreierPresentationHom π U Ddata.relatorData.sourceToPreimage,
389 Ddata.relatorData.sourceToOpen_surjective,
390 Ddata.relatorData.kernel_eq_closedNormalClosure⟩
392omit [IsTopologicalGroup F] in
393theorem isRelatorPresentationOf
394 (Ddata : SchreierFreeRelatorPresentationData C η π U R) :
395 IsRelatorPresentationOf C (F := E) (G := U) R :=
396 Ddata.isFreeRelatorPresentationOfClass.isRelatorPresentationOf
398def clean
399 (Ddata : SchreierFreeRelatorPresentationData C η π U R)
400 (T : RelatorTietzeData R S) :
401 SchreierFreeRelatorPresentationData C η π U S where
402 freeSource := Ddata.freeSource
403 relatorData := Ddata.relatorData.clean T
405def delete_redundant_relators
406 (Ddata : SchreierFreeRelatorPresentationData C η π U (R ∪ D))
407 (hD : D ⊆ closedNormalClosure R) :
408 SchreierFreeRelatorPresentationData C η π U R where
409 freeSource := Ddata.freeSource
410 relatorData := Ddata.relatorData.delete_redundant_relators hD
412def delete_trivial_relators
413 (Ddata : SchreierFreeRelatorPresentationData C η π U (R ∪ D))
414 (hD : D ⊆ ({1} : Set E)) :
415 SchreierFreeRelatorPresentationData C η π U R where
416 freeSource := Ddata.freeSource
417 relatorData := Ddata.relatorData.delete_trivial_relators hD
419def delete_degenerate_schreier_relators
420 {T : ProfiniteSchreierRelatorSets E}
421 (Ddata : SchreierFreeRelatorPresentationData C η π U T.raw)
422 (H : ProfiniteSchreierRelatorSets.DegenerateRelatorDeletionData T) :
423 SchreierFreeRelatorPresentationData C η π U T.rewritten :=
424 Ddata.clean H.relatorTietze_raw_rewritten
426def clean_schreier_relators
427 {T : ProfiniteSchreierRelatorSets E}
428 (Ddata : SchreierFreeRelatorPresentationData C η π U T.raw)
429 (H : ProfiniteSchreierRelatorSets.CleaningData T) :
430 SchreierFreeRelatorPresentationData C η π U T.cleaned :=
431 Ddata.clean H.relatorTietze_raw_cleaned
435/-- The open-subgroup version of `SchreierFreeRelatorPresentationData`. The open subgroup is
441 (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) η
442 relatorData : OpenSubgroupSchreierRelatorPresentationData π U R
446variable {C}
449omit [IsTopologicalGroup F] in
450theorem isFreeRelatorPresentationOfClass
451 (Ddata : OpenSubgroupSchreierFreeRelatorPresentationData C η π U R)
453 (hG : ProCGroups.ProC.IsProCGroup C G) :
454 IsFreeRelatorPresentationOfClass C (F := E) (G := ↥(U : Subgroup G)) η R := by
455 have hU : ProCGroups.ProC.IsProCGroup C ↥(U : Subgroup G) :=
456 OpenSubgroupSchreierRelatorPresentationData.targetProC (C := C) (U := U) hC hG
457 exact ⟨Ddata.freeSource, by simpa using hU,
458 openSchreierPresentationHom π U Ddata.relatorData.sourceToPreimage,
459 Ddata.relatorData.sourceToOpen_surjective,
460 Ddata.relatorData.kernel_eq_closedNormalClosure⟩
463 {R₀ : Set F}
464 (Ddata : OpenSubgroupSchreierFreeRelatorPresentationData C η π U R)
466 (hambient : IsRelatorPresentationOf C (F := F) (G := G) R₀) :
467 IsFreeRelatorPresentationOfClass C (F := E) (G := ↥(U : Subgroup G)) η R :=
468 Ddata.isFreeRelatorPresentationOfClass hC hambient.1
470theorem isFreeRelatorPresentationOfClass_of_ambientFreeRelatorPresentation
471 {X : Type u} [TopologicalSpace X] {ι : X → F} {R₀ : Set F}
472 (Ddata : OpenSubgroupSchreierFreeRelatorPresentationData C η π U R)
474 (hambient : IsFreeRelatorPresentationOfClass C (F := F) (G := G) ι R₀) :
475 IsFreeRelatorPresentationOfClass C (F := E) (G := ↥(U : Subgroup G)) η R :=
476 Ddata.isFreeRelatorPresentationOfClass hC
477 (IsFreeRelatorPresentationOfClass.isRelatorPresentationOf
478 (C := C) (G := G) hambient).1
480def clean
481 (Ddata : OpenSubgroupSchreierFreeRelatorPresentationData C η π U R)
482 (T : RelatorTietzeData R S) :
483 OpenSubgroupSchreierFreeRelatorPresentationData C η π U S where
484 freeSource := Ddata.freeSource
485 relatorData := Ddata.relatorData.clean T
487def delete_redundant_relators
488 (Ddata : OpenSubgroupSchreierFreeRelatorPresentationData C η π U (R ∪ D))
489 (hD : D ⊆ closedNormalClosure R) :
490 OpenSubgroupSchreierFreeRelatorPresentationData C η π U R where
491 freeSource := Ddata.freeSource
492 relatorData := Ddata.relatorData.delete_redundant_relators hD
494def delete_trivial_relators
495 (Ddata : OpenSubgroupSchreierFreeRelatorPresentationData C η π U (R ∪ D))
496 (hD : D ⊆ ({1} : Set E)) :
497 OpenSubgroupSchreierFreeRelatorPresentationData C η π U R where
498 freeSource := Ddata.freeSource
499 relatorData := Ddata.relatorData.delete_trivial_relators hD
501def delete_degenerate_schreier_relators
502 {T : ProfiniteSchreierRelatorSets E}
503 (Ddata : OpenSubgroupSchreierFreeRelatorPresentationData C η π U T.raw)
504 (H : ProfiniteSchreierRelatorSets.DegenerateRelatorDeletionData T) :
505 OpenSubgroupSchreierFreeRelatorPresentationData C η π U T.rewritten :=
506 Ddata.clean H.relatorTietze_raw_rewritten
508def clean_schreier_relators
509 {T : ProfiniteSchreierRelatorSets E}
510 (Ddata : OpenSubgroupSchreierFreeRelatorPresentationData C η π U T.raw)
511 (H : ProfiniteSchreierRelatorSets.CleaningData T) :
512 OpenSubgroupSchreierFreeRelatorPresentationData C η π U T.cleaned :=
513 Ddata.clean H.relatorTietze_raw_cleaned
515theorem cleanedFreeRelatorPresentationOf_of_ambientFreeRelatorPresentation
516 {X : Type u} [TopologicalSpace X] {ι : X → F} {R₀ : Set F}
517 {T : ProfiniteSchreierRelatorSets E}
518 (Ddata : OpenSubgroupSchreierFreeRelatorPresentationData C η π U T.raw)
519 (H : ProfiniteSchreierRelatorSets.CleaningData T)
521 (hambient : IsFreeRelatorPresentationOfClass C (F := F) (G := G) ι R₀) :
522 IsFreeRelatorPresentationOfClass C (F := E) (G := ↥(U : Subgroup G)) η T.cleaned :=
523 (Ddata.clean_schreier_relators H)
524 |>.isFreeRelatorPresentationOfClass_of_ambientFreeRelatorPresentation hC hambient
528/-- Standard-form free Schreier presentation data. The final source is explicitly free on the
532 (rawRelators : Set E) (standardRelators : Set Eₛ) where
533 freeStandardSource :
535 (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) ηₛ
536 standardData :
537 OpenSubgroupSchreierStandardPresentationData π U rawRelators standardRelators
541variable {C}
543variable {rawRelators : Set E} {standardRelators : Set Eₛ}
545omit [IsTopologicalGroup F] in
546theorem isFreeRelatorPresentationOfClass
550 (hG : ProCGroups.ProC.IsProCGroup C G) :
552 (F := Eₛ) (G := ↥(U : Subgroup G)) ηₛ standardRelators := by
553 rcases D.standardData.isRelatorPresentationOf hC hG with
554 ⟨hU, ρ, hρsurj, hρker⟩
555 exact ⟨D.freeStandardSource, by simpa using hU, ρ, hρsurj, hρker⟩
557theorem isFreeRelatorPresentationOfClass_of_ambientFreeRelatorPresentation
558 {X : Type u} [TopologicalSpace X] {ι : X → F} {R₀ : Set F}
562 (hambient : IsFreeRelatorPresentationOfClass C (F := F) (G := G) ι R₀) :
564 (F := Eₛ) (G := ↥(U : Subgroup G)) ηₛ standardRelators :=
565 D.isFreeRelatorPresentationOfClass hC
566 (IsFreeRelatorPresentationOfClass.isRelatorPresentationOf
567 (C := C) (G := G) hambient).1
571section RewritingFreeSourcePresentationData
573variable {Q : Type v}
574variable {Srw : ProfiniteSchreierRewritingRelatorSets Q F E}
576/-- Open-subgroup free Schreier presentation data whose rewritten relators are definitionally
577constructed from a map `tau`. -/
580 (Srw : ProfiniteSchreierRewritingRelatorSets Q F E) where
583 (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) η
584 relatorData :
585 OpenSubgroupSchreierRelatorPresentationData π U Srw.toRelatorSets.raw
589variable {C}
593 (Ddata : OpenSubgroupSchreierFreeRewritingPresentationData C η π U Srw) :
594 OpenSubgroupSchreierFreeRelatorPresentationData C η π U Srw.toRelatorSets.raw where
595 freeSource := Ddata.freeSource
596 relatorData := Ddata.relatorData
599 {X : Type u} [TopologicalSpace X] {ι : X → F}
600 (Ddata : OpenSubgroupSchreierFreeRewritingPresentationData C η π U Srw)
602 (hambient :
603 IsFreeRelatorPresentationOfClass C (F := F) (G := G) ι Srw.originalRelators) :
605 (F := E) (G := ↥(U : Subgroup G)) η Srw.toRelatorSets.raw :=
606 Ddata.toRawFreeRelatorPresentationData
607 |>.isFreeRelatorPresentationOfClass_of_ambientFreeRelatorPresentation hC hambient
610 {X : Type u} [TopologicalSpace X] {ι : X → F}
611 (Ddata : OpenSubgroupSchreierFreeRewritingPresentationData C η π U Srw)
612 (H : ProfiniteSchreierRewritingRelatorSets.DegenerateRelatorDeletionData Srw)
614 (hambient :
615 IsFreeRelatorPresentationOfClass C (F := F) (G := G) ι Srw.originalRelators) :
617 (F := E) (G := ↥(U : Subgroup G)) η Srw.toRelatorSets.rewritten :=
618 (Ddata.toRawFreeRelatorPresentationData.delete_degenerate_schreier_relators H)
619 |>.isFreeRelatorPresentationOfClass_of_ambientFreeRelatorPresentation hC hambient
621theorem cleanedFreeRelatorPresentationOf_of_ambientFreeRelatorPresentation
622 {X : Type u} [TopologicalSpace X] {ι : X → F}
623 (Ddata : OpenSubgroupSchreierFreeRewritingPresentationData C η π U Srw)
624 (H : ProfiniteSchreierRewritingRelatorSets.CleaningData Srw)
626 (hambient :
627 IsFreeRelatorPresentationOfClass C (F := F) (G := G) ι Srw.originalRelators) :
629 (F := E) (G := ↥(U : Subgroup G)) η Srw.toRelatorSets.cleaned :=
630 (Ddata.toRawFreeRelatorPresentationData.clean_schreier_relators H)
631 |>.isFreeRelatorPresentationOfClass_of_ambientFreeRelatorPresentation hC hambient
635/-- Standard-form free Schreier presentation data whose raw relators are built from `tau`. The
636standard source may differ from the raw source after deleting redundant Schreier generators. -/
639 (Srw : ProfiniteSchreierRewritingRelatorSets Q F E)
640 (standardRelators : Set Eₛ) where
641 freeStandardSource :
643 (ProC := ProCGroups.ProC.finiteGroupClassProCPredicate C) ηₛ
644 standardData :
645 OpenSubgroupSchreierStandardPresentationData π U Srw.toRelatorSets.raw standardRelators
649variable {C}
651variable {standardRelators : Set Eₛ}
658 freeStandardSource := D.freeStandardSource
659 standardData := D.standardData
661theorem isFreeRelatorPresentationOfClass_of_ambientFreeRelatorPresentation
662 {X : Type u} [TopologicalSpace X] {ι : X → F}
666 (hambient :
667 IsFreeRelatorPresentationOfClass C (F := F) (G := G) ι Srw.originalRelators) :
669 (F := Eₛ) (G := ↥(U : Subgroup G)) ηₛ standardRelators :=
670 D.toStandardFreeRelatorPresentationData
671 |>.isFreeRelatorPresentationOfClass_of_ambientFreeRelatorPresentation hC hambient
675end RewritingFreeSourcePresentationData
677end FreeSourcePresentationData
679end StandardPresentationData
683end ProCGroups.Presentations