(* Ugly tacty to resolve sign condition for N *)
Require Export NGroundTac.
Open Scope N_scope.
intros n m p H1 H2; apply Nlt_lt; repeat rewrite N2Nat.inj_mul.
apply mult_lt_compat_l; apply lt_Nlt; repeat rewrite N2Nat.id; auto.
Qed.
intros n m p H1; apply Nle_le; repeat rewrite N2Nat.inj_mul.
apply Mult.mult_le_compat_l; apply le_Nle; repeat rewrite N2Nat.id; auto.
Qed.
intros n m p H1; apply Nge_ge; repeat rewrite N2Nat.inj_mul.
apply mult_ge_compat_l; apply ge_Nge; repeat rewrite N2Nat.id; auto.
Qed.
intros n m p H1 H2; apply Ngt_gt; repeat rewrite N2Nat.inj_mul.
apply mult_gt_compat_l; apply gt_Ngt; repeat rewrite N2Nat.id; auto.
Qed.

Theorem Nmult_lt_compat_rev_l1: forall n m p, p * n < p * m -> 0 < p.