Module OrderTac := !MakeOrderTac TO IsTO.Ltac order := OrderTac.order.

(* Specifications: *)
Lemma le_eq x y z : ~lt x y -> eq y z -> ~lt x z.
Lemma eq_le x y z : eq x y -> ~lt y z -> ~lt x z.
Lemma neq_eq x y z : ~eq x y -> eq y z -> ~eq x z.
Lemma eq_neq x y z : eq x y -> ~eq y z -> ~eq x z.
Lemma le_lt_trans x y z : ~lt y x -> lt y z -> lt x z.
Lemma lt_le_trans x y z : lt x y -> ~lt z y -> lt x z.
Lemma le_neq x y : ~lt x y -> ~eq x y -> lt y x.
Lemma le_trans x y z : ~lt y x -> ~lt z y -> ~lt z x.
Lemma le_antisym x y : ~lt y x -> ~lt x y -> eq x y.
Lemma neq_sym x y : ~eq x y -> ~eq y x.
Lemma lt_le x y : lt x y -> ~lt y x.
Lemma gt_not_eq x y : lt y x -> ~ eq x y.
Lemma eq_not_lt x y : eq x y -> ~ lt x y.
Lemma eq_not_gt x y : eq x y -> ~ lt y x.
Lemma lt_not_gt x y : lt x y -> ~ lt y x.
Lemma elim_compare_eq : forall x y : t, eq x y -> exists H : eq x y, compare x y = EQ H.
Lemma elim_compare_lt : forall x y : t, lt x y -> exists H : lt x y, compare x y = LT H.
Lemma elim_compare_gt : forall x y : t, lt y x -> exists H : lt y x, compare x y = GT H.