Theorem: Graph.cons_equiv_of_equiv (GroupComp/Graph.lean)

State before:
V : Type u
E : Type v
inst✝¹ : DecidableEq V
inst✝ : DecidableEq E
G✝ : Graph V E
u✝ v✝ w✝ : V
e : EdgeBetween G✝ v✝ w✝
G : Graph V E
v w u : V
a : EdgeBetween G v w
b₁ b₂ : EdgePath G w u
⊢ [[b₁]] = [[b₂]] → [[cons a b₁]] = [[cons a b₂]]
Tactic:
intro r
State after:
V : Type u
E : Type v
inst✝¹ : DecidableEq V
inst✝ : DecidableEq E
G✝ : Graph V E
u✝ v✝ w✝ : V
e : EdgeBetween G✝ v✝ w✝
G : Graph V E
v w u : V
a : EdgeBetween G v w
b₁ b₂ : EdgePath G w u
r : [[b₁]] = [[b₂]]
⊢ [[cons a b₁]] = [[cons a b₂]]

State before:
V : Type u
E : Type v
inst✝¹ : DecidableEq V
inst✝ : DecidableEq E
G✝ : Graph V E
u✝ v✝ w✝ : V
e : EdgeBetween G✝ v✝ w✝
G : Graph V E
v w u : V
a : EdgeBetween G v w
b₁ b₂ : EdgePath G w u
r : [[b₁]] = [[b₂]]
⊢ [[cons a b₁]] = [[cons a b₂]]
Tactic:
rw [show cons a b₁ = cons a (nil _) ++ b₁ by rfl, 
    show cons a b₂ = cons a (nil _) ++ b₂ by rfl,
    ← mul_path_path, ← mul_path_path, r]
State after:
no goals

State before:
V : Type u
E : Type v
inst✝¹ : DecidableEq V
inst✝ : DecidableEq E
G✝ : Graph V E
u✝ v✝ w✝ : V
e : EdgeBetween G✝ v✝ w✝
G : Graph V E
v w u : V
a : EdgeBetween G v w
b₁ b₂ : EdgePath G w u
r : [[b₁]] = [[b₂]]
⊢ cons a b₁ = cons a (nil w) ++ b₁
Tactic:
rfl
State after:
no goals

State before:
V : Type u
E : Type v
inst✝¹ : DecidableEq V
inst✝ : DecidableEq E
G✝ : Graph V E
u✝ v✝ w✝ : V
e : EdgeBetween G✝ v✝ w✝
G : Graph V E
v w u : V
a : EdgeBetween G v w
b₁ b₂ : EdgePath G w u
r : [[b₁]] = [[b₂]]
⊢ cons a b₂ = cons a (nil w) ++ b₂
Tactic:
rfl
State after:
no goals