X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Flibrary%2FZ%2Fplus.ma;h=cd565124589d1e20dbac077a384e1aac6fa06125;hb=9e028235daa0abea353d06b4226d4c6698ede3d4;hp=976f6cfb3ce01d379244fc66ec964a99563917d3;hpb=7f2444c2670cadafddd8785b687ef312158376b0;p=helm.git diff --git a/matita/library/Z/plus.ma b/matita/library/Z/plus.ma index 976f6cfb3..cd5651245 100644 --- a/matita/library/Z/plus.ma +++ b/matita/library/Z/plus.ma @@ -261,6 +261,10 @@ definition Zopp : Z \to Z \def (*CSC: the URI must disappear: there is a bug now *) interpretation "integer unary minus" 'uminus x = (cic:/matita/Z/plus/Zopp.con x). +theorem eq_OZ_Zopp_OZ : OZ = (- OZ). +reflexivity. +qed. + theorem Zopp_Zplus: \forall x,y:Z. -(x+y) = -x + -y. intros. elim x.elim y. @@ -299,3 +303,27 @@ rewrite > nat_compare_n_n. simplify.apply refl_eq. qed. +theorem injective_Zplus_l: \forall x:Z.injective Z Z (\lambda y.y+x). +intro.simplify.intros (z y). +rewrite < Zplus_z_OZ. +rewrite < (Zplus_z_OZ y). +rewrite < (Zplus_Zopp x). +rewrite < (Zplus_Zopp x). +rewrite < assoc_Zplus. +rewrite < assoc_Zplus. +apply eq_f2 + [assumption|reflexivity] +qed. + +theorem injective_Zplus_r: \forall x:Z.injective Z Z (\lambda y.x+y). +intro.simplify.intros (z y). +apply (injective_Zplus_l x). +rewrite < sym_Zplus. +rewrite > H. +apply sym_Zplus. +qed. + +(* minus *) +definition Zminus : Z \to Z \to Z \def \lambda x,y:Z. x + (-y). + +interpretation "integer minus" 'minus x y = (cic:/matita/Z/plus/Zminus.con x y).