Goal:
  
  x1 : V.t
  n1 : Z
  y1 : V.t
  x2 : V.t
  n2 : Z
  y2 : V.t
  H1 : CompareSpec (x1 = x2) (V.lt x1 x2) (V.lt x2 x1) (V.compare x1 x2)
  ============================
   (CompareSpec ((x1, n1, y1) = (x2, n2, y2))
      (V.lt x1 x2 \/
       V.eq x1 x2 /\ n1 < n2 \/ V.eq x1 x2 /\ n1 = n2 /\ V.lt y1 y2)
      (V.lt x2 x1 \/
       V.eq x2 x1 /\ n2 < n1 \/ V.eq x2 x1 /\ n2 = n1 /\ V.lt y2 y1)
      match V.compare x1 x2 with
      | Eq =>
          match n1 ?= n2 with
          | Eq => V.compare y1 y2
          | Lt => Lt
          | Gt => Gt
          end
      | Lt => Lt
      | Gt => Gt
      end)


DEBUG:Going to execute:
destruct (V.compare x1 x2); cbn in *
DEBUG LTAC Evaluated term: (V.compare_spec x1 x2)