X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2Flibrary%2FZ%2Ftimes.ma;h=979cc87aa37f8ddbebe67e2273cc42a48a894f76;hb=2afec2cc82077163425701cc02ffb719a6345fb6;hp=e5e1cdb452fa38ce33a8ba73f95b6ca4a5d5f27d;hpb=55b82bd235d82ff7f0a40d980effe1efde1f5073;p=helm.git diff --git a/helm/software/matita/library/Z/times.ma b/helm/software/matita/library/Z/times.ma index e5e1cdb45..979cc87aa 100644 --- a/helm/software/matita/library/Z/times.ma +++ b/helm/software/matita/library/Z/times.ma @@ -12,8 +12,6 @@ (* *) (**************************************************************************) -set "baseuri" "cic:/matita/Z/times". - include "nat/lt_arith.ma". include "Z/plus.ma". @@ -42,6 +40,8 @@ simplify.reflexivity. simplify.reflexivity. qed. +definition Zone \def pos O. + theorem Ztimes_neg_Zopp: \forall n:nat.\forall x:Z. neg n * x = - (pos n * x). intros.elim x. @@ -49,6 +49,7 @@ simplify.reflexivity. simplify.reflexivity. simplify.reflexivity. qed. + theorem symmetric_Ztimes : symmetric Z Ztimes. change with (\forall x,y:Z. x*y = y*x). intros.elim x.rewrite > Ztimes_z_OZ.reflexivity. @@ -67,8 +68,23 @@ qed. variant sym_Ztimes : \forall x,y:Z. x*y = y*x \def symmetric_Ztimes. +theorem Ztimes_Zone_l: \forall z:Z. Ztimes Zone z = z. +intro.unfold Zone.simplify. +elim z;simplify + [reflexivity + |rewrite < plus_n_O.reflexivity + |rewrite < plus_n_O.reflexivity + ] +qed. + +theorem Ztimes_Zone_r: \forall z:Z. Ztimes z Zone = z. +intro. +rewrite < sym_Ztimes. +apply Ztimes_Zone_l. +qed. + theorem associative_Ztimes: associative Z Ztimes. -change with (\forall x,y,z:Z. (x*y)*z = x*(y*z)). +unfold associative. intros.elim x. simplify.reflexivity. elim y. @@ -233,3 +249,13 @@ qed. variant distr_Ztimes_Zplus: \forall x,y,z. x * (y + z) = x*y + x*z \def distributive_Ztimes_Zplus. + +theorem eq_plus_Zplus: \forall n,m:nat. Z_of_nat (n+m) = +Z_of_nat n + Z_of_nat m. +intro.cases n;intro + [reflexivity + |cases m + [simplify.rewrite < plus_n_O.reflexivity + |simplify.reflexivity. + ]] +qed.