Module Type NZMulOrderProp (Import NZ : NZOrdAxiomsSig').
Include NZAddOrderProp NZ.
(* There are still many variants of the theorem above. One can assume 0 < n or 0 < p or n <= m or p <= q. *)
(** Some alternative names: *)
Definition mul_eq_0 := eq_mul_0.
Definition mul_eq_0_l := eq_mul_0_l.
Definition mul_eq_0_r := eq_mul_0_r.
(* The converse theorems require nonnegativity (or nonpositivity) of the other variable *)
(** A few results about squares *)

Lemma crossmul_le_addsquare : forall a b, 0<=a -> 0<=b -> b*a+a*b <= a*a+b*b.