(** Compatibility of multiplication by a positive wrt to being positive *)
Notation Zmult_le_0_compat := Z.mul_nonneg_nonneg (only parsing).
Notation Zmult_lt_0_compat := Z.mul_pos_pos (only parsing).
Notation Zmult_lt_O_compat := Z.mul_pos_pos (only parsing).

(* Specifications: *)
Lemma Zmult_gt_0_compat n m : n > 0 -> m > 0 -> n * m > 0.
(* To remove someday ... *)
Lemma Zmult_gt_0_le_0_compat n m : n > 0 -> 0 <= m -> 0 <= m * n.
(** Simplification of multiplication by a positive wrt to being positive *)
Lemma Zmult_le_0_reg_r n m : n > 0 -> 0 <= m * n -> 0 <= m.
Lemma Zmult_lt_0_reg_r n m : 0 < n -> 0 < m * n -> 0 < m.
Lemma Zmult_gt_0_lt_0_reg_r n m : n > 0 -> 0 < m * n -> 0 < m.
Lemma Zmult_gt_0_reg_l n m : n > 0 -> n * m > 0 -> m > 0.
(** ** Square *)
(** Simplification of square wrt order *)
Lemma Zlt_square_simpl n m : 0 <= n -> m * m < n * n -> m < n.
Lemma Zgt_square_simpl n m : n >= 0 -> n * n > m * m -> n > m.
Notation Zle_plus_swap := Z.le_add_le_sub_r (only parsing).