Goal:
  
  G : t
  s0 : VSet.t
  s' : VSet.t
  x : V.t
  y : V.t
  z : V.t
  d : DisjointAdd x s0 s'
  e : EdgeOf x y
  p : SPath s0 y z
  Hu : {VSet.In x (snodes (spath_step d e p))} + {x = z}
  IHp : forall Hu : {VSet.In x (snodes p)} + {x = z},
        sweight (split p x Hu).1 + sweight (split p x Hu).2 = sweight p
  ============================
   (sweight
      (eq_rect_r
         (fun x0 : V.t =>
          DisjointAdd x0 s0 s' ->
          EdgeOf x0 y ->
          {VSet.In x (VSet.add x0 (snodes p))} + {x = z} ->
          SPath (VSet.remove x s') x0 x)
         (fun (_ : DisjointAdd x s0 s') (_ : EdgeOf x y)
            (_ : {VSet.In x (VSet.add x (snodes p))} + {x = z}) =>
          spath_refl (VSet.remove x s') x) eq_refl d e Hu) +
    ((eq_rec_r
        (fun x0 : V.t =>
         DisjointAdd x0 s0 s' ->
         EdgeOf x0 y ->
         {VSet.In x (VSet.add x0 (snodes p))} + {x = z} -> EdgeOf x y)
        (fun (_ : DisjointAdd x s0 s') (e : EdgeOf x y)
           (_ : {VSet.In x (VSet.add x (snodes p))} + {x = z}) => e) eq_refl
        d e Hu).π1 + sweight p) = e.π1 + sweight p)


DEBUG:Going to execute:
fun => <coq-core.plugins.ltac::reflexivity@0>