Theorem: Equiv.Perm.signAux3_symm_trans_trans
File: Mathlib/GroupTheory/Perm/Sign.lean

tactic: induction' t, s using Quotient.inductionOn₂ with t s ht hs
state_before: α : Type u
inst✝³ : DecidableEq α
β : Type v
inst✝² : Finite α
inst✝¹ : DecidableEq β
inst✝ : Finite β
f : Perm α
e : α ≃ β
s : Multiset α
t : Multiset β
hs : ∀ (x : α), x ∈ s
ht : ∀ (x : β), x ∈ t
⊢ signAux3 ((e.symm.trans f).trans e) ht = f.signAux3 hs
state_after: case h
α : Type u
inst✝³ : DecidableEq α
β : Type v
inst✝² : Finite α
inst✝¹ : DecidableEq β
inst✝ : Finite β
f : Perm α
e : α ≃ β
t : List β
s : List α
hs : ∀ (x : α), x ∈ ⟦s⟧
ht : ∀ (x : β), x ∈ ⟦t⟧
⊢ signAux3 ((e.symm.trans f).trans e) ht = f.signAux3 hs

tactic: show signAux2 _ _ = signAux2 _ _
state_before: case h
α : Type u
inst✝³ : DecidableEq α
β : Type v
inst✝² : Finite α
inst✝¹ : DecidableEq β
inst✝ : Finite β
f : Perm α
e : α ≃ β
t : List β
s : List α
hs : ∀ (x : α), x ∈ ⟦s⟧
ht : ∀ (x : β), x ∈ ⟦t⟧
⊢ signAux3 ((e.symm.trans f).trans e) ht = f.signAux3 hs
state_after: case h
α : Type u
inst✝³ : DecidableEq α
β : Type v
inst✝² : Finite α
inst✝¹ : DecidableEq β
inst✝ : Finite β
f : Perm α
e : α ≃ β
t : List β
s : List α
hs : ∀ (x : α), x ∈ ⟦s⟧
ht : ∀ (x : β), x ∈ ⟦t⟧
⊢ signAux2 t ((e.symm.trans f).trans e) = signAux2 s f

tactic: rcases Finite.exists_equiv_fin β with ⟨n, ⟨e'⟩⟩
state_before: case h
α : Type u
inst✝³ : DecidableEq α
β : Type v
inst✝² : Finite α
inst✝¹ : DecidableEq β
inst✝ : Finite β
f : Perm α
e : α ≃ β
t : List β
s : List α
hs : ∀ (x : α), x ∈ ⟦s⟧
ht : ∀ (x : β), x ∈ ⟦t⟧
⊢ signAux2 t ((e.symm.trans f).trans e) = signAux2 s f
state_after: case h.intro.intro
α : Type u
inst✝³ : DecidableEq α
β : Type v
inst✝² : Finite α
inst✝¹ : DecidableEq β
inst✝ : Finite β
f : Perm α
e : α ≃ β
t : List β
s : List α
hs : ∀ (x : α), x ∈ ⟦s⟧
ht : ∀ (x : β), x ∈ ⟦t⟧
n : ℕ
e' : β ≃ Fin n
⊢ signAux2 t ((e.symm.trans f).trans e) = signAux2 s f

tactic: rw [← signAux_eq_signAux2 _ _ e' fun _ _ => ht _,
  ← signAux_eq_signAux2 _ _ (e.trans e') fun _ _ => hs _]
state_before: case h.intro.intro
α : Type u
inst✝³ : DecidableEq α
β : Type v
inst✝² : Finite α
inst✝¹ : DecidableEq β
inst✝ : Finite β
f : Perm α
e : α ≃ β
t : List β
s : List α
hs : ∀ (x : α), x ∈ ⟦s⟧
ht : ∀ (x : β), x ∈ ⟦t⟧
n : ℕ
e' : β ≃ Fin n
⊢ signAux2 t ((e.symm.trans f).trans e) = signAux2 s f
state_after: case h.intro.intro
α : Type u
inst✝³ : DecidableEq α
β : Type v
inst✝² : Finite α
inst✝¹ : DecidableEq β
inst✝ : Finite β
f : Perm α
e : α ≃ β
t : List β
s : List α
hs : ∀ (x : α), x ∈ ⟦s⟧
ht : ∀ (x : β), x ∈ ⟦t⟧
n : ℕ
e' : β ≃ Fin n
⊢ signAux ((e'.symm.trans ((e.symm.trans f).trans e)).trans e') =
    signAux (((e.trans e').symm.trans f).trans (e.trans e'))

tactic: exact congr_arg signAux
  (Equiv.ext fun x => by simp [Equiv.coe_trans, apply_eq_iff_eq, symm_trans_apply])
state_before: case h.intro.intro
α : Type u
inst✝³ : DecidableEq α
β : Type v
inst✝² : Finite α
inst✝¹ : DecidableEq β
inst✝ : Finite β
f : Perm α
e : α ≃ β
t : List β
s : List α
hs : ∀ (x : α), x ∈ ⟦s⟧
ht : ∀ (x : β), x ∈ ⟦t⟧
n : ℕ
e' : β ≃ Fin n
⊢ signAux ((e'.symm.trans ((e.symm.trans f).trans e)).trans e') =
    signAux (((e.trans e').symm.trans f).trans (e.trans e'))
state_after: no goals

tactic: simp [Equiv.coe_trans, apply_eq_iff_eq, symm_trans_apply]
state_before: α : Type u
inst✝³ : DecidableEq α
β : Type v
inst✝² : Finite α
inst✝¹ : DecidableEq β
inst✝ : Finite β
f : Perm α
e : α ≃ β
t : List β
s : List α
hs : ∀ (x : α), x ∈ ⟦s⟧
ht : ∀ (x : β), x ∈ ⟦t⟧
n : ℕ
e' : β ≃ Fin n
x : Fin n
⊢ ((e'.symm.trans ((e.symm.trans f).trans e)).trans e') x = (((e.trans e').symm.trans f).trans (e.trans e')) x
state_after: no goals