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
  IHp : (Some (sweight p) <= lsp0 s0 y z)%nbar
  ee : VSet.mem x s' = true
  ============================
   ((Some (x, e.π1, y)..w + lsp0 (VSet.remove x s') y z)%nbar =
    (Some e.π1 + lsp0 s0 y z)%nbar /\
    In (x, e.π1, y)
      (filter (fun e : Edge.t => V.eq_dec e..s x) (EdgeSet.elements (E G))))


DEBUG:Going to execute:
split
DEBUG LTAC Evaluated term: (x, e.π1, y)