Goal:
  
  A : Type
  cmp : A -> A -> comparison
  Hc : forall (c : comparison) (x y z : A),
       cmp x y = c -> cmp y z = c -> cmp x z = c
  He : forall x y : A, cmp x y = Eq -> x = y
  x : A
  y : A
  z : A
  q : comparison
  q' : comparison
  q'' : comparison
  Hqs : forall c : comparison, q = c -> q' = c -> q'' = c
  e : cmp x y = Gt
  e' : cmp y z = Gt
  ============================
   ((Gt ?? q'') = Gt)


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

Goals:

DEBUG:Going to execute:
hnf

Goals:

DEBUG:Going to execute:
intros

Goals:

DEBUG:Going to execute:
solve
[ do
![ solve
 [ trivial | apply : eq_sym ; trivial ]
 | discriminate
 | contradiction
 | Ltac.split ]
| case not_locked_false_eq_true; Ltac.assumption
| match goal with
  | H:~ _ |- _ => solve [ case H; trivial ]
  end ]