(***********************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) (* (le (mult m n) (mult m p)). Proof. NewInduction m. Intros. Simpl. Apply le_n. Intros. Simpl. Apply le_plus_plus. Assumption. Apply IHm. Assumption. Qed. Hints Resolve mult_le : arith. Lemma mult_lt : (m,n,p:nat) (lt n p) -> (lt (mult (S m) n) (mult (S m) p)). Proof. NewInduction m. Intros. Simpl. Rewrite <- plus_n_O. Rewrite <- plus_n_O. Assumption. Intros. Exact (lt_plus_plus ? ? ? ? H (IHm ? ? H)). Qed. Hints Resolve mult_lt : arith. Lemma mult_le_conv_1 : (m,n,p:nat) (le (mult (S m) n) (mult (S m) p)) -> (le n p). Proof. Intros. Elim (le_or_lt n p). Trivial. Intro H0. Cut (lt (mult (S m) n) (mult (S m) n)). Intro. Elim (lt_n_n ? H1). Apply le_lt_trans with m:=(mult (S m) p). Assumption. Apply mult_lt. Assumption. Qed.