@@ -155,7 +155,35 @@ theorem isCyclic_of_card_le_three (hα : Nat.card α ≤ 3) :
155155
156156theorem 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
160188open Equiv.Perm
161189
0 commit comments