exception ReferenceToCurrentProof;;
exception ReferenceToInductiveDefinition;;
+let ndebug = ref false;;
+let indent = ref "";;
+let times = ref [];;
+let pp s =
+ if !ndebug then
+ prerr_endline (Printf.sprintf "%-20s" !indent ^ " " ^ Lazy.force s)
+;;
+let inside c =
+ if !ndebug then
+ begin
+ let time1 = Unix.gettimeofday () in
+ indent := !indent ^ String.make 1 c;
+ times := time1 :: !times;
+ prerr_endline ("{{{" ^ !indent ^ " ")
+ end
+;;
+let outside ok =
+ if !ndebug then
+ begin
+ let time2 = Unix.gettimeofday () in
+ let time1 =
+ match !times with time1::tl -> times := tl; time1 | [] -> assert false in
+ prerr_endline ("}}} " ^ string_of_float (time2 -. time1));
+ if not ok then prerr_endline "exception raised!";
+ try
+ indent := String.sub !indent 0 (String.length !indent -1)
+ with
+ Invalid_argument _ -> indent := "??"; ()
+ end
+;;
+
let debug = false
let profile = false
let debug_print s = if debug then prerr_endline (Lazy.force s)
let are_convertible whd ?(subst=[]) ?(metasenv=[]) =
let heuristic = ref true in
let rec aux test_equality_only context t1 t2 ugraph =
+ (*D*)inside 'B'; try let rc =
+ pp (lazy (CicPp.ppterm t1 ^ " vs " ^ CicPp.ppterm t2));
let rec aux2 test_equality_only t1 t2 ugraph =
(* this trivial euristic cuts down the total time of about five times ;-) *)
aux2 test_equality_only t1' t2' ugraph
*)
end
+ (*D*)in outside true; rc with exc -> outside false; raise exc
in
aux false (*c t1 t2 ugraph *)
;;
in
addDebugItem "dump aliases" (fun _ ->
let status = script#grafite_status in
- LexiconEngine.dump_aliases HLog.debug "" status);
+ LexiconEngine.dump_aliases prerr_endline "" status);
(* FG: DEBUGGING
addDebugItem "dump interpretations" (fun _ ->
let status = script#lexicon_status in
(fun mi () -> NCicRefiner.debug := mi#active; NCicUnification.debug :=
mi#active; MultiPassDisambiguator.debug := mi#active);
addDebugCheckbox "reduction logging"
- (fun mi () -> NCicReduction.debug := mi#active);
+ (fun mi () -> NCicReduction.debug := mi#active; CicReduction.ndebug := mi#active);
addDebugSeparator ();
addDebugItem "Expand virtuals"
(fun _ -> (MatitaScript.current ())#expandAllVirtuals);