Skip to content

Commit 1f6da86

Browse files
more adjustments
1 parent b3b702f commit 1f6da86

File tree

2 files changed

+32
-15
lines changed

2 files changed

+32
-15
lines changed

Mathlib/GroupTheory/SpecificGroups/Alternating.lean

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,35 @@ theorem isCyclic_of_card_le_three (hα : Nat.card α ≤ 3) :
155155

156156
theorem isMulCommutative_of_card_le_three (hα : Nat.card α ≤ 3) :
157157
IsMulCommutative (alternatingGroup α) :=
158-
⟨(isCyclic_of_card_le_three hα).commutative⟩
158+
(isCyclic_of_card_le_three hα).isMulCommutative
159+
160+
theorem isMulCommutative_iff_card_le_three :
161+
IsMulCommutative (alternatingGroup α) ↔ Nat.card α ≤ 3 := by
162+
refine ⟨fun ⟨⟨H⟩⟩ ↦ ?_, fun h ↦ (isCyclic_of_card_le_three h).isMulCommutative⟩
163+
rw [← not_lt, ← Set.ncard_univ, Set.three_lt_ncard_iff]
164+
push Not
165+
intro a b c d _ _ _ _ hab hac had hbc hbd
166+
by_contra hcd
167+
apply Ne.symm hcd
168+
let g : alternatingGroup α := ⟨swap a b * swap a c, by
169+
rw [mem_alternatingGroup]
170+
exact (isThreeCycle_swap_mul_swap_same hab hac hbc).sign⟩
171+
let h : alternatingGroup α := ⟨swap a b * swap a d, by
172+
rw [mem_alternatingGroup]
173+
exact (isThreeCycle_swap_mul_swap_same hab had hbd).sign⟩
174+
specialize H g h
175+
simp only [MulMemClass.mk_mul_mk, Subtype.mk.injEq, Perm.ext_iff, Perm.coe_mul,
176+
Function.comp_apply, EmbeddingLike.apply_eq_iff_eq, g, h] at H
177+
simpa only [swap_apply_left,
178+
swap_apply_of_ne_of_ne (Ne.symm had) (Ne.symm hbd),
179+
swap_apply_of_ne_of_ne (Ne.symm hac) (Ne.symm hbc),
180+
swap_apply_of_ne_of_ne (Ne.symm hac) hcd,
181+
swap_apply_of_ne_of_ne (Ne.symm had) (Ne.symm hcd)] using H a
182+
183+
theorem isCyclic_iff_card_le_three :
184+
IsCyclic (alternatingGroup α) ↔ Nat.card α ≤ 3 :=
185+
fun _ ↦ by rw [← isMulCommutative_iff_card_le_three]; exact IsCyclic.isMulCommutative,
186+
isCyclic_of_card_le_three⟩
159187

160188
open Equiv.Perm
161189

Mathlib/GroupTheory/SpecificGroups/Alternating/Simple.lean

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -53,26 +53,15 @@ open MulAction Equiv.Perm Equiv Set.powersetCard
5353

5454
namespace Equiv.Perm
5555

56-
variable {α : Type*} [Finite α]
57-
58-
theorem isCyclic_of_card_le_two (hα : Nat.card α ≤ 2) :
59-
IsCyclic (Perm α) := by
60-
apply isCyclic_of_card_dvd_prime (p := 2)
61-
rw [Nat.card_perm]
62-
interval_cases (Nat.card α) <;> simp
63-
64-
theorem isMulCommutative_of_card_le_two (hα : Nat.card α ≤ 2) :
65-
IsMulCommutative (Perm α) :=
66-
⟨(isCyclic_of_card_le_two hα).commutative⟩
67-
68-
variable [DecidableEq α]
56+
variable {α : Type*} [Finite α] [DecidableEq α]
6957

7058
/-- The Iwasawa structure of `Perm α` acting on `Set.powersetCard α 2`. -/
7159
def iwasawaStructure_two [∀ s : Set α, DecidablePred fun x ↦ x ∈ s] :
7260
IwasawaStructure (Perm α) (Set.powersetCard α 2) where
7361
T s := (ofSubtype : Perm (s : Set α) →* Perm α).range
7462
is_comm s := by
75-
have : IsMulCommutative (Perm s) := isMulCommutative_of_card_le_two (by simp)
63+
have : IsMulCommutative (Perm s) :=
64+
isMulCommutative_iff_card_le_two.mpr (by simp)
7665
rw [MonoidHom.range_eq_map]
7766
apply Subgroup.map_isMulCommutative
7867
is_conj g s := by

0 commit comments

Comments
 (0)