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


DEBUG:Going to execute:
change eq with eq

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:
subst ++
DEBUG LTAC Evaluated term: eq
Level 1: Backtrace:

Failed to progress.
Level 1: Backtrace:

Failed to progress.
Level 0: Backtrace:

Failed to progress.

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:
repeat match goal with
                  | x:_ |- _ => subst x
                  end; cbv beta zeta in *

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:
repeat match goal with
                  | x:_ |- _ => subst x
                  end