X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=ocaml%2Fnum.mli;fp=ocaml%2Fnum.mli;h=2f92884e92efddb0d9c51296950d7dc0261bf9eb;hb=e4aa4a66dd0a4946607245a0f43eab803f2770c4;hp=0000000000000000000000000000000000000000;hpb=224041e8fb94c0e8a1d3616e6dd91ec6a21cf49b;p=fireball-separation.git diff --git a/ocaml/num.mli b/ocaml/num.mli new file mode 100644 index 0000000..2f92884 --- /dev/null +++ b/ocaml/num.mli @@ -0,0 +1,43 @@ +type 'nf i_var_ = [ `I of int * 'nf Listx.listx | `Var of int ] +type 'nf i_n_var_ = [ `N of int | 'nf i_var_ ] +type 'nf i_num_var_ = + [ `I of int * 'nf Listx.listx + | `Match of 'nf i_num_var_ * int * (int * 'nf) list ref * 'nf list + | `N of int + | `Var of int ] +type 'nf nf_ = + [ `I of int * 'nf Listx.listx + | `Lam of bool * 'nf nf_ + | `Match of 'nf i_num_var_ * int * (int * 'nf) list ref * 'nf list + | `N of int + | `Var of int ] +type nf = nf nf_ +type i_var = nf i_var_ +type i_n_var = nf i_n_var_ +type i_num_var = nf i_num_var_ +val hd_of_i_var : i_var -> int +val hd_of : + [< `I of 'a * 'b | `Match of 'c | `N of 'd | `Var of 'a ] -> 'a option +(* put t under n lambdas, lifting t accordingtly *) +val make_lams : nf -> int -> nf +val lift : int -> nf -> nf +val free_vars : nf -> int list +module ToScott : + sig + val t_of_i_num_var : nf i_num_var_ -> Pure.Pure.t + val t_of_nf : nf -> Pure.Pure.t + end +val print : ?l:string list -> nf -> string +val string_of_nf : [ string +val cast_to_i_var : [< nf > `I `Var] -> i_var +val cast_to_i_n_var : [< nf > `I `N `Var] -> i_n_var +val cast_to_i_num_var : [< nf > `I `N `Match `Var] -> i_num_var +val mk_app : nf -> nf -> nf +val mk_appl : nf -> nf list -> nf +val mk_appx : nf -> nf Listx.listx -> nf +val mk_match : nf i_num_var_ -> int -> (int * nf) list ref -> nf list -> nf +val subst : bool -> int -> nf -> nf -> nf +val parse' : string list -> nf list * string list +val eta_compare : nf -> nf -> int +val eta_eq : [< nf ] -> [< nf ] -> bool +val eta_subterm : [< nf ] -> [< nf ] -> bool