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

tactic: simp [hyx]
state_before: ι : Type ?u.816801
α✝ : Type ?u.816804
β : Type ?u.816807
f✝ g : Perm α✝
x✝ y✝ : α✝
inst✝² : DecidableEq α✝
inst✝¹ : Fintype α✝
α : Type u_1
inst✝ : DecidableEq α
f : Perm α
hf : IsCycle f
x : α
hfx : ↑f x ≠ x
hffx : ↑f (↑f x) = x
y z : α
hz : ↑f z ≠ z ∧ ∀ ⦃y : α⦄, ↑f y ≠ y → SameCycle f z y
i : ℤ
hi : ↑(f ^ i) z = x
hyx : y = x
⊢ ↑f y = ↑(swap x (↑f x)) y

tactic: simp [hfyx, hffx]
state_before: ι : Type ?u.816801
α✝ : Type ?u.816804
β : Type ?u.816807
f✝ g : Perm α✝
x✝ y✝ : α✝
inst✝² : DecidableEq α✝
inst✝¹ : Fintype α✝
α : Type u_1
inst✝ : DecidableEq α
f : Perm α
hf : IsCycle f
x : α
hfx : ↑f x ≠ x
hffx : ↑f (↑f x) = x
y z : α
hz : ↑f z ≠ z ∧ ∀ ⦃y : α⦄, ↑f y ≠ y → SameCycle f z y
i : ℤ
hi : ↑(f ^ i) z = x
hyx : ¬y = x
hfyx : y = ↑f x
⊢ ↑f y = ↑(swap x (↑f x)) y

tactic: rw [swap_apply_of_ne_of_ne hyx hfyx]
state_before: ι : Type ?u.816801
α✝ : Type ?u.816804
β : Type ?u.816807
f✝ g : Perm α✝
x✝ y✝ : α✝
inst✝² : DecidableEq α✝
inst✝¹ : Fintype α✝
α : Type u_1
inst✝ : DecidableEq α
f : Perm α
hf : IsCycle f
x : α
hfx : ↑f x ≠ x
hffx : ↑f (↑f x) = x
y z : α
hz : ↑f z ≠ z ∧ ∀ ⦃y : α⦄, ↑f y ≠ y → SameCycle f z y
i : ℤ
hi : ↑(f ^ i) z = x
hyx : ¬y = x
hfyx : ¬y = ↑f x
⊢ ↑f y = ↑(swap x (↑f x)) y

tactic: refine' by_contradiction fun hy => _
state_before: ι : Type ?u.816801
α✝ : Type ?u.816804
β : Type ?u.816807
f✝ g : Perm α✝
x✝ y✝ : α✝
inst✝² : DecidableEq α✝
inst✝¹ : Fintype α✝
α : Type u_1
inst✝ : DecidableEq α
f : Perm α
hf : IsCycle f
x : α
hfx : ↑f x ≠ x
hffx : ↑f (↑f x) = x
y z : α
hz : ↑f z ≠ z ∧ ∀ ⦃y : α⦄, ↑f y ≠ y → SameCycle f z y
i : ℤ
hi : ↑(f ^ i) z = x
hyx : ¬y = x
hfyx : ¬y = ↑f x
⊢ ↑f y = y

tactic: cases' hz.2 hy with j hj
state_before: ι : Type ?u.816801
α✝ : Type ?u.816804
β : Type ?u.816807
f✝ g : Perm α✝
x✝ y✝ : α✝
inst✝² : DecidableEq α✝
inst✝¹ : Fintype α✝
α : Type u_1
inst✝ : DecidableEq α
f : Perm α
hf : IsCycle f
x : α
hfx : ↑f x ≠ x
hffx : ↑f (↑f x) = x
y z : α
hz : ↑f z ≠ z ∧ ∀ ⦃y : α⦄, ↑f y ≠ y → SameCycle f z y
i : ℤ
hi : ↑(f ^ i) z = x
hyx : ¬y = x
hfyx : ¬y = ↑f x
hy : ¬↑f y = y
⊢ False

tactic: rw [← sub_add_cancel j i, zpow_add, mul_apply, hi] at hj
state_before: case intro
ι : Type ?u.816801
α✝ : Type ?u.816804
β : Type ?u.816807
f✝ g : Perm α✝
x✝ y✝ : α✝
inst✝² : DecidableEq α✝
inst✝¹ : Fintype α✝
α : Type u_1
inst✝ : DecidableEq α
f : Perm α
hf : IsCycle f
x : α
hfx : ↑f x ≠ x
hffx : ↑f (↑f x) = x
y z : α
hz : ↑f z ≠ z ∧ ∀ ⦃y : α⦄, ↑f y ≠ y → SameCycle f z y
i : ℤ
hi : ↑(f ^ i) z = x
hyx : ¬y = x
hfyx : ¬y = ↑f x
hy : ¬↑f y = y
j : ℤ
hj : ↑(f ^ j) z = y
⊢ False

