Theorem: Equiv.Perm.IsCycle.isConj_iff
File: Mathlib/GroupTheory/Perm/Cycle/Basic.lean

tactic: obtain ⟨π, rfl⟩ := (_root_.isConj_iff).1 h
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ τ : Perm α
hσ : σ.IsCycle
hτ : τ.IsCycle
h : IsConj σ τ
⊢ σ.support.card = τ.support.card
state_after: case intro
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ : Perm α
hσ : σ.IsCycle
π : Perm α
hτ : (π * σ * π⁻¹).IsCycle
h : IsConj σ (π * σ * π⁻¹)
⊢ σ.support.card = (π * σ * π⁻¹).support.card

tactic: refine Finset.card_bij (fun a _ => π a) (fun _ ha => ?_) (fun _ _ _ _ ab => π.injective ab)
    fun b hb ↦ ⟨π⁻¹ b, ?_, π.apply_inv_self b⟩
state_before: case intro
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ : Perm α
hσ : σ.IsCycle
π : Perm α
hτ : (π * σ * π⁻¹).IsCycle
h : IsConj σ (π * σ * π⁻¹)
⊢ σ.support.card = (π * σ * π⁻¹).support.card
state_after: case intro.refine_1
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ : Perm α
hσ : σ.IsCycle
π : Perm α
hτ : (π * σ * π⁻¹).IsCycle
h : IsConj σ (π * σ * π⁻¹)
x✝ : α
ha : x✝ ∈ σ.support
⊢ (fun a x => π a) x✝ ha ∈ (π * σ * π⁻¹).support

case intro.refine_2
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ : Perm α
hσ : σ.IsCycle
π : Perm α
hτ : (π * σ * π⁻¹).IsCycle
h : IsConj σ (π * σ * π⁻¹)
b : α
hb : b ∈ (π * σ * π⁻¹).support
⊢ π⁻¹ b ∈ σ.support

tactic: contrapose! hb
state_before: case intro.refine_2
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ : Perm α
hσ : σ.IsCycle
π : Perm α
hτ : (π * σ * π⁻¹).IsCycle
h : IsConj σ (π * σ * π⁻¹)
b : α
hb : b ∈ (π * σ * π⁻¹).support
⊢ π⁻¹ b ∈ σ.support
state_after: case intro.refine_2
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ : Perm α
hσ : σ.IsCycle
π : Perm α
hτ : (π * σ * π⁻¹).IsCycle
h : IsConj σ (π * σ * π⁻¹)
b : α
hb : π⁻¹ b ∉ σ.support
⊢ b ∉ (π * σ * π⁻¹).support

tactic: rw [mem_support, Classical.not_not] at hb
state_before: case intro.refine_2
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ : Perm α
hσ : σ.IsCycle
π : Perm α
hτ : (π * σ * π⁻¹).IsCycle
h : IsConj σ (π * σ * π⁻¹)
b : α
hb : π⁻¹ b ∉ σ.support
⊢ b ∉ (π * σ * π⁻¹).support
state_after: case intro.refine_2
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ : Perm α
hσ : σ.IsCycle
π : Perm α
hτ : (π * σ * π⁻¹).IsCycle
h : IsConj σ (π * σ * π⁻¹)
b : α
hb : σ (π⁻¹ b) = π⁻¹ b
⊢ b ∉ (π * σ * π⁻¹).support

tactic: rw [mem_support, Classical.not_not, Perm.mul_apply, Perm.mul_apply, hb, Perm.apply_inv_self]
state_before: case intro.refine_2
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ : Perm α
hσ : σ.IsCycle
π : Perm α
hτ : (π * σ * π⁻¹).IsCycle
h : IsConj σ (π * σ * π⁻¹)
b : α
hb : σ (π⁻¹ b) = π⁻¹ b
⊢ b ∉ (π * σ * π⁻¹).support
state_after: no goals

tactic: simp [mem_support.1 ha]
state_before: case intro.refine_1
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ : Perm α
hσ : σ.IsCycle
π : Perm α
hτ : (π * σ * π⁻¹).IsCycle
h : IsConj σ (π * σ * π⁻¹)
x✝ : α
ha : x✝ ∈ σ.support
⊢ (fun a x => π a) x✝ ha ∈ (π * σ * π⁻¹).support
state_after: no goals