X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fground%2Farith%2Fnat_pred.ma;h=3367fe66ad4b7c992a5f2798912216f6f3e53992;hb=0bcf2dc1a27e38cb6cd3d44eb838d652926841e0;hp=3d665506579765b2246ce3985a9458ed9154f49e;hpb=68e028d053806177e218ee1a5f8778d3011bef83;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/ground/arith/nat_pred.ma b/matita/matita/contribs/lambdadelta/ground/arith/nat_pred.ma index 3d6655065..3367fe66a 100644 --- a/matita/matita/contribs/lambdadelta/ground/arith/nat_pred.ma +++ b/matita/matita/contribs/lambdadelta/ground/arith/nat_pred.ma @@ -13,23 +13,53 @@ (**************************************************************************) include "ground/notation/functions/downarrow_1.ma". -include "ground/arith/pnat_dis.ma". +include "ground/arith/pnat_split.ma". include "ground/arith/nat.ma". (* PREDECESSOR FOR NON-NEGATIVE INTEGERS ************************************) +definition pnpred (p): nat ≝ + psplit … (𝟎) ninj p. + +interpretation + "positive predecessor (non-negative integers)" + 'DownArrow p = (pnpred p). + (*** pred *) definition npred (m): nat ≝ match m with [ nzero ⇒ 𝟎 -| ninj p ⇒ pdis … (𝟎) ninj p +| ninj p ⇒ ↓p ]. interpretation "predecessor (non-negative integers)" 'DownArrow m = (npred m). -(* Basic rewrites ***********************************************************) +(* Basic constructions ******************************************************) (*** pred_O *) lemma npred_zero: 𝟎 = ↓𝟎. // qed. + +lemma npred_inj (p): ↓p = ↓(ninj p). +// qed. + +lemma npred_unit: 𝟎 = ↓𝟏. +// qed. + +lemma npred_psucc (p): ninj p = ↓↑p. +// qed. + +(* Basic inversions *********************************************************) + +lemma npred_pnat_inv_refl (p): ninj p = ↓p → ⊥. +* +[