match p₁ with
| nil _ =>
  rw [nil_append] at eqn
  let leqn := congrArg EdgePath.toList eqn
  simp [cons_toList, nil_toList, append_toList] at leqn
  rename_i e''
  have : e' = e''.bar := by
    ext
    rw [EdgeBetween.bar_eq_bar]
    rw [← leqn.1, leqn.2.1]
  contradiction
| cons ph pt =>
  symm at eqn
  let tred : ¬ reduced (cons e' p') :=
    tail_reducible_of_split eqn
  contradiction
V : Type u
E : Type v
inst✝¹ : DecidableEq V
inst✝ : DecidableEq E
G : Graph V E
u✝ v w' : V
e✝ : EdgeBetween G u✝ v
p : EdgePath G v w'
w : V
e' : EdgeBetween G v u✝
p' : EdgePath G u✝ w
hyp : reduced (cons e' p')
c' : ¬e' = EdgeBetween.bar e✝
p'' : EdgePath G u✝ w
red' : Reduction (cons e✝ (cons e' p')) p''
u u' : V
e : EdgeBetween G u u'
p₁ : EdgePath G u✝ u
p₂ : EdgePath G u w
eqn : p₁ ++ cons e (cons (EdgeBetween.bar e) p₂) = cons e✝ (cons e' p')
⊢ False
no goals