(* Monotone (i.e. strictly increasing) functions for Ord Types *)
Section Mono.
Variables (A B :ordType).
Definition strictly_increasing f x y := @ord A x y -> @ord B (f x) (f y).
Structure mono : Type := Mono
{fun_of: A -> B; _: forall x y, strictly_increasing fun_of x y}.
End Mono.
Arguments strictly_increasing {A B} f x y.
Arguments Mono {A B _} _.
Section NatOrd.

Lemma total_lex : forall x y, [|| lex x y, x == y | lex y x].
Definition prod_ordMixin := OrdMixin irr_lex trans_lex total_lex.