X-Git-Url: http://matita.cs.unibo.it/gitweb/?p=helm.git;a=blobdiff_plain;f=matita%2Fcontribs%2Fassembly%2Ffreescale%2Ffreescale_ocaml%2Fmatita_nat_compare.ml;fp=matita%2Fcontribs%2Fassembly%2Ffreescale%2Ffreescale_ocaml%2Fmatita_nat_compare.ml;h=e37ab1d688eff8e32f914c1b349063945be0c346;hp=0000000000000000000000000000000000000000;hb=f61af501fb4608cc4fb062a0864c774e677f0d76;hpb=58ae1809c352e71e7b5530dc41e2bfc834e1aef1 diff --git a/matita/contribs/assembly/freescale/freescale_ocaml/matita_nat_compare.ml b/matita/contribs/assembly/freescale/freescale_ocaml/matita_nat_compare.ml new file mode 100644 index 000000000..e37ab1d68 --- /dev/null +++ b/matita/contribs/assembly/freescale/freescale_ocaml/matita_nat_compare.ml @@ -0,0 +1,51 @@ +let eqb = +let rec eqb = +(function n -> (function m -> +(match n with + Matita_nat_nat.O -> +(match m with + Matita_nat_nat.O -> Matita_datatypes_bool.True + | Matita_nat_nat.S(q) -> Matita_datatypes_bool.False) + + | Matita_nat_nat.S(p) -> +(match m with + Matita_nat_nat.O -> Matita_datatypes_bool.False + | Matita_nat_nat.S(q) -> (eqb p q)) +) +)) in eqb +;; + +let leb = +let rec leb = +(function n -> (function m -> +(match n with + Matita_nat_nat.O -> Matita_datatypes_bool.True + | Matita_nat_nat.S(p) -> +(match m with + Matita_nat_nat.O -> Matita_datatypes_bool.False + | Matita_nat_nat.S(q) -> (leb p q)) +) +)) in leb +;; + +let ltb = +(function n -> (function m -> (Matita_datatypes_bool.andb (leb n m) (Matita_datatypes_bool.notb (eqb n m))))) +;; + +let nat_compare = +let rec nat_compare = +(function n -> (function m -> +(match n with + Matita_nat_nat.O -> +(match m with + Matita_nat_nat.O -> Matita_datatypes_compare.EQ + | Matita_nat_nat.S(q) -> Matita_datatypes_compare.LT) + + | Matita_nat_nat.S(p) -> +(match m with + Matita_nat_nat.O -> Matita_datatypes_compare.GT + | Matita_nat_nat.S(q) -> (nat_compare p q)) +) +)) in nat_compare +;; +