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))
  H : x = e..s \/ x = e..t
  H0 : VSet.In x (V G1)
  ============================
   ((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)) ->
    ((exists e : EdgeSet.elt,
        In e es /\ (x = e..s \/ x = e..t) /\ VSet.In x (V G1)) ->
     VSet.In x (fold_right fold_fun VSet.empty es)) ->
    (e = e \/ In e es) /\ (x = e..s \/ x = e..t) /\ VSet.In x (V G1))


DEBUG:Going to execute:
do 2 intro
DEBUG LTAC Evaluated term: ih