| L of t\r
;;\r
\r
-let measure_of_t =\r
- let rec aux acc = function\r
- | V _ -> acc, 0\r
- | A(b,t1,t2) ->\r
- let acc, m1 = aux acc t1 in\r
- let acc, m2 = aux acc t2 in\r
- (match b with\r
- | `Some b when !b && not (List.memq b acc) -> b::acc, 1 + m1 + m2\r
- | _ -> acc, m1 + m2)\r
- | L t -> aux acc t\r
- in snd ++ (aux [])\r
-;;\r
-\r
let index_of x =\r
let rec aux n =\r
function\r
(* does NOT lift the argument *)\r
let mk_lams = fold_nat (fun x _ -> L x) ;;\r
\r
+let measure_of_t =\r
+ let rec aux acc = function\r
+ | V _ -> acc, 0\r
+ | A(b,t1,t2) ->\r
+ let acc, m1 = aux acc t1 in\r
+ let acc, m2 = aux acc t2 in\r
+ (match b with\r
+ | `Some b when !b && not (List.memq b acc) -> b::acc, 1 + m1 + m2\r
+ | _ -> acc, m1 + m2)\r
+ | L t -> aux acc t\r
+ in snd ++ (aux [])\r
+;;\r
+\r
type problem = {\r
orig_freshno: int\r
; freshno : int\r