Module OrderTac := OT_to_OrderTac O.Ltac order := OrderTac.order.Notation "x <= y" := (~lt y x) : order.Infix "?=" := compare (at level 70, no associativity) : order.(** The following lemmas are either re-phrasing of [eq_equiv] and
      [lt_strorder] or immediately provable by [order]. Interest:
      compatibility, test of order, etc *)

  Definition eq_refl (x:t) : x==x := Equivalence_Reflexive x.Definition eq_sym (x y:t) : x==y -> y==x := Equivalence_Symmetric x y.Definition eq_trans (x y z:t) : x==y -> y==z -> x==z :=
   Equivalence_Transitive x y z.Definition lt_trans (x y z:t) : x<y -> y<z -> x<z :=
   StrictOrder_Transitive x y z.Definition lt_irrefl (x:t) : ~x<x := StrictOrder_Irreflexive x.Notation compare_le_iff := compare_ngt_iff (only parsing).Notation compare_ge_iff := compare_nlt_iff (only parsing).(** For compatibility reasons *)
  Definition eq_dec := eq_dec.

(* Specifications: *)
Lemma lt_dec : forall x y : t, {lt x y} + {~ lt x y}.