]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/library/Z/times.ma
Bertrand's conjecture (weak), some work in progress
[helm.git] / helm / software / matita / library / Z / times.ma
index e5e1cdb452fa38ce33a8ba73f95b6ca4a5d5f27d..90a71b520ff3fde852bb2026812af9beea519cbe 100644 (file)
@@ -42,6 +42,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 +51,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 +70,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.