X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=ocaml%2Fnum.mli;fp=ocaml%2Fnum.mli;h=c1ad8f0a010e4af8b91b03c479d347ba538e8d25;hb=dc3d76330323f0eba348377062934481c763d450;hp=0eaa5b0a985ab7cbeabc40a63e1428ac5f9d8d01;hpb=b609e8cfc37360748de4fcbc4e80bba556fadc87;p=fireball-separation.git diff --git a/ocaml/num.mli b/ocaml/num.mli index 0eaa5b0..c1ad8f0 100644 --- a/ocaml/num.mli +++ b/ocaml/num.mli @@ -1,23 +1,23 @@ -type 'nf i_var_ = [ `I of int * 'nf Listx.listx | `Var of int ] +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 int * 'nf Listx.listx - | `Match of 'nf i_num_var_ * int * int * (int * 'nf) list ref * 'nf list + [ `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 int ] + | `Var of var ] type 'nf nf_ = - [ `I of int * 'nf Listx.listx - | `Lam of bool * int * 'nf nf_ - | `Match of 'nf i_num_var_ * int * int * (int * 'nf) list ref * 'nf list + [ `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 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_ 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 +val hd_of : i_n_var -> int option (* put t under n lambdas, lifting t accordingtly *) val make_lams : nf -> int -> nf val lift : int -> nf -> nf @@ -35,7 +35,7 @@ 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 -> (int * nf) list ref -> nf list -> nf +val mk_match : nf i_num_var_ -> 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