Theorem: unswap_support' (Bruhat/Word.lean)

State before:
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a : α
⊢ support (Equiv.swap a (f a) * f) ⊆ support f
Tactic:
simp [support] at *
State after:
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a : α
⊢ ∀ (a_1 : α), ¬(Equiv.swap a (f a)) (f a_1) = a_1 → ¬f a_1 = a_1

State before:
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a : α
⊢ ∀ (a_1 : α), ¬(Equiv.swap a (f a)) (f a_1) = a_1 → ¬f a_1 = a_1
Tactic:
intro b
State after:
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
⊢ ¬(Equiv.swap a (f a)) (f b) = b → ¬f b = b

State before:
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
⊢ ¬(Equiv.swap a (f a)) (f b) = b → ¬f b = b
Tactic:
contrapose!
State after:
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
⊢ f b = b → (Equiv.swap a (f a)) (f b) = b

State before:
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
⊢ f b = b → (Equiv.swap a (f a)) (f b) = b
Tactic:
intro hbf
State after:
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
hbf : f b = b
⊢ (Equiv.swap a (f a)) (f b) = b

State before:
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
hbf : f b = b
⊢ (Equiv.swap a (f a)) (f b) = b
Tactic:
rw [hbf]
State after:
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
hbf : f b = b
⊢ (Equiv.swap a (f a)) b = b

State before:
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
hbf : f b = b
⊢ (Equiv.swap a (f a)) b = b
Tactic:
by_cases h : b = a
State after:
case pos
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
hbf : f b = b
h : b = a
⊢ (Equiv.swap a (f a)) b = b

case neg
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
hbf : f b = b
h : ¬b = a
⊢ (Equiv.swap a (f a)) b = b

State before:
case pos
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
hbf : f b = b
h : b = a
⊢ (Equiv.swap a (f a)) b = b

case neg
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
hbf : f b = b
h : ¬b = a
⊢ (Equiv.swap a (f a)) b = b
Tactic:
. subst b
  simp [hbf]
State after:
case neg
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
hbf : f b = b
h : ¬b = a
⊢ (Equiv.swap a (f a)) b = b

State before:
case neg
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
hbf : f b = b
h : ¬b = a
⊢ (Equiv.swap a (f a)) b = b
Tactic:
by_cases h' : b = f a
State after:
case pos
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
hbf : f b = b
h : ¬b = a
h' : b = f a
⊢ (Equiv.swap a (f a)) b = b

case neg
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
hbf : f b = b
h : ¬b = a
h' : ¬b = f a
⊢ (Equiv.swap a (f a)) b = b

State before:
case pos
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
hbf : f b = b
h : ¬b = a
h' : b = f a
⊢ (Equiv.swap a (f a)) b = b

case neg
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
hbf : f b = b
h : ¬b = a
h' : ¬b = f a
⊢ (Equiv.swap a (f a)) b = b
Tactic:
. subst b
  simp
  apply f.injective hbf.symm
State after:
case neg
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
hbf : f b = b
h : ¬b = a
h' : ¬b = f a
⊢ (Equiv.swap a (f a)) b = b

State before:
case neg
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
hbf : f b = b
h : ¬b = a
h' : ¬b = f a
⊢ (Equiv.swap a (f a)) b = b
Tactic:
apply Equiv.swap_apply_of_ne_of_ne h h'
State after:
no goals

State before:
case pos
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
hbf : f b = b
h : b = a
⊢ (Equiv.swap a (f a)) b = b
Tactic:
subst b
State after:
case pos
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a : α
hbf : f a = a
⊢ (Equiv.swap a (f a)) a = a

State before:
case pos
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a : α
hbf : f a = a
⊢ (Equiv.swap a (f a)) a = a
Tactic:
simp [hbf]
State after:
no goals

State before:
case pos
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a b : α
hbf : f b = b
h : ¬b = a
h' : b = f a
⊢ (Equiv.swap a (f a)) b = b
Tactic:
subst b
State after:
case pos
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a : α
hbf : f (f a) = f a
h : ¬f a = a
⊢ (Equiv.swap a (f a)) (f a) = f a

State before:
case pos
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a : α
hbf : f (f a) = f a
h : ¬f a = a
⊢ (Equiv.swap a (f a)) (f a) = f a
Tactic:
simp
State after:
case pos
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a : α
hbf : f (f a) = f a
h : ¬f a = a
⊢ a = f a

State before:
case pos
α : Type u_1
inst✝ : DecidableEq α
f : Equiv.Perm α
a : α
hbf : f (f a) = f a
h : ¬f a = a
⊢ a = f a
Tactic:
apply f.injective hbf.symm
State after:
no goals