diff options
-rwxr-xr-x | theories/Arith/Le.v | 7 | ||||
-rwxr-xr-x | theories/Arith/Mult.v | 15 |
2 files changed, 22 insertions, 0 deletions
diff --git a/theories/Arith/Le.v b/theories/Arith/Le.v index 3aec6ec3a..e12d2f2ba 100755 --- a/theories/Arith/Le.v +++ b/theories/Arith/Le.v @@ -60,6 +60,13 @@ Elim H ; Simpl ; Auto with arith. Qed. Hints Immediate le_S_n : arith v62. +Lemma le_pred : (n,m:nat)(le n m)->(le (pred n) (pred m)). +Proof. +Induction n. Simpl. Auto with arith. +Intros n0 Hn0. Induction m. Simpl. Intro H. Inversion H. +Intros n1 H H0. Simpl. Auto with arith. +Qed. + (** Negative properties *) Theorem le_Sn_O : (n:nat)~(le (S n) O). diff --git a/theories/Arith/Mult.v b/theories/Arith/Mult.v index 337acb00f..30095d2fa 100755 --- a/theories/Arith/Mult.v +++ b/theories/Arith/Mult.v @@ -89,6 +89,12 @@ Proof. Qed. Hints Resolve mult_le : arith. +Lemma le_mult_right : (m,n,p:nat)(le m n)->(le (mult m p) (mult n p)). +Intros m n p H. +Rewrite mult_sym. Rewrite (mult_sym n). +Auto with arith. +Qed. + 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. @@ -97,6 +103,15 @@ Qed. Hints Resolve mult_lt : arith. +Lemma lt_mult_right : + (m,n,p:nat) (lt m n) -> (lt (0) p) -> (lt (mult m p) (mult n p)). +Intros m n p H H0. +Induction p. +Elim (lt_n_n ? H0). +Rewrite mult_sym. +Replace (mult n (S p)) with (mult (S p) n); Auto with arith. +Qed. + 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. |