Goal:
  
  _z_ : VSet.t
  x0 : V.t
  x1 : V.t
  x2 : V.t
  x3 : V.t
  a : V.t
  H0 : x3 = a \/ VSet.In a _z_
  ============================
   (x2 = a \/ x3 = a \/ x0 = a \/ x1 = a \/ VSet.In a _z_)


DEBUG:Going to execute:
elim id
Level 3: evaluation returns
<coq-core.plugins.tauto::is_disj@0>
where
tauto_flags := 
of type
tauto_flags
X1 := x3 = a \/ VSet.In a _z_
of type
constr of type tacvalue


Goals:
  
  _z_ : VSet.t
  x0 : V.t
  x1 : V.t
  x2 : V.t
  x3 : V.t
  a : V.t
  H0 : x3 = a \/ VSet.In a _z_
  ============================
   (x3 = a -> x2 = a \/ x3 = a \/ x0 = a \/ x1 = a \/ VSet.In a _z_)

  
  _z_ : VSet.t
  x0 : V.t
  x1 : V.t
  x2 : V.t
  x3 : V.t
  a : V.t
  H0 : x3 = a \/ VSet.In a _z_
  ============================
   (VSet.In a _z_ -> x2 = a \/ x3 = a \/ x0 = a \/ x1 = a \/ VSet.In a _z_)


DEBUG:Going to execute:
intro
DEBUG LTAC Evaluated term: H0

Goals:
  
  _z_ : VSet.t
  x0 : V.t
  x1 : V.t
  x2 : V.t
  x3 : V.t
  a : V.t
  H0 : x3 = a \/ VSet.In a _z_
  ============================
   (x3 = a -> x2 = a \/ x3 = a \/ x0 = a \/ x1 = a \/ VSet.In a _z_)

  
  _z_ : VSet.t
  x0 : V.t
  x1 : V.t
  x2 : V.t
  x3 : V.t
  a : V.t
  H0 : x3 = a \/ VSet.In a _z_
  ============================
   (VSet.In a _z_ -> x2 = a \/ x3 = a \/ x0 = a \/ x1 = a \/ VSet.In a _z_)


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

Goals:
  
  _z_ : VSet.t
  x0 : V.t
  x1 : V.t
  x2 : V.t
  x3 : V.t
  a : V.t
  H0 : x3 = a \/ VSet.In a _z_
  H : x3 = a
  ============================
   (x2 = a \/ x3 = a \/ x0 = a \/ x1 = a \/ VSet.In a _z_)

  
  _z_ : VSet.t
  x0 : V.t
  x1 : V.t
  x2 : V.t
  x3 : V.t
  a : V.t
  H0 : x3 = a \/ VSet.In a _z_
  H : VSet.In a _z_
  ============================
   (x2 = a \/ x3 = a \/ x0 = a \/ x1 = a \/ VSet.In a _z_)


DEBUG:Going to execute:
clear id