ProCGroups/Presentations/SchreierTietze/Restricted.lean
1import ProCGroups.Presentations.SchreierTietze.Relators
3/-
4PUBLIC_PAGE_SNAPSHOT
5generated_at: 2026-05-27T09:47:29+09:00
6lean_source: lean4/ProCGroups/Presentations/SchreierTietze/Restricted.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
25section RestrictedPresentations
27variable {F G : Type u} [Group F] [Group G]
28variable [TopologicalSpace F] [TopologicalSpace G]
29variable [IsTopologicalGroup F] [IsTopologicalGroup G]
31/-- The inverse image in a presentation source of a subgroup of the target. -/
32def presentationSubgroupPreimage (π : F →ₜ* G) (U : Subgroup G) : Subgroup F :=
33 Subgroup.comap π.toMonoidHom U
35/-- The restricted epimorphism `π⁻¹(U) → U` attached to a presentation map `π : F → G`. -/
36def restrictPresentationHom (π : F →ₜ* G) (U : Subgroup G) :
37 presentationSubgroupPreimage π U →ₜ* U where
38 toMonoidHom :=
40 map_one' := by
41 apply Subtype.ext
43 map_mul' := by
44 intro x y
45 apply Subtype.ext
47 continuous_toFun := by
48 exact Continuous.subtype_mk
49 (π.continuous_toFun.comp continuous_subtype_val)
50 (fun x => x.2)
52omit [IsTopologicalGroup F] [IsTopologicalGroup G] in
53@[simp] theorem restrictPresentationHom_apply
55 (x : presentationSubgroupPreimage π U) :
56 restrictPresentationHom π U x = ⟨π x.1, x.2⟩ :=
57 rfl
59omit [IsTopologicalGroup F] [IsTopologicalGroup G] in
63 Function.Surjective (restrictPresentationHom π U) := by
64 intro y
65 rcases hπsurj y.1 with ⟨x, hx⟩
66 refine ⟨⟨x, ?_⟩, ?_⟩
68 simp only [hx, y.2]
69 · apply Subtype.ext
70 exact hx
72omit [IsTopologicalGroup F] [IsTopologicalGroup G] in
73theorem restrictPresentationHom_ker
75 (restrictPresentationHom π U).toMonoidHom.ker =
76 π.toMonoidHom.ker.subgroupOf (presentationSubgroupPreimage π U) := by
77 ext x
78 constructor
79 · intro hx
80 change x.1 ∈ π.toMonoidHom.ker
81 rw [MonoidHom.mem_ker]
82 exact congrArg Subtype.val hx
83 · intro hx
84 apply Subtype.ext
86 change x.1 ∈ π.toMonoidHom.ker at hx
87 simpa [MonoidHom.mem_ker] using hx
90 (C : ProCGroups.FiniteGroupClass.{u})
93 (hU : ProCGroups.ProC.IsProCGroup C U) :
95 (F := presentationSubgroupPreimage π U) (G := U)
96 (π.toMonoidHom.ker.subgroupOf (presentationSubgroupPreimage π U)) := by
97 exact ⟨hU, restrictPresentationHom π U,
98 restrictPresentationHom_surjective π U hπsurj,
102 (C : ProCGroups.FiniteGroupClass.{u})
103 {K : Subgroup F}
104 (U : Subgroup G)
105 (hU : ProCGroups.ProC.IsProCGroup C U) :
106 IsQuotientByKernel C (F := F) (G := G) K →
109 (F := presentationSubgroupPreimage π U) (G := U)
110 (π.toMonoidHom.ker.subgroupOf (presentationSubgroupPreimage π U)) := by
111 intro hpres
114 isPresentationOf_subgroup_restrict C π U hπsurj hU⟩
117 (C : ProCGroups.FiniteGroupClass.{u})
119 (hG : ProCGroups.ProC.IsProCGroup C G)
123 (F := presentationSubgroupPreimage π (U : Subgroup G)) (G := ↥(U : Subgroup G))
124 (π.toMonoidHom.ker.subgroupOf (presentationSubgroupPreimage π (U : Subgroup G))) := by
125 have hUclosed : IsClosed (((U : Subgroup G) : Set G)) :=
126 ProCGroups.openSubgroup_isClosed (G := G) U
127 have hUproC : ProCGroups.ProC.IsProCGroup C ↥(U : Subgroup G) :=
129 hC hG (U : Subgroup G) hUclosed
130 exact isPresentationOf_subgroup_restrict C π (U : Subgroup G) hπsurj hUproC
133 (C : ProCGroups.FiniteGroupClass.{u})
135 {K : Subgroup F} (U : OpenSubgroup G) :
136 IsQuotientByKernel C (F := F) (G := G) K →
139 (F := presentationSubgroupPreimage π (U : Subgroup G)) (G := ↥(U : Subgroup G))
140 (π.toMonoidHom.ker.subgroupOf
141 (presentationSubgroupPreimage π (U : Subgroup G))) := by
142 intro hpres
145 isPresentationOf_openSubgroup_restrict C hC hG π U hπsurj⟩
147end RestrictedPresentations
149end ProCGroups.Presentations