]> matita.cs.unibo.it Git - fireball-separation.git/blob - ocaml/measure.ml
Finished proposal?
[fireball-separation.git] / ocaml / measure.ml
1 open Num;;\r
2 open Lambda4;;\r
3 \r
4 (* type var = int;;\r
5 \r
6 type state = {\r
7  terms : nf list;\r
8  arities : (var * int) list;\r
9  freshno : int;\r
10  apps : (var * (var list)) list;\r
11 }\r
12 \r
13 let replace =\r
14  function\r
15  | `Var _ | `Lam _ as t -> t\r
16  | `I(v,tms) ->\r
17    try\r
18     let apps = List.assoc v p.apps in\r
19     let hd, tl = ... in\r
20     let s, freshvar = mk_freshvar s\r
21     []\r
22     aux (mk_apps v (Listx.map ))\r
23    with\r
24    | Not_found -> `I(v, Listx.map (replace s) tms)\r
25  | _ -> assert false\r
26 ;;\r
27 \r
28 \r
29 let iteration : state -> state  = fun s ->\r
30  let terms = Util.concat_map (replace s) s.terms in\r
31  s;;\r
32 *)\r