Goal:
    x : V.t  s : VSet.t
  ============================
   (~ VSet.In x (VSet.remove x s))


DEBUG:Going to execute:
match goal with
           | H:context [ ?P -> False ] |- _ => fold (~ P) in H
           | |- context [ ?P -> False ] => fold (~ P)
           end
DEBUG LTAC Evaluated term: (~ VSet.In x (VSet.remove x s))

Goals:
    x : V.t  s : VSet.t  y : V.t
  ============================
   ((VSet.In y (VSet.add x s) -> x = y \/ VSet.In y (VSet.remove x s)) /\
    (x = y \/ VSet.In y (VSet.remove x s) -> VSet.In y (VSet.add x s)))

    x : V.t  s : VSet.t
  ============================
   (~ VSet.In x (VSet.remove x s))


DEBUG:Going to execute:
unfold not in *
Level 0: Backtrace:

No matching clauses for match.

Goals:
    x : V.t  s : VSet.t  y : V.t
  ============================
   ((VSet.In y (VSet.add x s) -> x = y \/ VSet.In y (VSet.remove x s)) /\
    (x = y \/ VSet.In y (VSet.remove x s) -> VSet.In y (VSet.add x s)))

    x : V.t  s : VSet.t
  ============================
   (VSet.In x (VSet.remove x s) -> False)


DEBUG:Going to execute:
match goal with
           | H:VSet.In ?x ?r -> False
             |- VSet.In ?x ?s -> False =>
                 contradict H; VSetDecide.MSetDecideAuxiliary.fsetdec_body
           | H:VSet.In ?x ?r -> False
             |- ?x = ?y -> False =>
                 contradict H; VSetDecide.MSetDecideAuxiliary.fsetdec_body
           | H:VSet.In ?x ?r -> False
             |- ?y = ?x -> False =>
                 contradict H; VSetDecide.MSetDecideAuxiliary.fsetdec_body
           | H:?P -> False
             |- ?Q -> False =>
                 tryif prop (VSetDecide.MSetDecideAuxiliary.MSet_elt_Prop P)
                  holds by auto  100 with MSet_Prop then
                  (contradict H; VSetDecide.MSetDecideAuxiliary.fsetdec_body)
                   else VSetDecide.MSetDecideAuxiliary.fsetdec_body 
           | |- _ => VSetDecide.MSetDecideAuxiliary.fsetdec_body
           end