Definition lt_eq_lt_dec : forall a b : A, {lt a b} + {a = b} + {lt b a}.Definition A := (O1.A + O2.A)%type.Definition le (a b : A) : Prop :=
   match a with
   | inl a' => match b with
               | inl b' => O1.le a' b'
               | _ => True
               end
   | inr a' => match b with
               | inr b' => O2.le a' b'
               | _ => False
               end
   end.Definition lt (a b : A) : Prop :=
    match a with
    | inl a' => match b with
                | inl b' => O1.lt a' b'
                | _ => True
                end
    | inr a' => match b with
                | inr b' => O2.lt a' b'
                | _ => False
                end
    end.Module M1 := More_Dec_Orders O1.Module M2 := More_Dec_Orders O2.

(* Specifications: *)
Theorem ordered : order A le.
Theorem lt_le_weak : forall a b : A, lt a b -> le a b.
Theorem lt_diff : forall a b : A, lt a b -> a <> b.
Theorem le_lt_or_eq : forall a b : A, le a b -> lt a b \/ a = b.