; var_names : string list (* names of the original free variables *)
};;
; var_names : string list (* names of the original free variables *)
};;
+let label_of_problem {label} = label;;
+
let all_terms p =
(match p.div with None -> [] | Some t -> [(t :> i_n_var)])
@ p.conv
let all_terms p =
(match p.div with None -> [] | Some t -> [(t :> i_n_var)])
@ p.conv
let string_of_problem label ({freshno; div; conv; ps; deltas} as p) =
Console.print_hline ();
let string_of_problem label ({freshno; div; conv; ps; deltas} as p) =
Console.print_hline ();
- prerr_string ("\n(* DISPLAY PROBLEM (" ^ label ^ ") - ");
+ prerr_string ("\n(* DISPLAY PROBLEM (" ^ p.label ^ " - " ^ label ^ ") ");
let nl = "\n" in
let deltas = String.concat (nl^" ") (List.map (fun r -> String.concat " <> " (List.map (fun (i,_) -> string_of_int i) !r)) deltas) in
let l = Array.to_list (Array.init (freshno + 1) string_of_var) in
let nl = "\n" in
let deltas = String.concat (nl^" ") (List.map (fun r -> String.concat " <> " (List.map (fun (i,_) -> string_of_int i) !r)) deltas) in
let l = Array.to_list (Array.init (freshno + 1) string_of_var) in
+val label_of_problem : problem -> string\r
+\r
type result = [\r
| `Separable of (int * Num.nf) list\r
| `Unseparable of string\r
type result = [\r
| `Separable of (int * Num.nf) list\r
| `Unseparable of string\r