Theorem: Graph.EdgePath.append_toList (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
p₁ : EdgePath G v w
p₂ : EdgePath G w u
⊢ toList (p₁ ++ p₂) = toList p₁ ++ toList p₂
Tactic:
induction p₁ with
| nil v => 
  simp [nil_toList]
| cons e p' ih =>
  simp [cons_toList]
  apply ih
State after:
no goals

State before:
case nil
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 : V
p₂ : EdgePath G v u
⊢ toList (nil v ++ p₂) = toList (nil v) ++ toList p₂
Tactic:
simp [nil_toList]
State after:
no goals

State before:
case cons
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✝ w✝ u✝ : V
e : EdgeBetween G v✝ w✝
p' : EdgePath G w✝ u✝
ih : ∀ (p₂ : EdgePath G u✝ u), toList (p' ++ p₂) = toList p' ++ toList p₂
p₂ : EdgePath G u✝ u
⊢ toList (cons e p' ++ p₂) = toList (cons e p') ++ toList p₂
Tactic:
simp [cons_toList]
State after:
case cons
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✝ w✝ u✝ : V
e : EdgeBetween G v✝ w✝
p' : EdgePath G w✝ u✝
ih : ∀ (p₂ : EdgePath G u✝ u), toList (p' ++ p₂) = toList p' ++ toList p₂
p₂ : EdgePath G u✝ u
⊢ toList (p' ++ p₂) = toList p' ++ toList p₂

State before:
case cons
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✝ w✝ u✝ : V
e : EdgeBetween G v✝ w✝
p' : EdgePath G w✝ u✝
ih : ∀ (p₂ : EdgePath G u✝ u), toList (p' ++ p₂) = toList p' ++ toList p₂
p₂ : EdgePath G u✝ u
⊢ toList (p' ++ p₂) = toList p' ++ toList p₂
Tactic:
apply ih
State after:
no goals