Goal:
  
  G1 : t
  ext : EdgeSet.t
  x : VSet.elt
  e : EdgeSet.elt
  es : list EdgeSet.elt
  ih : VSet.In x (fold_right fold_fun VSet.empty es) <->
       (exists e : EdgeSet.elt,
          In e es /\ (x = e..s \/ x = e..t) /\ VSet.In x (V G1))
  ============================
   ((x = e..s \/ x = e..t) /\ VSet.In x (V G1) \/
    VSet.In x (fold_right fold_fun VSet.empty es) <->
    (exists e0 : EdgeSet.elt,
       (e = e0 \/ In e0 es) /\ (x = e0..s \/ x = e0..t) /\ VSet.In x (V G1)))


DEBUG:Going to execute:
split
DEBUG LTAC Evaluated term: fold_fun_spec
DEBUG LTAC Evaluated term: fold_fun_spec