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 square_add_le : forall a b, 0<=a -> 0<=b ->
(a+b)*(a+b) <= 2*(a*a + b*b).