Skip to content

Commit fafbbbf

Browse files
committed
chore(GroupTheory/SpecificGroups/Alternating): clean up some proofs (#36450)
This PR cleans up a few proofs in `GroupTheory/SpecificGroups/Alternating.lean`. Co-authored-by: tb65536 <thomas.l.browning@gmail.com>
1 parent 31e1951 commit fafbbbf

1 file changed

Lines changed: 23 additions & 34 deletions

File tree

Mathlib/GroupTheory/SpecificGroups/Alternating.lean

Lines changed: 23 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -185,30 +185,25 @@ open alternatingGroup
185185

186186
@[simp]
187187
theorem closure_three_cycles_eq_alternating :
188-
closure { σ : Perm α | IsThreeCycle σ } = alternatingGroup α :=
189-
closure_eq_of_le _ (fun _ hσ => mem_alternatingGroup.2 hσ.sign) fun σ hσ => by
190-
suffices hind :
191-
∀ (n : ℕ) (l : List (Perm α)) (_ : ∀ g, g ∈ l → IsSwap g) (_ : l.length = 2 * n),
192-
l.prod ∈ closure { σ : Perm α | IsThreeCycle σ } by
193-
obtain ⟨l, rfl, hl⟩ := truncSwapFactors σ
194-
obtain ⟨n, hn⟩ := (prod_list_swap_mem_alternatingGroup_iff_even_length hl).1
195-
rw [← two_mul] at hn
196-
exact hind n l hl hn
197-
intro n
198-
induction n with intro l hl hn
199-
| zero => simp [List.length_eq_zero_iff.1 hn, one_mem]
200-
| succ n ih =>
188+
closure { σ : Perm α | IsThreeCycle σ } = alternatingGroup α := by
189+
refine closure_eq_of_le _ (fun _ ↦ IsThreeCycle.mem_alternatingGroup) fun σ hσ ↦ ?_
190+
suffices hind :
191+
∀ (n : ℕ) (l : List (Perm α)) (_ : ∀ g, g ∈ l → IsSwap g) (_ : l.length = 2 * n),
192+
l.prod ∈ closure { σ : Perm α | IsThreeCycle σ } by
193+
obtain ⟨l, rfl, hl⟩ := truncSwapFactors σ
194+
obtain ⟨n, hn⟩ := (prod_list_swap_mem_alternatingGroup_iff_even_length hl).1
195+
rw [← two_mul] at hn
196+
exact hind n l hl hn
197+
intro n
198+
induction n with intro l hl hn
199+
| zero => simp [List.length_eq_zero_iff.1 hn, one_mem]
200+
| succ n ih =>
201201
rw [Nat.mul_succ] at hn
202202
obtain ⟨a, l, rfl⟩ := l.exists_of_length_succ hn
203203
rw [List.length_cons, Nat.succ_inj] at hn
204204
obtain ⟨b, l, rfl⟩ := l.exists_of_length_succ hn
205205
rw [List.prod_cons, List.prod_cons, ← mul_assoc]
206-
rw [List.length_cons, Nat.succ_inj] at hn
207-
exact
208-
mul_mem
209-
(IsSwap.mul_mem_closure_three_cycles (hl a List.mem_cons_self)
210-
(hl b (List.mem_cons_of_mem a List.mem_cons_self)))
211-
(ih _ (fun g hg => hl g (List.mem_cons_of_mem _ (List.mem_cons_of_mem _ hg))) hn)
206+
apply mul_mem <;> grind [IsSwap.mul_mem_closure_three_cycles]
212207

213208
/-- The alternating group is the closure of the set of permutations with cycle type (2, 2). -/
214209
theorem closure_cycleType_eq_2_2_eq_alternatingGroup (h5 : 5 ≤ Nat.card α) :
@@ -236,17 +231,14 @@ theorem closure_cycleType_eq_2_2_eq_alternatingGroup (h5 : 5 ≤ Nat.card α) :
236231
at least 5 elements is the entire alternating group if it contains a 3-cycle. -/
237232
theorem IsThreeCycle.alternating_normalClosure (h5 : 5 ≤ Fintype.card α) {f : Perm α}
238233
(hf : IsThreeCycle f) :
239-
normalClosure ({⟨f, hf.mem_alternatingGroup⟩} : Set (alternatingGroup α)) = ⊤ :=
240-
eq_top_iff.2
241-
(by
242-
rw [← map_subtype_le_map_subtype]
243-
rw [← MonoidHom.range_eq_map, range_subtype, normalClosure, MonoidHom.map_closure]
244-
refine (le_of_eq closure_three_cycles_eq_alternating.symm).trans (closure_mono ?_)
245-
intro g h
246-
obtain ⟨c, rfl⟩ := isConj_iff.1 (isConj_iff_cycleType_eq.2 (hf.trans h.symm))
247-
refine ⟨⟨c * f * c⁻¹, h.mem_alternatingGroup⟩, ?_, rfl⟩
248-
rw [Group.mem_conjugatesOfSet_iff]
249-
exact ⟨⟨f, hf.mem_alternatingGroup⟩, Set.mem_singleton _, isThreeCycle_isConj h5 hf h⟩)
234+
normalClosure ({⟨f, hf.mem_alternatingGroup⟩} : Set (alternatingGroup α)) = ⊤ := by
235+
rw [eq_top_iff, ← map_subtype_le_map_subtype, ← MonoidHom.range_eq_map, range_subtype,
236+
normalClosure, MonoidHom.map_closure]
237+
refine (le_of_eq closure_three_cycles_eq_alternating.symm).trans (closure_mono fun g h ↦ ?_)
238+
obtain ⟨c, rfl⟩ := isConj_iff.mp (isConj_iff_cycleType_eq.mpr (hf.trans h.symm))
239+
refine ⟨⟨c * f * c⁻¹, h.mem_alternatingGroup⟩, ?_, rfl⟩
240+
rw [Group.mem_conjugatesOfSet_iff]
241+
exact ⟨⟨f, hf.mem_alternatingGroup⟩, Set.mem_singleton _, isThreeCycle_isConj h5 hf h⟩
250242

251243
/-- Part of proving $A_5$ is simple. Shows that the square of any element of $A_5$ with a 3-cycle in
252244
its cycle decomposition is a 3-cycle, so the normal closure of the original element must be
@@ -288,10 +280,7 @@ theorem nontrivial_of_three_le_card (h3 : 3 ≤ card α) : Nontrivial (alternati
288280
exact le_trans h3 (card α).self_le_factorial
289281

290282
instance {n : ℕ} : Nontrivial (alternatingGroup (Fin (n + 3))) :=
291-
nontrivial_of_three_le_card
292-
(by
293-
rw [card_fin]
294-
exact le_add_left (le_refl 3))
283+
nontrivial_of_three_le_card (by simp)
295284

296285
/-- The normal closure of the 5-cycle `finRotate 5` within $A_5$ is the whole group. This will be
297286
used to show that the normal closure of any 5-cycle within $A_5$ is the whole group. -/

0 commit comments

Comments
 (0)