X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2Flibrary%2Fnat%2Forders_op.ma;h=bfb3668c7b49984a106327cc46171b08f4ac15a5;hb=cec61c8b027b15b98d308cee8900d9cf35a02d28;hp=32a58115dab3dececccbc1eb98fcf9ea431f1ad4;hpb=9c8bb7e7c2548d2f37e5387cdce45df2b8fc9b43;p=helm.git diff --git a/helm/matita/library/nat/orders_op.ma b/helm/matita/library/nat/orders_op.ma index 32a58115d..bfb3668c7 100644 --- a/helm/matita/library/nat/orders_op.ma +++ b/helm/matita/library/nat/orders_op.ma @@ -20,40 +20,39 @@ include "nat/orders.ma". (* plus *) theorem monotonic_le_plus_r: -\forall n:nat.monotonic nat le (\lambda m.plus n m). +\forall n:nat.monotonic nat le (\lambda m.n+m). simplify.intros.elim n. simplify.assumption. simplify.apply le_S_S.assumption. qed. -theorem le_plus_r: \forall p,n,m:nat. le n m \to le (plus p n) (plus p m) +theorem le_plus_r: \forall p,n,m:nat. n \leq m \to p+n \leq p+m \def monotonic_le_plus_r. theorem monotonic_le_plus_l: -\forall m:nat.monotonic nat le (\lambda n.plus n m). +\forall m:nat.monotonic nat le (\lambda n.n+m). simplify.intros. rewrite < sym_plus.rewrite < sym_plus m. apply le_plus_r.assumption. qed. -theorem le_plus_l: \forall p,n,m:nat. le n m \to le (plus n p) (plus m p) +theorem le_plus_l: \forall p,n,m:nat. n \leq m \to n+p \leq m+p \def monotonic_le_plus_l. -theorem le_plus: \forall n1,n2,m1,m2:nat. le n1 n2 \to le m1 m2 -\to le (plus n1 m1) (plus n2 m2). +theorem le_plus: \forall n1,n2,m1,m2:nat. n1 \leq n2 \to m1 \leq m2 +\to n1+m1 \leq n2+m2. intros. -apply trans_le ? (plus n2 m1). +apply trans_le ? (n2+m1). apply le_plus_l.assumption. apply le_plus_r.assumption. qed. -theorem le_plus_n :\forall n,m:nat. le m (plus n m). -intros.change with le (plus O m) (plus n m). +theorem le_plus_n :\forall n,m:nat. m \leq n+m. +intros.change with O+m \leq n+m. apply le_plus_l.apply le_O_n. qed. -theorem eq_plus_to_le: \forall n,m,p:nat.eq nat n (plus m p) -\to le m n. +theorem eq_plus_to_le: \forall n,m,p:nat.n=m+p \to m \leq n. intros.rewrite > H. rewrite < sym_plus. apply le_plus_n. @@ -61,7 +60,7 @@ qed. (* times *) theorem monotonic_le_times_r: -\forall n:nat.monotonic nat le (\lambda m.times n m). +\forall n:nat.monotonic nat le (\lambda m.n*m). simplify.intros.elim n. simplify.apply le_O_n. simplify.apply le_plus. @@ -69,28 +68,28 @@ assumption. assumption. qed. -theorem le_times_r: \forall p,n,m:nat. le n m \to le (times p n) (times p m) +theorem le_times_r: \forall p,n,m:nat. n \leq m \to p*n \leq p*m \def monotonic_le_times_r. theorem monotonic_le_times_l: -\forall m:nat.monotonic nat le (\lambda n.times n m). +\forall m:nat.monotonic nat le (\lambda n.n*m). simplify.intros. rewrite < sym_times.rewrite < sym_times m. apply le_times_r.assumption. qed. -theorem le_times_l: \forall p,n,m:nat. le n m \to le (times n p) (times m p) +theorem le_times_l: \forall p,n,m:nat. n \leq m \to n*p \leq m*p \def monotonic_le_times_l. -theorem le_times: \forall n1,n2,m1,m2:nat. le n1 n2 \to le m1 m2 -\to le (times n1 m1) (times n2 m2). +theorem le_times: \forall n1,n2,m1,m2:nat. n1 \leq n2 \to m1 \leq m2 +\to n1*m1 \leq n2*m2. intros. -apply trans_le ? (times n2 m1). +apply trans_le ? (n2*m1). apply le_times_l.assumption. apply le_times_r.assumption. qed. -theorem le_times_n: \forall n,m:nat.le (S O) n \to le m (times n m). +theorem le_times_n: \forall n,m:nat.S O \leq n \to m \leq n*m. intros.elim H.simplify. elim (plus_n_O ?).apply le_n. simplify.rewrite < sym_plus.apply le_plus_n.