Goal:
  
  G : t
  HG : acyclic_no_loop
  x : V.t
  y : V.t
  z : V.t
  e : EdgeOf x y
  p : PathOf y z
  IHp : weight p <= sweight (simplify2 p)
  F0 : VSet.mem x (snodes (simplify2 p)) = true ->
       VSet.In x (snodes (simplify2 p))
  F1 := VSetFact.not_mem_iff (snodes (simplify2 p)) x
     : ~ VSet.In x (snodes (simplify2 p)) <->
       VSet.mem x (snodes (simplify2 p)) = false
  ============================
   (e.π1 + weight p <=
    sweight
      ((if VSet.mem x (snodes (simplify2 p)) as b
         return
           (VSet.mem x (snodes (simplify2 p)) = b ->
            SPath (VSet.add x (nodes p)) x z)
        then
         fun Hx : VSet.mem x (snodes (simplify2 p)) = true =>
         SPath_sub
           (VSetProp.subset_add_2 (s2:=nodes p) x (reflexivity (nodes p)))
           (split (simplify2 p) x (left (F0 Hx))).2
        else
         fun Hx : VSet.mem x (snodes (simplify2 p)) = false =>
         SPath_sub
           (VSetFact.add_s_m eq_refl (y:=nodes p)
              (snodes_Subset (simplify2 p)))
           (spath_step
              (DisjointAdd_add2 (match F1 with
                                 | conj _ x => x
                                 end Hx)) e (reduce (simplify2 p)))) eq_refl))


DEBUG:Going to execute:
<coq-core.plugins.ltac::clearbody@0> $1