Goal:
  
  x1 : V.t
  n1 : Z
  y1 : V.t
  n2 : Z
  y2 : V.t
  x3 : V.t
  n3 : Z
  y3 : V.t
  H1 : V.lt x1 x3
  H2' : n2 < n3
  T2 : V.lt y1 y2 -> V.lt y2 y3 -> V.lt y1 y3
  T3 : n1 = n2 -> n2 = n3 -> n1 = n3
  H : V.lt x3 x3 -> V.lt x1 x3
  ============================
   (V.lt x1 x3 \/ x1 = x3 /\ n1 < n3 \/ x1 = x3 /\ n1 = n3 /\ V.lt y1 y3)


DEBUG:Going to execute:
fun flags =>
             match reverse goal with
             | |- ?X1 =>
                   <Coq.Init.Tauto.is_unit_or_eq> flags X1; constructor 1
             | H:?X1 |- _ => <Coq.Init.Tauto.is_empty> flags X1; elim H
             | _ => Ltac.assumption
             end