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

tactic: cases nonempty_fintype β
state_before: ι : Type ?u.1228455
α : Type ?u.1228458
β : Type u_1
f✝ g : Perm α
x y : α
inst✝² : DecidableEq α
inst✝¹ : Fintype α
inst✝ : Finite β
f : Perm β
hf : IsCycle f
n : ℕ
⊢ f ^ n = 1 ↔ ∃ x, ↑f x ≠ x ∧ ↑(f ^ n) x = x

tactic: constructor
state_before: case intro
ι : Type ?u.1228455
α : Type ?u.1228458
β : Type u_1
f✝ g : Perm α
x y : α
inst✝² : DecidableEq α
inst✝¹ : Fintype α
inst✝ : Finite β
f : Perm β
hf : IsCycle f
n : ℕ
val✝ : Fintype β
⊢ f ^ n = 1 ↔ ∃ x, ↑f x ≠ x ∧ ↑(f ^ n) x = x

tactic: intro h
state_before: case intro.mp
ι : Type ?u.1228455
α : Type ?u.1228458
β : Type u_1
f✝ g : Perm α
x y : α
inst✝² : DecidableEq α
inst✝¹ : Fintype α
inst✝ : Finite β
f : Perm β
hf : IsCycle f
n : ℕ
val✝ : Fintype β
⊢ f ^ n = 1 → ∃ x, ↑f x ≠ x ∧ ↑(f ^ n) x = x

tactic: obtain ⟨x, hx, -⟩ := id hf
state_before: case intro.mp
ι : Type ?u.1228455
α : Type ?u.1228458
β : Type u_1
f✝ g : Perm α
x y : α
inst✝² : DecidableEq α
inst✝¹ : Fintype α
inst✝ : Finite β
f : Perm β
hf : IsCycle f
n : ℕ
val✝ : Fintype β
h : f ^ n = 1
⊢ ∃ x, ↑f x ≠ x ∧ ↑(f ^ n) x = x

tactic: exact ⟨x, hx, by simp [h]⟩
state_before: case intro.mp.intro.intro
ι : Type ?u.1228455
α : Type ?u.1228458
β : Type u_1
f✝ g : Perm α
x✝ y : α
inst✝² : DecidableEq α
inst✝¹ : Fintype α
inst✝ : Finite β
f : Perm β
hf : IsCycle f
n : ℕ
val✝ : Fintype β
h : f ^ n = 1
x : β
hx : ↑f x ≠ x
⊢ ∃ x, ↑f x ≠ x ∧ ↑(f ^ n) x = x

tactic: simp [h]
state_before: ι : Type ?u.1228455
α : Type ?u.1228458
β : Type u_1
f✝ g : Perm α
x✝ y : α
inst✝² : DecidableEq α
inst✝¹ : Fintype α
inst✝ : Finite β
f : Perm β
hf : IsCycle f
n : ℕ
val✝ : Fintype β
h : f ^ n = 1
x : β
hx : ↑f x ≠ x
⊢ ↑(f ^ n) x = x

tactic: rintro ⟨x, hx, hx'⟩
state_before: case intro.mpr
ι : Type ?u.1228455
α : Type ?u.1228458
β : Type u_1
f✝ g : Perm α
x y : α
inst✝² : DecidableEq α
inst✝¹ : Fintype α
inst✝ : Finite β
f : Perm β
hf : IsCycle f
n : ℕ
val✝ : Fintype β
⊢ (∃ x, ↑f x ≠ x ∧ ↑(f ^ n) x = x) → f ^ n = 1

tactic: by_cases h : support (f ^ n) = support f
state_before: case intro.mpr.intro.intro
ι : Type ?u.1228455
α : Type ?u.1228458
β : Type u_1
f✝ g : Perm α
x✝ y : α
inst✝² : DecidableEq α
inst✝¹ : Fintype α
inst✝ : Finite β
f : Perm β
hf : IsCycle f
n : ℕ
val✝ : Fintype β
x : β
hx : ↑f x ≠ x
hx' : ↑(f ^ n) x = x
⊢ f ^ n = 1

tactic: rw [← mem_support, ← h, mem_support] at hx
state_before: case pos
ι : Type ?u.1228455
α : Type ?u.1228458
β : Type u_1
f✝ g : Perm α
x✝ y : α
inst✝² : DecidableEq α
inst✝¹ : Fintype α
inst✝ : Finite β
f : Perm β
hf : IsCycle f
n : ℕ
val✝ : Fintype β
x : β
hx : ↑f x ≠ x
hx' : ↑(f ^ n) x = x
h : support (f ^ n) = support f
⊢ f ^ n = 1

tactic: contradiction
state_before: case pos
ι : Type ?u.1228455
α : Type ?u.1228458
β : Type u_1
f✝ g : Perm α
x✝ y : α
inst✝² : DecidableEq α
inst✝¹ : Fintype α
inst✝ : Finite β
f : Perm β
hf : IsCycle f
n : ℕ
val✝ : Fintype β
x : β
hx✝ : ↑f x ≠ x
hx : ↑(f ^ n) x ≠ x
hx' : ↑(f ^ n) x = x
h : support (f ^ n) = support f
⊢ f ^ n = 1

tactic: rw [hf.support_pow_eq_iff, Classical.not_not] at h
state_before: case neg
ι : Type ?u.1228455
α : Type ?u.1228458
β : Type u_1
f✝ g : Perm α
x✝ y : α
inst✝² : DecidableEq α
inst✝¹ : Fintype α
inst✝ : Finite β
f : Perm β
hf : IsCycle f
n : ℕ
val✝ : Fintype β
x : β
hx : ↑f x ≠ x
hx' : ↑(f ^ n) x = x
h : ¬support (f ^ n) = support f
⊢ f ^ n = 1

tactic: obtain ⟨k, rfl⟩ := h
state_before: case neg
ι : Type ?u.1228455
α : Type ?u.1228458
β : Type u_1
f✝ g : Perm α
x✝ y : α
inst✝² : DecidableEq α
inst✝¹ : Fintype α
inst✝ : Finite β
f : Perm β
hf : IsCycle f
n : ℕ
val✝ : Fintype β
x : β
hx : ↑f x ≠ x
hx' : ↑(f ^ n) x = x
h : orderOf f ∣ n
⊢ f ^ n = 1

tactic: rw [pow_mul, pow_orderOf_eq_one, one_pow]
state_before: case neg.intro
ι : Type ?u.1228455
α : Type ?u.1228458
β : Type u_1
f✝ g : Perm α
x✝ y : α
inst✝² : DecidableEq α
inst✝¹ : Fintype α
inst✝ : Finite β
f : Perm β
hf : IsCycle f
val✝ : Fintype β
x : β
hx : ↑f x ≠ x
k : ℕ
hx' : ↑(f ^ (orderOf f * k)) x = x
⊢ f ^ (orderOf f * k) = 1