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=da1de97f5574a6b0d0741850097451eace80609c;hpb=5e72e41f4f86814e56d4b00959ccc56c71042a4c;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 da1de97f5..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,11 +17,39 @@ include "ground/arith/nat_le.ma". (* ORDER FOR NON-NEGATIVE INTEGERS ******************************************) +(* Inversions 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-. + +(*** 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. +#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 +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-. - -(* Destructions 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/ -qed-. +qed.