X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2Fcontribs%2Fng_assembly%2Fcommon%2Fnat.ma;h=e84a76c902fa1aec41f3f64f39f54b19f280ea59;hb=HEAD;hp=fe976cba632dee64756f67256047eae4b9f080f7;hpb=0f13d14b63b012e0ea8ce0d0e71bf808fdd444eb;p=helm.git diff --git a/helm/software/matita/contribs/ng_assembly/common/nat.ma b/helm/software/matita/contribs/ng_assembly/common/nat.ma old mode 100755 new mode 100644 index fe976cba6..e84a76c90 --- a/helm/software/matita/contribs/ng_assembly/common/nat.ma +++ b/helm/software/matita/contribs/ng_assembly/common/nat.ma @@ -38,6 +38,12 @@ default "natural numbers" cic:/matita/common/nat/nat.ind. alias num (instance 0) = "natural number". *) +nlet rec nat_it (T:Type) (f:T → T) (arg:T) (n:nat) on n ≝ + match n with + [ O ⇒ arg + | S n' ⇒ nat_it T f (f arg) n' + ]. + ndefinition nat1 ≝ S O. ndefinition nat2 ≝ S nat1. ndefinition nat3 ≝ S nat2. @@ -207,13 +213,13 @@ interpretation "natural divide" 'divide x y = (div x y). ndefinition pred ≝ λn.match n with [ O ⇒ O | S n ⇒ n ]. -ndefinition nat128 ≝ nat64 * nat2. -ndefinition nat256 ≝ nat128 * nat2. -ndefinition nat512 ≝ nat256 * nat2. -ndefinition nat1024 ≝ nat512 * nat2. -ndefinition nat2048 ≝ nat1024 * nat2. -ndefinition nat4096 ≝ nat2048 * nat2. -ndefinition nat8192 ≝ nat4096 * nat2. -ndefinition nat16384 ≝ nat8192 * nat2. -ndefinition nat32768 ≝ nat16384 * nat2. -ndefinition nat65536 ≝ nat32768 * nat2. +ndefinition nat128 ≝ nat64 + nat64. +ndefinition nat256 ≝ nat128 + nat128. +ndefinition nat512 ≝ nat256 + nat256. +ndefinition nat1024 ≝ nat512 + nat512. +ndefinition nat2048 ≝ nat1024 + nat1024. +ndefinition nat4096 ≝ nat2048 + nat2048. +ndefinition nat8192 ≝ nat4096 + nat4096. +ndefinition nat16384 ≝ nat8192 + nat8192. +ndefinition nat32768 ≝ nat16384 + nat16384. +ndefinition nat65536 ≝ nat32768 + nat32768.