let report_error s = prerr_endline (string_of_int (Unix.getpid())^": "^s);;
module Main(P : Paramod.Paramod with type t = leaf) = struct
-
+
let run bag g_passives passives pp_unit_clause name =
- match
+ match
P.paramod
~max_steps:max_int bag ~g_passives:[g_passives] ~passives
with
let module Pp = Pp.Pp(B) in
let module O = Orderings.NRKBO(B) in (* just for processing the clauses *)
let module P = Paramod.Paramod(O) in
+ let module Stats = Stats.Stats(O) in
let bag = Terms.empty_bag, 0 in
let bag, g_passives = P.mk_goal bag goal in
let bag, passives =
* C and then B
* TODO: rebuild clauses, since the ordering has to
* change after the stats are computed *)
+ let symb_list = Stats.parse_symbols passives g_passives in
+ prerr_endline "Hypotheses statistics :";
+ List.iter (fun (t,occ,ar,g_occ) -> prerr_endline
+ (Printf.sprintf "%s %d %d %d %s"
+ (B.pp t) ar occ g_occ
+ (String.concat ","
+ (List.map B.pp (Stats.dependencies t passives))));
+ if List.exists
+ (fun (u,occ2,ar2,g_occ2) -> not (B.eq t u) && occ = occ2
+ && ar = ar2 && g_occ = g_occ2) symb_list
+ then prerr_endline ((B.pp t) ^ " clashes")
+ ) symb_list;
let module C = C in
let module B = MakeBlob(C) in
match order with