X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=ocaml%2Fnum.mli;h=6de26456cb1aa8d2c990e2beeaea3d779b34bc5a;hb=52947a60467ebb10cec57ffc1725644ad605c671;hp=9cf81ccdd113e52d6162960d9edaff27de6c8648;hpb=eb8bb784b35d303a1c239f30008cba79f658f4b3;p=fireball-separation.git diff --git a/ocaml/num.mli b/ocaml/num.mli index 9cf81cc..6de2645 100644 --- a/ocaml/num.mli +++ b/ocaml/num.mli @@ -1,21 +1,16 @@ -type var = int * int -type 'nf i_var_ = [ `I of var * 'nf Listx.listx | `Var of var ] -type 'nf i_n_var_ = [ `N of int | 'nf i_var_ ] -type 'nf i_num_var_ = - [ `I of var * 'nf Listx.listx - | `Match of 'nf i_num_var_ * var * int * (int * 'nf) list ref * 'nf list - | `N of int - | `Var of var ] -type 'nf nf_ = - [ `I of var * 'nf Listx.listx - | `Lam of bool * 'nf nf_ - | `Match of 'nf i_num_var_ * var * int * (int * 'nf) list ref * 'nf list - | `N of int - | `Var of var ] -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_ +type var = int * (* arity of variable*) int;; +type 'nf_nob i_var_ = [ `I of var * 'nf_nob Listx.listx | `Var of var ] +type 'nf_nob i_n_var_ = [ `N of int | 'nf_nob i_var_ ] +type ('nf_nob,'nf) i_num_var_ = [ + | 'nf_nob i_n_var_ + | `Match of ('nf_nob,'nf) i_num_var_ * (* originating var *) var * (*lift*) int * (*branches*)(int * 'nf) list ref * (*args*)'nf_nob list +] +type 'nf nf_nob_ = [ `Lam of (* was_unpacked *) bool * 'nf | `Pacman | ('nf nf_nob_,'nf) i_num_var_ ] +type nf = [ nf nf_nob_ | `Bottom ] +type nf_nob = nf nf_nob_ +type i_var = nf_nob i_var_;; +type i_n_var = nf_nob i_n_var_;; +type i_num_var = (nf_nob,nf) i_num_var_;; val hd_of_i_var : i_var -> int val hd_of : i_n_var -> int option val arity_of_hd : i_n_var -> int @@ -26,8 +21,7 @@ val free_vars' : nf -> var list 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 + val scott_of_nf : nf -> Pure.Pure.t end val print : ?l:string list -> nf -> string val string_of_nf : [ string @@ -38,12 +32,11 @@ val set_arity : int -> nf -> nf 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_ -> var -> int -> (int * nf) list ref -> nf list -> nf +val mk_match : nf -> var -> int -> (int * nf) list ref -> nf list -> nf val subst : bool -> 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 val max_arity_tms : int -> [< nf] list -> int option -val compute_arities : int -> int -> nf list -> int list val minus1 : int -> int