Parameter le_lt_eq_dec : forall a b : A, le a b -> {lt a b} + {a = b}.
End MORE_DEC_ORDERS.
(* A functor for getting some useful derived properties on decidable orders *)
Module More_Dec_Orders (D: DEC_ORDER) : MORE_DEC_ORDERS with Definition
A := D.A with Definition le := D.le with Definition lt := D.lt.
Definition A := D.A.
Definition le := D.le.
Definition lt := D.lt.

(* Specifications: *)
Theorem le_trans : transitive A le.
Theorem le_refl : reflexive A le.
Theorem le_antisym : antisymmetric A le.
Theorem lt_intro : forall a b : A, le a b -> a <> b -> lt a b.
Theorem lt_irreflexive : forall a : A, ~ lt a a.
Theorem lt_not_le : forall a b : A, lt a b -> ~ le b a.
Theorem le_not_lt : forall a b : A, le a b -> ~ lt b a.
Theorem lt_trans : transitive A lt.
Definition le_lt_dec : forall a b : A, {le a b} + {lt b a}.