X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matitaB%2Fmatita%2Fcontribs%2Fassembly%2Ffreescale%2Ffreescale_ocaml%2Fmatita_nat_nat.ml;fp=matitaB%2Fmatita%2Fcontribs%2Fassembly%2Ffreescale%2Ffreescale_ocaml%2Fmatita_nat_nat.ml;h=dfefaeb2dcfc2344f4e0733554c7ef6f8b213bbd;hb=cacbe3c6493ddce76c4c13379ade271d8dd172e8;hp=0000000000000000000000000000000000000000;hpb=f04a064bb34aabaf91dc0c48e3b08b37ecd7b0a2;p=helm.git diff --git a/matitaB/matita/contribs/assembly/freescale/freescale_ocaml/matita_nat_nat.ml b/matitaB/matita/contribs/assembly/freescale/freescale_ocaml/matita_nat_nat.ml new file mode 100644 index 000000000..dfefaeb2d --- /dev/null +++ b/matitaB/matita/contribs/assembly/freescale/freescale_ocaml/matita_nat_nat.ml @@ -0,0 +1,31 @@ +type nat = +O + | S of nat +;; + +let nat_rec = +(function p -> (function f -> let rec aux = +(function n -> +(match n with + O -> p + | S(n1) -> (f n1 (aux n1))) +) in aux)) +;; + +let nat_rect = +(function p -> (function f -> let rec aux = +(function n -> +(match n with + O -> p + | S(n1) -> (f n1 (aux n1))) +) in aux)) +;; + +let pred = +(function n -> +(match n with + O -> O + | S(p) -> p) +) +;; +