Theorem: OnCycleFactors.count_le_one_of_mem_kerφ
Proof state before:
case intro.intro.intro
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
g : Equiv.Perm α
h : MulAction.stabilizer (ConjAct (Equiv.Perm α)) g ≤ alternatingGroup α
c : Equiv.Perm α
hc : c ∈ Equiv.Perm.cycleFactorsFinset g
d : Equiv.Perm α
hd : d ∈ Equiv.Perm.cycleFactorsFinset g
hm : (Equiv.Perm.support c).card = (Equiv.Perm.support d).card
hm' : c ≠ d
τ : Equiv.Perm { x // x ∈ Equiv.Perm.cycleFactorsFinset g } :=
  Equiv.swap { val := c, property := hc } { val := d, property := hd }
a : Equiv.Perm.Basis g
hτ : τ ∈ Iφ g
k : Equiv.Perm α := ConjAct.ofConjAct ↑((φ' a) { val := τ, property := hτ })
hk2 : ∀ (c : { x // x ∈ Equiv.Perm.cycleFactorsFinset g }), ConjAct.toConjAct k • ↑c = ↑(τ c)
hksup : Equiv.Perm.support k ≤ Equiv.Perm.support g
this✝ : Equiv.Perm.cycleType k = Multiset.replicate (Multiset.card (Equiv.Perm.cycleType k)) 2
this'✝ : Multiset.card (Equiv.Perm.cycleType k) * 2 = (Equiv.Perm.support k).card
x : α
hx : x ∈ Equiv.Perm.support c ∪ Equiv.Perm.support d
hx' : Equiv.Perm.cycleOf g x = c ∨ Equiv.Perm.cycleOf g x = d
cx : { x // x ∈ Equiv.Perm.cycleFactorsFinset g }
hcx : ∀ y ∈ Equiv.Perm.support ↑cx, Equiv.Perm.SameCycle g y x
hcx' : ↑cx = Equiv.Perm.cycleOf g x
n : ℕ
left✝ : n < orderOf g
hnx : (g ^ n) (a cx) = x
hk_apply : ∀ (n : ℕ), k ((g ^ n) (a cx)) = (g ^ n) (a (τ cx))
haτcx_eq_acx : a (τ cx) = a cx
this : ¬Equiv.Perm.Disjoint ↑cx ↑(τ cx)
this' : ¬(cx = { val := c, property := hc } ∨ cx = { val := d, property := hd })
⊢ cx = { val := c, property := hc } ∨ cx = { val := d, property := hd }

α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
g : Equiv.Perm α
h : MulAction.stabilizer (ConjAct (Equiv.Perm α)) g ≤ alternatingGroup α
c : Equiv.Perm α
hc : c ∈ Equiv.Perm.cycleFactorsFinset g
d : Equiv.Perm α
hd : d ∈ Equiv.Perm.cycleFactorsFinset g
hm : (Equiv.Perm.support c).card = (Equiv.Perm.support d).card
hm' : c ≠ d
τ : Equiv.Perm { x // x ∈ Equiv.Perm.cycleFactorsFinset g } :=
  Equiv.swap { val := c, property := hc } { val := d, property := hd }
a : Equiv.Perm.Basis g
hτ : τ ∈ Iφ g
k : Equiv.Perm α := ConjAct.ofConjAct ↑((φ' a) { val := τ, property := hτ })
hk2 : ∀ (c : { x // x ∈ Equiv.Perm.cycleFactorsFinset g }), ConjAct.toConjAct k • ↑c = ↑(τ c)
hksup : Equiv.Perm.support k ≤ Equiv.Perm.support g
this✝ : Equiv.Perm.cycleType k = Multiset.replicate (Multiset.card (Equiv.Perm.cycleType k)) 2
this'✝ : Multiset.card (Equiv.Perm.cycleType k) * 2 = (Equiv.Perm.support k).card
x : α
hx : x ∈ Equiv.Perm.support c ∪ Equiv.Perm.support d
hx' : Equiv.Perm.cycleOf g x = c ∨ Equiv.Perm.cycleOf g x = d
cx : { x // x ∈ Equiv.Perm.cycleFactorsFinset g }
hcx : ∀ y ∈ Equiv.Perm.support ↑cx, Equiv.Perm.SameCycle g y x
hcx' : ↑cx = Equiv.Perm.cycleOf g x
n : ℕ
left✝ : n < orderOf g
hnx : (g ^ n) (a cx) = x
hk_apply : ∀ (n : ℕ), k ((g ^ n) (a cx)) = (g ^ n) (a (τ cx))
haτcx_eq_acx : a (τ cx) = a cx
this : ¬Equiv.Perm.Disjoint ↑cx ↑(τ cx)
this' : cx ∉ Equiv.Perm.support τ
⊢ { val := c, property := hc } ≠ { val := d, property := hd }
Tactic:
simp only [← Subtype.coe_inj, Subtype.coe_mk, ← hcx']
Proof state after:
case intro.intro.intro
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
g : Equiv.Perm α
h : MulAction.stabilizer (ConjAct (Equiv.Perm α)) g ≤ alternatingGroup α
c : Equiv.Perm α
hc : c ∈ Equiv.Perm.cycleFactorsFinset g
d : Equiv.Perm α
hd : d ∈ Equiv.Perm.cycleFactorsFinset g
hm : (Equiv.Perm.support c).card = (Equiv.Perm.support d).card
hm' : c ≠ d
τ : Equiv.Perm { x // x ∈ Equiv.Perm.cycleFactorsFinset g } :=
  Equiv.swap { val := c, property := hc } { val := d, property := hd }
a : Equiv.Perm.Basis g
hτ : τ ∈ Iφ g
k : Equiv.Perm α := ConjAct.ofConjAct ↑((φ' a) { val := τ, property := hτ })
hk2 : ∀ (c : { x // x ∈ Equiv.Perm.cycleFactorsFinset g }), ConjAct.toConjAct k • ↑c = ↑(τ c)
hksup : Equiv.Perm.support k ≤ Equiv.Perm.support g
this✝ : Equiv.Perm.cycleType k = Multiset.replicate (Multiset.card (Equiv.Perm.cycleType k)) 2
this'✝ : Multiset.card (Equiv.Perm.cycleType k) * 2 = (Equiv.Perm.support k).card
x : α
hx : x ∈ Equiv.Perm.support c ∪ Equiv.Perm.support d
hx' : Equiv.Perm.cycleOf g x = c ∨ Equiv.Perm.cycleOf g x = d
cx : { x // x ∈ Equiv.Perm.cycleFactorsFinset g }
hcx : ∀ y ∈ Equiv.Perm.support ↑cx, Equiv.Perm.SameCycle g y x
hcx' : ↑cx = Equiv.Perm.cycleOf g x
n : ℕ
left✝ : n < orderOf g
hnx : (g ^ n) (a cx) = x
hk_apply : ∀ (n : ℕ), k ((g ^ n) (a cx)) = (g ^ n) (a (τ cx))
haτcx_eq_acx : a (τ cx) = a cx
this : ¬Equiv.Perm.Disjoint ↑cx ↑(τ cx)
this' : ¬(cx = { val := c, property := hc } ∨ cx = { val := d, property := hd })
⊢ ↑cx = c ∨ ↑cx = d

α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
g : Equiv.Perm α
h : MulAction.stabilizer (ConjAct (Equiv.Perm α)) g ≤ alternatingGroup α
c : Equiv.Perm α
hc : c ∈ Equiv.Perm.cycleFactorsFinset g
d : Equiv.Perm α
hd : d ∈ Equiv.Perm.cycleFactorsFinset g
hm : (Equiv.Perm.support c).card = (Equiv.Perm.support d).card
hm' : c ≠ d
τ : Equiv.Perm { x // x ∈ Equiv.Perm.cycleFactorsFinset g } :=
  Equiv.swap { val := c, property := hc } { val := d, property := hd }
a : Equiv.Perm.Basis g
hτ : τ ∈ Iφ g
k : Equiv.Perm α := ConjAct.ofConjAct ↑((φ' a) { val := τ, property := hτ })
hk2 : ∀ (c : { x // x ∈ Equiv.Perm.cycleFactorsFinset g }), ConjAct.toConjAct k • ↑c = ↑(τ c)
hksup : Equiv.Perm.support k ≤ Equiv.Perm.support g
this✝ : Equiv.Perm.cycleType k = Multiset.replicate (Multiset.card (Equiv.Perm.cycleType k)) 2
this'✝ : Multiset.card (Equiv.Perm.cycleType k) * 2 = (Equiv.Perm.support k).card
x : α
hx : x ∈ Equiv.Perm.support c ∪ Equiv.Perm.support d
hx' : Equiv.Perm.cycleOf g x = c ∨ Equiv.Perm.cycleOf g x = d
cx : { x // x ∈ Equiv.Perm.cycleFactorsFinset g }
hcx : ∀ y ∈ Equiv.Perm.support ↑cx, Equiv.Perm.SameCycle g y x
hcx' : ↑cx = Equiv.Perm.cycleOf g x
n : ℕ
left✝ : n < orderOf g
hnx : (g ^ n) (a cx) = x
hk_apply : ∀ (n : ℕ), k ((g ^ n) (a cx)) = (g ^ n) (a (τ cx))
haτcx_eq_acx : a (τ cx) = a cx
this : ¬Equiv.Perm.Disjoint ↑cx ↑(τ cx)
this' : cx ∉ Equiv.Perm.support τ
⊢ { val := c, property := hc } ≠ { val := d, property := hd }