Module OrderedType_from_Alt (O:OrderedTypeAlt) <: OrderedType.
Definition t := t.
Definition eq x y := (x?=y) = Eq.
Definition lt x y := (x?=y) = Lt.
Definition eq_trans := (compare_trans Eq).
Definition lt_trans := (compare_trans Lt).
Definition compare : forall x y, Compare lt eq x y.

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