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 (e.π1 + sweight p)%Z <=
    (if VSet.mem x s'
     then
      fold_left max
        (map (fun '(n, y) => Some n + lsp0 (VSet.remove x s') y z) (succs x))
        (if is_left (V.eq_dec x z) then Some 0 else None)
     else if is_left (V.eq_dec x z) then Some 0 else None))%nbar


DEBUG:Going to execute:
<coq-core.plugins.ssreflect::ssrrewrite@0> $1 $2