X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=matita%2Fmatita%2Fcontribs%2Fassembly%2Ffreescale%2Ffreescale_ocaml%2Fmatita_nat_compare.ml;fp=matita%2Fmatita%2Fcontribs%2Fassembly%2Ffreescale%2Ffreescale_ocaml%2Fmatita_nat_compare.ml;h=e37ab1d688eff8e32f914c1b349063945be0c346;hb=2c01ff6094173915e7023076ea48b5804dca7778;hp=0000000000000000000000000000000000000000;hpb=a050e3f80d7ea084ce0184279af98e8251c7d2a6;p=helm.git diff --git a/matita/matita/contribs/assembly/freescale/freescale_ocaml/matita_nat_compare.ml b/matita/matita/contribs/assembly/freescale/freescale_ocaml/matita_nat_compare.ml new file mode 100644 index 000000000..e37ab1d68 --- /dev/null +++ b/matita/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 +;; +