Definition compare x y : Compare lt eq x y.Definition eq_dec := Pos.eq_dec.Definition t:=N.Definition eq:=@eq N.Definition eq_refl := @eq_refl t.Definition eq_sym := @eq_sym t.Definition eq_trans := @eq_trans t.Definition lt := N.lt.Definition lt_trans := N.lt_trans.Definition lt_not_eq := N.lt_neq.Definition compare x y : Compare lt eq x y.Definition eq_dec := N.eq_dec.Module MO1:=OrderedTypeFacts(O1).Module MO2:=OrderedTypeFacts(O2).Definition t := prod O1.t O2.t.Definition eq x y := O1.eq (fst x) (fst y) /\ O2.eq (snd x) (snd y).Definition lt x y :=
    O1.lt (fst x) (fst y) \/
    (O1.eq (fst x) (fst y) /\ O2.lt (snd x) (snd y)).

(* Specifications: *)
Lemma eq_refl : forall x : t, eq x x.
Lemma eq_sym : forall x y : t, eq x y -> eq y x.
Lemma eq_trans : forall x y z : t, eq x y -> eq y z -> eq x z.
Lemma lt_trans : forall x y z : t, lt x y -> lt y z -> lt x z.
Lemma lt_not_eq : forall x y : t, lt x y -> ~ eq x y.