X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fground%2Farith%2Fnat_plus.ma;h=f7d79ccdf3914095f44acde0d5689a4c48d6082c;hb=21de0d35017656c5a55528390b54b0b2ae395b44;hp=ffb181cc4908dea0a5048498cb6c2a11a453f56a;hpb=df7a2aa19e98dc28e7f22129275a175cead49e2d;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/ground/arith/nat_plus.ma b/matita/matita/contribs/lambdadelta/ground/arith/nat_plus.ma index ffb181cc4..f7d79ccdf 100644 --- a/matita/matita/contribs/lambdadelta/ground/arith/nat_plus.ma +++ b/matita/matita/contribs/lambdadelta/ground/arith/nat_plus.ma @@ -12,57 +12,74 @@ (* *) (**************************************************************************) -include "ground/arith/nat_iter_succ.ma". +include "ground/arith/nat_succ_iter.ma". -(* NON-NEGATIVE INTEGERS ****************************************************) +(* ADDITION FOR NON-NEGATIVE INTEGERS ***************************************) (*** plus *) definition nplus: nat → nat → nat ≝ λm,n. nsucc^n m. interpretation - "plus (positive integers" + "plus (positive integers)" 'plus m n = (nplus m n). -(* Basic rewrites ***********************************************************) +(* Basic constructions ******************************************************) (*** plus_n_O *) lemma nplus_zero_dx (m): m = m + 𝟎. // qed. +(*** plus_SO_dx *) lemma nplus_one_dx (n): ↑n = n + 𝟏. // qed. -(* Semigroup properties *****************************************************) - (*** plus_n_Sm *) lemma nplus_succ_dx (m) (n): ↑(m+n) = m + ↑n. #m #n @(niter_succ … nsucc) qed. +(* Constructions with niter *************************************************) + +(*** iter_plus *) +lemma niter_plus (A) (f) (a) (n1) (n2): + f^n1 (f^n2 a) = f^{A}(n1+n2) a. +#A #f #a #n1 #n2 @(nat_ind_succ … n2) -n2 // +#n2 #IH