Goal:
  
  f : EdgeSet.elt -> VSet.t -> VSet.t
  prpf : Proper (eq ==> VSet.Equal ==> VSet.Equal) f
  a : EdgeSet.elt
  l : list EdgeSet.elt
  H : Proper (VSet.Equal ==> VSet.Equal)
        (fold_left (fun (a : VSet.t) (e : EdgeSet.elt) => f e a) l)
  x : VSet.t
  y : VSet.t
  H0 : VSet.Equal x y
  a0 : VSet.elt
  ============================
   (VSet.In a0
      (fold_left (fun (a : VSet.t) (e : EdgeSet.elt) => f e a) l (f a y)) ->
    VSet.In a0
      (fold_left (fun (a : VSet.t) (e : EdgeSet.elt) => f e a) l (f a x)))


DEBUG:Going to execute:
fun => <coq-core.plugins.ltac::split@0>