Theorem: alternatingGroup.normalClosure_finRotate_five
File: Mathlib/GroupTheory/SpecificGroups/Alternating.lean

tactic: have h3 :
  IsThreeCycle (Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹) :=
  card_support_eq_three_iff.1 (by decide)
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
⊢ ⊤ ≤ normalClosure {⟨finRotate 5, ⋯⟩}
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
h3 : (Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹).IsThreeCycle
⊢ ⊤ ≤ normalClosure {⟨finRotate 5, ⋯⟩}

tactic: rw [← h3.alternating_normalClosure (by rw [card_fin])]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
h3 : (Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹).IsThreeCycle
⊢ ⊤ ≤ normalClosure {⟨finRotate 5, ⋯⟩}
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
h3 : (Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹).IsThreeCycle
⊢ normalClosure {⟨Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹, ⋯⟩} ≤
    normalClosure {⟨finRotate 5, ⋯⟩}

tactic: refine normalClosure_le_normal ?_
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
h3 : (Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹).IsThreeCycle
⊢ normalClosure {⟨Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹, ⋯⟩} ≤
    normalClosure {⟨finRotate 5, ⋯⟩}
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
h3 : (Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹).IsThreeCycle
⊢ {⟨Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹, ⋯⟩} ⊆ ↑(normalClosure {⟨finRotate 5, ⋯⟩})

tactic: rw [Set.singleton_subset_iff, SetLike.mem_coe]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
h3 : (Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹).IsThreeCycle
⊢ {⟨Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹, ⋯⟩} ⊆ ↑(normalClosure {⟨finRotate 5, ⋯⟩})
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
h3 : (Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹).IsThreeCycle
⊢ ⟨Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹, ⋯⟩ ∈ normalClosure {⟨finRotate 5, ⋯⟩}

tactic: have h :
  (⟨finRotate 5, finRotate_bit1_mem_alternatingGroup (n := 2)⟩ : alternatingGroup (Fin 5)) ∈
    normalClosure _ :=
  SetLike.mem_coe.1 (subset_normalClosure (Set.mem_singleton _))
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
h3 : (Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹).IsThreeCycle
⊢ ⟨Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹, ⋯⟩ ∈ normalClosure {⟨finRotate 5, ⋯⟩}
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
h3 : (Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹).IsThreeCycle
h : ⟨finRotate 5, ⋯⟩ ∈ normalClosure {⟨finRotate 5, ⋯⟩}
⊢ ⟨Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹, ⋯⟩ ∈ normalClosure {⟨finRotate 5, ⋯⟩}

tactic: exact (mul_mem (Subgroup.normalClosure_normal.conj_mem _ h
  ⟨Fin.cycleRange 2, Fin.isThreeCycle_cycleRange_two.mem_alternatingGroup⟩) (inv_mem h) : _)
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
h3 : (Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹).IsThreeCycle
h : ⟨finRotate 5, ⋯⟩ ∈ normalClosure {⟨finRotate 5, ⋯⟩}
⊢ ⟨Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹, ⋯⟩ ∈ normalClosure {⟨finRotate 5, ⋯⟩}
state_after: no goals

tactic: decide
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
⊢ (Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹).support.card = 3
state_after: no goals

tactic: rw [card_fin]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
h3 : (Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹).IsThreeCycle
⊢ 5 ≤ card (Fin 5)
state_after: no goals