]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/ng_paramodulation/paramod.ml
Major speed-up: meta-chains are now expanded during restriction to avoid
[helm.git] / helm / software / components / ng_paramodulation / paramod.ml
index ac73df2d0b90fb1fd0fc9110536c13bee8885922..45a4e0e0954725e44b0e200d19e2b3e3e6e9f58e 100644 (file)
@@ -185,6 +185,7 @@ module Paramod (B : Orderings.Blob) = struct
      * new'= demod A'' new    *
      * P' = P + new'          *)
     debug "Forward infer step...";
+    debug (lazy("Number of actives : " ^ (string_of_int (List.length (fst actives)))));
     let bag, maxvar, actives, new_clauses = 
       Sup.infer_right bag maxvar current actives 
     in
@@ -209,6 +210,7 @@ module Paramod (B : Orderings.Blob) = struct
           (bag,maxvar,[]) g_actives 
       in
       let bag = Terms.replace_in_bag (current,false,iterno) bag in
+       (* prerr_endline (Pp.pp_bag bag); *)
     bag, maxvar, actives,
     add_passive_clauses passives new_clauses, g_actives,
     add_passive_goals g_passives new_goals
@@ -228,8 +230,8 @@ module Paramod (B : Orderings.Blob) = struct
         if noinfer then
           begin
             debug 
-              ("Last chance: all is indexed " ^ string_of_float
-                (Unix.gettimeofday()));
+              (lazy("Last chance: all is indexed " ^ string_of_float
+                (Unix.gettimeofday())));
             let maxgoals = 100 in
             ignore(List.fold_left 
               (fun (acc,i) x -> 
@@ -244,7 +246,7 @@ module Paramod (B : Orderings.Blob) = struct
           end
         else if false then (* activates last chance strategy *)
           begin
-           debug("Last chance: "^string_of_float (Unix.gettimeofday()));
+           debug (lazy("Last chance: "^string_of_float (Unix.gettimeofday())));
            given_clause ~useage ~noinfer:true bag maxvar iterno weight_picks max_steps 
              (Some (Unix.gettimeofday () +. 20.))
              actives passives g_actives g_passives;
@@ -269,7 +271,7 @@ module Paramod (B : Orderings.Blob) = struct
        else
          let bag = Terms.replace_in_bag (current,false,iterno) bag in
         if backward then
-          let _ = debug ("Selected goal : " ^ Pp.pp_unit_clause current) in
+          let _ = debug (lazy("Selected goal : " ^ Pp.pp_unit_clause current)) in
          match 
            if noinfer then 
              if weight > monster then None else Some (bag,current)
@@ -286,7 +288,7 @@ module Paramod (B : Orderings.Blob) = struct
                  backward_infer_step bag maxvar actives passives
                    g_actives g_passives g_current iterno
         else
-          let _ = debug ("Selected fact : " ^ Pp.pp_unit_clause current) in
+          let _ = debug (lazy("Selected fact : " ^ Pp.pp_unit_clause current)) in
          (*let is_orphan = Sup.orphan_murder bag (fst actives) current in*)
           match 
             if noinfer then 
@@ -332,16 +334,16 @@ module Paramod (B : Orderings.Blob) = struct
       aux_select bag passives g_passives
     in
       debug
-        (Printf.sprintf "Number of active goals : %d"
-           (List.length g_actives));
+        (lazy(Printf.sprintf "Number of active goals : %d"
+           (List.length g_actives)));
       debug
-        (Printf.sprintf "Number of passive goals : %d"
-           (passive_set_cardinal g_passives));
+        (lazy(Printf.sprintf "Number of passive goals : %d"
+           (passive_set_cardinal g_passives)));
       debug
-        (Printf.sprintf "Number of actives : %d" (List.length (fst actives)));
+        (lazy(Printf.sprintf "Number of actives : %d" (List.length (fst actives))));
       debug
-        (Printf.sprintf "Number of passives : %d"
-           (passive_set_cardinal passives));
+        (lazy(Printf.sprintf "Number of passives : %d"
+           (passive_set_cardinal passives)));
       given_clause ~useage ~noinfer
         bag maxvar iterno weight_picks max_steps timeout 
         actives passives g_actives g_passives