Definition compare : forall x y, Compare lt eq x y.Definition eq_dec : forall x y, { eq x y } + { ~ eq x y }.Module MO:=OrderedTypeFacts(O).Definition t := t.Definition compare x y := match compare x y with
   | LT _ => Lt
   | EQ _ => Eq
   | GT _ => Gt
  end.Infix "?=" := compare (at level 70, no associativity).

Lemma compare_trans : forall c x y z, (x?=y) = c -> (y?=z) = c -> (x?=z) = c.