X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fground%2Farith%2Fnat_le_pred.ma;h=1666a554894cf8986dd8d3519dca338c176b06c4;hb=41a54a797af98d2867d4bf979d424283fb44a1fc;hp=75cd4bf7e676a5030b79111112c3cc43501af595;hpb=ccf5878f2a2ec7f952f140e162391708a740517b;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/ground/arith/nat_le_pred.ma b/matita/matita/contribs/lambdadelta/ground/arith/nat_le_pred.ma index 75cd4bf7e..1666a5548 100644 --- a/matita/matita/contribs/lambdadelta/ground/arith/nat_le_pred.ma +++ b/matita/matita/contribs/lambdadelta/ground/arith/nat_le_pred.ma @@ -17,13 +17,31 @@ include "ground/arith/nat_le.ma". (* ORDER FOR NON-NEGATIVE INTEGERS ******************************************) -(* Destructions with npred **************************************************) +(* Inversions with npred ****************************************************) lemma nle_inv_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_succ_bi/ qed-. +(*** 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-. + +lemma nle_inv_succ_dx (m) (n): + m ≤ ↑n → ∨∨ 𝟎 = m | ∧∧ ↓m ≤ n & m = ↑↓m. +#m #n @(nat_ind_succ … m) -m +[ /2 width=1 by or_introl/ +| #m #_ #H0 + /4 width=1 by nle_inv_succ_bi, or_intror, conj/ +] +qed-. + (* Constructions with npred *************************************************) lemma nle_succ_pred_dx_refl (m): m ≤ ↑↓m. @@ -31,7 +49,7 @@ lemma nle_succ_pred_dx_refl (m): m ≤ ↑↓m. (*** le_pred_n *) lemma nle_pred_sn_refl (m): ↓m ≤ m. -#m elim m -m // +#m @(nat_ind_succ … m) -m // qed. (*** monotonic_pred *) @@ -41,6 +59,6 @@ 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-. +qed.