X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fground%2Farith%2Fnat_plus.ma;h=a9894fc6285e7aaf7ec746ddfebacb208b91885e;hb=0bcf2dc1a27e38cb6cd3d44eb838d652926841e0;hp=75349d2da6281f130d0e2a0b3ea8930e379267f0;hpb=5e72e41f4f86814e56d4b00959ccc56c71042a4c;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 75349d2da..a9894fc62 100644 --- a/matita/matita/contribs/lambdadelta/ground/arith/nat_plus.ma +++ b/matita/matita/contribs/lambdadelta/ground/arith/nat_plus.ma @@ -18,55 +18,69 @@ include "ground/arith/nat_succ_iter.ma". (*** plus *) definition nplus: nat → nat → nat ≝ - λm,n. nsucc^n m. + λm,n. (nsucc^n) m. interpretation - "plus (positive integers" + "plus (non-negative integers)" 'plus m n = (nplus m n). -(* Basic rewrites ***********************************************************) +(* Basic constructions ******************************************************) (*** plus_n_O *) lemma nplus_zero_dx (m): m = m + 𝟎. // qed. -lemma nplus_one_dx (n): ↑n = n + 𝟏. +(*** plus_SO_dx *) +lemma nplus_unit_dx (n): ↑n = n + 𝟏. // qed. -(* Advanved rewrites (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) (n1) (n2): + f^n2 ∘ f^n1 ≐ f^{A}(n1+n2). +#A #f #n1 #n2 @(nat_ind_succ … n2) -n2 // +#n2 #IH nplus_assoc >nplus_assoc