]> matita.cs.unibo.it Git - fireball-separation.git/blobdiff - ocaml/parser.ml
Simplified arity_of, precompute_edible_data, critical_showsteppers
[fireball-separation.git] / ocaml / parser.ml
index 1e69acb82328cd6d363dccdd728e86e1fb908a34..79650955de2f5c5f7fa73606dee2e68a9613f73d 100644 (file)
@@ -118,13 +118,11 @@ let parse x =
   | _, _, _ -> raise (ParsingError "???")\r
 ;;\r
 \r
-let var_zero = "Z";; (* the name for the zero *)\r
-\r
 let parse_many strs =\r
   let f (x, y) z = match read_smt y (explode z) with\r
   | Some[tm], [], vars -> (tm :: x, vars)\r
   | _, _, _ -> raise (ParsingError "???")\r
-  in let aux = List.fold_left f ([], ([], [var_zero])) (* index zero is reserved *)\r
+  in let aux = List.fold_left f ([], ([], [])) (* index zero is reserved *)\r
   in let (tms, (_, free)) = aux strs\r
   in (List.rev tms, free)\r
 ;;\r
@@ -174,7 +172,7 @@ let problem_of_string s =
  (* Fix arity *)\r
  let open Num in\r
  let rec aux lev : nf -> nf = function\r
- | `I((n,_), args) -> `I((n,1 + Listx.length args), Listx.map (fun t -> aux lev t) args)\r
+ | `I((n,_), args) -> `I((n,(if lev = 0 then 0 else 1) + Listx.length args), Listx.map (aux lev) args)\r
  | `Var(n,_) -> fix lev n\r
  | `Lam(_,t) -> `Lam (true, aux (lev+1) t)\r
  | `Match _ | `N _ -> assert false in\r