]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/ground_2/ynat/ynat_minus.ma
- main proposition on lsx finally proved!
[helm.git] / matita / matita / contribs / lambdadelta / ground_2 / ynat / ynat_minus.ma
index a8ede263701086ba07f28995fdda6ad7178af59b..81b9cb01555a38646f10a6882cffa97504d95e55 100644 (file)
@@ -38,6 +38,9 @@ qed.
 lemma yminus_O1: ∀x:ynat. 0 - x = 0.
 * // qed.
 
+lemma yminus_refl: ∀x:ynat. x - x = 0.
+* // qed.
+
 lemma yminus_minus_comm: ∀y,z,x. x - y - z = x - z - y.
 * #y [ * #z [ * // ] ] >yminus_O1 //
 qed.
@@ -48,6 +51,14 @@ lemma yminus_SO2: ∀m. m - 1 = ⫰m.
 * //
 qed.
 
+lemma yminus_pred: ∀n,m. 0 < m → 0 < n → ⫰m - ⫰n = m - n.
+* // #n *
+[ #m #Hm #Hn >yminus_inj >yminus_inj
+  /4 width=1 by ylt_inv_inj, minus_pred_pred, eq_f/
+| >yminus_Y_inj //
+]
+qed-.
+
 (* Properties on successor **************************************************)
 
 lemma yminus_succ: ∀n,m. ⫯m - ⫯n = m - n.
@@ -55,7 +66,7 @@ lemma yminus_succ: ∀n,m. ⫯m - ⫯n = m - n.
 #m >yminus_inj //
 qed.
 
-lemma yminus_succ1_inj: ∀n:nat. ∀m:ynat. n ≤ m →  ⫯m - n = ⫯(m - n).
+lemma yminus_succ1_inj: ∀n:nat. ∀m:ynat. n ≤ m → ⫯m - n = ⫯(m - n).
 #n *
 [ #m #Hmn >yminus_inj >yminus_inj
   /4 width=1 by yle_inv_inj, plus_minus, eq_f/
@@ -63,6 +74,10 @@ lemma yminus_succ1_inj: ∀n:nat. ∀m:ynat. n ≤ m →  ⫯m - n = ⫯(m - n).
 ]
 qed-.
 
+lemma yminus_succ2: ∀y,x. x - ⫯y = ⫰(x-y).
+* //
+qed.
+
 (* Properties on order ******************************************************)
 
 lemma yle_minus_sn: ∀n,m. m - n ≤ m.