]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/ground/arith/nat_le_pred.ma
arithmetics for λδ
[helm.git] / matita / matita / contribs / lambdadelta / ground / arith / nat_le_pred.ma
index da1de97f5574a6b0d0741850097451eace80609c..b5347a806e4ba2f83c52c93ac6721864aab255c0 100644 (file)
@@ -17,11 +17,21 @@ include "ground/arith/nat_le.ma".
 
 (* ORDER FOR NON-NEGATIVE INTEGERS ******************************************)
 
+(* Destructions with npred **************************************************)
+
+lemma nle_inv_pred_sn (m) (n): ↓m ≤ n → m ≤ ↑n.
+#m #n @(nat_ind_succ … m) -m
+/2 width=1 by nle_succ_bi/
+qed-.
+
 (* Constructions with npred *************************************************)
 
+lemma nle_succ_pred_dx_refl (m): m ≤ ↑↓m.
+#m @nle_inv_pred_sn // qed.
+
 (*** le_pred_n *)
 lemma nle_pred_sn_refl (m): ↓m ≤ m.
-#m elim m -m //
+#m @(nat_ind_succ … m) -m //
 qed.
 
 (*** monotonic_pred *)
@@ -31,13 +41,17 @@ lemma nle_pred_bi (m) (n): m ≤ n → ↓m ≤ ↓n.
 qed.
 
 lemma nle_pred_sn (m) (n): m ≤ ↑n → ↓m ≤ n.
-#m #n elim m -m //
+#m #n @(nat_ind_succ … m) -m //
 /2 width=1 by nle_pred_bi/
 qed-.
 
-(* Destructions with npred **************************************************)
+(* Inversions with npred ****************************************************)
 
-lemma nle_inv_pred_sn (m) (n): ↓m ≤ n → m ≤ ↑n.
-#m #n elim m -m
-/2 width=1 by nle_succ_bi/
+(*** le_inv_S1 *)
+lemma nle_inv_succ_sn (m) (n):
+      ↑m ≤ n → ∧∧ m ≤ ↓n & n = ↑↓n.
+#m #n * -n
+[ /2 width=3 by nle_refl, conj/
+| #n #Hn /3 width=1 by nle_des_succ_sn, conj/
+]
 qed-.