tactic: cases' zpow_apply_eq_of_apply_apply_eq_self hffx (j - i) with hji hji
state_before: case intro
ι : Type ?u.816801
α✝ : Type ?u.816804
β : Type ?u.816807
f✝ g : Perm α✝
x✝ y✝ : α✝
inst✝² : DecidableEq α✝
inst✝¹ : Fintype α✝
α : Type u_1
inst✝ : DecidableEq α
f : Perm α
hf : IsCycle f
x : α
hfx : ↑f x ≠ x
hffx : ↑f (↑f x) = x
y z : α
hz : ↑f z ≠ z ∧ ∀ ⦃y : α⦄, ↑f y ≠ y → SameCycle f z y
i : ℤ
hi : ↑(f ^ i) z = x
hyx : ¬y = x
hfyx : ¬y = ↑f x
hy : ¬↑f y = y
j : ℤ
hj : ↑(f ^ (j - i)) x = y
⊢ False

tactic: rw [← hj, hji] at hyx
state_before: case intro.inl
ι : Type ?u.816801
α✝ : Type ?u.816804
β : Type ?u.816807
f✝ g : Perm α✝
x✝ y✝ : α✝
inst✝² : DecidableEq α✝
inst✝¹ : Fintype α✝
α : Type u_1
inst✝ : DecidableEq α
f : Perm α
hf : IsCycle f
x : α
hfx : ↑f x ≠ x
hffx : ↑f (↑f x) = x
y z : α
hz : ↑f z ≠ z ∧ ∀ ⦃y : α⦄, ↑f y ≠ y → SameCycle f z y
i : ℤ
hi : ↑(f ^ i) z = x
hyx : ¬y = x
hfyx : ¬y = ↑f x
hy : ¬↑f y = y
j : ℤ
hj : ↑(f ^ (j - i)) x = y
hji : ↑(f ^ (j - i)) x = x
⊢ False

tactic: tauto
state_before: case intro.inl
ι : Type ?u.816801
α✝ : Type ?u.816804
β : Type ?u.816807
f✝ g : Perm α✝
x✝ y✝ : α✝
inst✝² : DecidableEq α✝
inst✝¹ : Fintype α✝
α : Type u_1
inst✝ : DecidableEq α
f : Perm α
hf : IsCycle f
x : α
hfx : ↑f x ≠ x
hffx : ↑f (↑f x) = x
y z : α
hz : ↑f z ≠ z ∧ ∀ ⦃y : α⦄, ↑f y ≠ y → SameCycle f z y
i : ℤ
hi : ↑(f ^ i) z = x
hfyx : ¬y = ↑f x
hy : ¬↑f y = y
j : ℤ
hyx : ¬x = x
hj : ↑(f ^ (j - i)) x = y
hji : ↑(f ^ (j - i)) x = x
⊢ False

tactic: rw [← hj, hji] at hfyx
state_before: case intro.inr
ι : Type ?u.816801
α✝ : Type ?u.816804
β : Type ?u.816807
f✝ g : Perm α✝
x✝ y✝ : α✝
inst✝² : DecidableEq α✝
inst✝¹ : Fintype α✝
α : Type u_1
inst✝ : DecidableEq α
f : Perm α
hf : IsCycle f
x : α
hfx : ↑f x ≠ x
hffx : ↑f (↑f x) = x
y z : α
hz : ↑f z ≠ z ∧ ∀ ⦃y : α⦄, ↑f y ≠ y → SameCycle f z y
i : ℤ
hi : ↑(f ^ i) z = x
hyx : ¬y = x
hfyx : ¬y = ↑f x
hy : ¬↑f y = y
j : ℤ
hj : ↑(f ^ (j - i)) x = y
hji : ↑(f ^ (j - i)) x = ↑f x
⊢ False

tactic: tauto
state_before: case intro.inr
ι : Type ?u.816801
α✝ : Type ?u.816804
β : Type ?u.816807
f✝ g : Perm α✝
x✝ y✝ : α✝
inst✝² : DecidableEq α✝
inst✝¹ : Fintype α✝
α : Type u_1
inst✝ : DecidableEq α
f : Perm α
hf : IsCycle f
x : α
hfx : ↑f x ≠ x
hffx : ↑f (↑f x) = x
y z : α
hz : ↑f z ≠ z ∧ ∀ ⦃y : α⦄, ↑f y ≠ y → SameCycle f z y
i : ℤ
hi : ↑(f ^ i) z = x
hyx : ¬y = x
hy : ¬↑f y = y
j : ℤ
hfyx : ¬↑f x = ↑f x
hj : ↑(f ^ (j - i)) x = y
hji : ↑(f ^ (j - i)) x = ↑f x
⊢ False