Skip to content

Commit f7442dd

Browse files
committed
feat(GroupTheory/Perm/ClosureSwap): add slight generalization (#31570)
This PR adds a slight generalization of `surjective_of_isSwap_of_isPretransitive` that is needed to compute the Galois group of `x^n - x - 1`. Co-authored-by: tb65536 <thomas.l.browning@gmail.com>
1 parent 7a60b31 commit f7442dd

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

Mathlib/GroupTheory/Perm/ClosureSwap.lean

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -140,11 +140,21 @@ theorem closure_of_isSwap_of_isPretransitive [Finite α] {S : Set (Perm α)} (hS
140140
[MulAction.IsPretransitive (Subgroup.closure S) α] : Subgroup.closure S = ⊤ := by
141141
simp [eq_top_iff', mem_closure_isSwap hS, orbit_eq_univ, Set.toFinite]
142142

143+
/-- A transitive permutation group generated by transpositions must be the whole symmetric group -/
144+
theorem surjective_of_isSwap_of_isPretransitive' [Finite α] (S : Set G)
145+
(hS1 : ∀ σ ∈ S, MulAction.toPermHom G α σ = 1 ∨ Perm.IsSwap (MulAction.toPermHom G α σ))
146+
(hS2 : Subgroup.closure S = ⊤) [h : MulAction.IsPretransitive G α] :
147+
Function.Surjective (MulAction.toPermHom G α) := by
148+
have h : closure ((toPermHom G α '' S) \ {1}) = (toPermHom G α).range := by
149+
rw [closure_diff_one, ← MonoidHom.map_closure, hS2, ← MonoidHom.range_eq_map]
150+
have := IsPretransitive.of_compHom (α := α) (toPermHom G α).rangeRestrict
151+
rw [← h] at this
152+
rw [← MonoidHom.range_eq_top, ← h, closure_of_isSwap_of_isPretransitive]
153+
rintro - ⟨⟨σ, hσ, rfl⟩, hσ1
154+
exact (hS1 σ hσ).resolve_left hσ1
155+
143156
/-- A transitive permutation group generated by transpositions must be the whole symmetric group -/
144157
theorem surjective_of_isSwap_of_isPretransitive [Finite α] (S : Set G)
145158
(hS1 : ∀ σ ∈ S, Perm.IsSwap (MulAction.toPermHom G α σ)) (hS2 : Subgroup.closure S = ⊤)
146-
[h : MulAction.IsPretransitive G α] : Function.Surjective (MulAction.toPermHom G α) := by
147-
rw [← MonoidHom.range_eq_top]
148-
have := MulAction.IsPretransitive.of_compHom (α := α) (MulAction.toPermHom G α).rangeRestrict
149-
rw [MonoidHom.range_eq_map, ← hS2, MonoidHom.map_closure] at this ⊢
150-
exact closure_of_isSwap_of_isPretransitive (Set.forall_mem_image.2 hS1)
159+
[h : MulAction.IsPretransitive G α] : Function.Surjective (MulAction.toPermHom G α) :=
160+
surjective_of_isSwap_of_isPretransitive' S (fun σ hσ ↦ Or.inr (hS1 σ hσ)) hS2

0 commit comments

Comments
 (0)