Goal:
  
  G : t
  s0 : VSet.t
  x : VSet.elt
  Hx : VSet.In x s0
  s1 : VSet.t
  s2 : VSet.t
  Hs : VSet.Equal (VSet.union s0 (VSet.add x s1)) s2
  y : VSet.elt
  ============================
   (VSet.In y (VSet.union s0 (VSet.add x s1)) -> VSet.In y (VSet.union s0 s1))


DEBUG:Going to execute:
<coq-core.plugins.ltac::intro@1> $1

Goals:
  
  G : t
  s0 : VSet.t
  x : VSet.elt
  Hx : VSet.In x s0
  s1 : VSet.t
  s2 : VSet.t
  Hs : VSet.Equal (VSet.union s0 (VSet.add x s1)) s2
  y : VSet.elt
  Hy : VSet.In y (VSet.union s0 s1)
  ============================
   (VSet.In y (VSet.union s0 (VSet.add x s1)))

  
  G : t
  s0 : VSet.t
  x : VSet.elt
  Hx : VSet.In x s0
  s1 : VSet.t
  s2 : VSet.t
  Hs : VSet.Equal (VSet.union s0 (VSet.add x s1)) s2
  y : VSet.elt
  Hy : VSet.In y (VSet.union s0 (VSet.add x s1))
  ============================
   (VSet.In y (VSet.union s0 s1))


DEBUG:Going to execute:
apply VSet.union_spec

Goals:
  
  G : t
  s0 : VSet.t
  x : VSet.elt
  Hx : VSet.In x s0
  s1 : VSet.t
  s2 : VSet.t
  Hs : VSet.Equal (VSet.union s0 (VSet.add x s1)) s2
  y : VSet.elt
  Hy : VSet.In y (VSet.union s0 s1)
  ============================
   (VSet.In y s0 \/ VSet.In y (VSet.add x s1))

  
  G : t
  s0 : VSet.t
  x : VSet.elt
  Hx : VSet.In x s0
  s1 : VSet.t
  s2 : VSet.t
  Hs : VSet.Equal (VSet.union s0 (VSet.add x s1)) s2
  y : VSet.elt
  Hy : VSet.In y (VSet.union s0 (VSet.add x s1))
  ============================
   (VSet.In y s0 \/ VSet.In y s1)


DEBUG:Going to execute:
apply VSet.union_spec in Hy
DEBUG LTAC Evaluated term: VSet.union_spec
DEBUG LTAC Evaluated term: VSet.union_spec

Goals:
  
  G : t
  s0 : VSet.t
  x : VSet.elt
  Hx : VSet.In x s0
  s1 : VSet.t
  s2 : VSet.t
  Hs : VSet.Equal (VSet.union s0 (VSet.add x s1)) s2
  y : VSet.elt
  Hy : VSet.In y s0 \/ VSet.In y s1
  ============================
   (VSet.In y s0 \/ VSet.In y (VSet.add x s1))

  
  G : t
  s0 : VSet.t
  x : VSet.elt
  Hx : VSet.In x s0
  s1 : VSet.t
  s2 : VSet.t
  Hs : VSet.Equal (VSet.union s0 (VSet.add x s1)) s2
  y : VSet.elt
  Hy : VSet.In y s0 \/ VSet.In y (VSet.add x s1)
  ============================
   (VSet.In y s0 \/ VSet.In y s1)


DEBUG:Going to execute:
destruct Hy as [Hy| Hy]
DEBUG LTAC Evaluated term: VSet.union_spec
DEBUG LTAC Evaluated term: VSet.union_spec