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.106126
inst✝¹ : Fintype α
inst✝ : DecidableEq α
⊢ ⊤ ≤ normalClosure {{ val := finRotate 5, property := (_ : finRotate (bit1 2) ∈ alternatingGroup (Fin (bit1 2))) }}

tactic: rw [← h3.alternating_normalClosure (by rw [card_fin])]
state_before: α : Type ?u.106126
inst✝¹ : Fintype α
inst✝ : DecidableEq α
h3 : IsThreeCycle (Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹)
⊢ ⊤ ≤ normalClosure {{ val := finRotate 5, property := (_ : finRotate (bit1 2) ∈ alternatingGroup (Fin (bit1 2))) }}

tactic: refine' normalClosure_le_normal _
state_before: α : Type ?u.106126
inst✝¹ : Fintype α
inst✝ : DecidableEq α
h3 : IsThreeCycle (Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹)
⊢ normalClosure
      {{ val := Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹,
          property :=
            (_ :
              Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹ ∈ alternatingGroup (Fin 5)) }} ≤
    normalClosure {{ val := finRotate 5, property := (_ : finRotate (bit1 2) ∈ alternatingGroup (Fin (bit1 2))) }}

tactic: rw [Set.singleton_subset_iff, SetLike.mem_coe]
state_before: α : Type ?u.106126
inst✝¹ : Fintype α
inst✝ : DecidableEq α
h3 : IsThreeCycle (Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹)
⊢ {{ val := Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹,
        property :=
          (_ : Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹ ∈ alternatingGroup (Fin 5)) }} ⊆
    ↑(normalClosure {{ val := finRotate 5, property := (_ : finRotate (bit1 2) ∈ alternatingGroup (Fin (bit1 2))) }})

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.106126
inst✝¹ : Fintype α
inst✝ : DecidableEq α
h3 : IsThreeCycle (Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹)
⊢ { val := Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹,
      property :=
        (_ : Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹ ∈ alternatingGroup (Fin 5)) } ∈
    normalClosure {{ val := finRotate 5, property := (_ : finRotate (bit1 2) ∈ alternatingGroup (Fin (bit1 2))) }}

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.106126
inst✝¹ : Fintype α
inst✝ : DecidableEq α
h3 : IsThreeCycle (Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹)
h :
  { val := finRotate 5, property := (_ : finRotate (bit1 2) ∈ alternatingGroup (Fin (bit1 2))) } ∈
    normalClosure {{ val := finRotate 5, property := (_ : finRotate (bit1 2) ∈ alternatingGroup (Fin (bit1 2))) }}
⊢ { val := Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹,
      property :=
        (_ : Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹ ∈ alternatingGroup (Fin 5)) } ∈
    normalClosure {{ val := finRotate 5, property := (_ : finRotate (bit1 2) ∈ alternatingGroup (Fin (bit1 2))) }}

tactic: decide
state_before: α : Type ?u.106126
inst✝¹ : Fintype α
inst✝ : DecidableEq α
⊢ Finset.card (support (Fin.cycleRange 2 * finRotate 5 * (Fin.cycleRange 2)⁻¹ * (finRotate 5)⁻¹)) = 3

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