X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Fbinaries%2Fmatitaprover%2Fmatitaprover.ml;h=1c837f18dc464830f06ad65caee4a0568d1c2118;hb=2bcf927f58bac034b8758173cdbd16cb7475de36;hp=c029cfa228317690d81e14b0978ee88191cc381d;hpb=d807d5e4fa129504669f775f4f832a1a7eb920a0;p=helm.git diff --git a/helm/software/components/binaries/matitaprover/matitaprover.ml b/helm/software/components/binaries/matitaprover/matitaprover.ml index c029cfa22..1c837f18d 100644 --- a/helm/software/components/binaries/matitaprover/matitaprover.ml +++ b/helm/software/components/binaries/matitaprover/matitaprover.ml @@ -78,7 +78,7 @@ module MakeBlob(C:LeafComparer) : Terms.Blob end ;; -let success_msg bag l (pp : ?margin:int -> leaf Terms.unit_clause -> string) = +let success_msg bag l (pp : ?margin:int -> leaf Terms.unit_clause -> string) ord = print_endline ("% SZS status Unsatisfiable for " ^ Filename.basename !problem_file); print_endline ("% SZS output start CNFRefutation for " ^ @@ -89,10 +89,15 @@ let success_msg bag l (pp : ?margin:int -> leaf Terms.unit_clause -> string) = print_endline (pp ~margin:max_int cl)) l; print_endline ("% SZS output end CNFRefutation for " ^ - Filename.basename !problem_file) + Filename.basename !problem_file); + let prefix = string_of_int (Unix.getpid ()) in + let prerr_endline s = prerr_endline (prefix ^ ": " ^ s) in + let times = Unix.times () in + prerr_endline ("solved " ^ !problem_file ^ " in " ^ string_of_float + (times.Unix.tms_utime +. times.Unix.tms_stime) ^ " using " ^ ord); ;; -let start_msg passives g_passives (pp : leaf Terms.unit_clause -> string) = +let start_msg passives g_passives (pp : leaf Terms.unit_clause -> string) oname = let prefix = string_of_int (Unix.getpid ()) in let prerr_endline s = prerr_endline (prefix ^ ": " ^ s) in prerr_endline "Facts:"; @@ -100,16 +105,14 @@ let start_msg passives g_passives (pp : leaf Terms.unit_clause -> string) = prerr_endline "Goal:"; prerr_endline (" " ^ pp g_passives); prerr_endline "Order:"; - prerr_endline " ...fixme..."; - prerr_endline "Strategy:"; - prerr_endline " ...fixme..."; + prerr_endline (" " ^ oname); ;; let report_error s = prerr_endline (string_of_int (Unix.getpid())^": "^s);; -module Main(C:LeafComparer) = struct +module Main(C:Orderings.Blob with type t = leaf) = struct let main goal hypotheses = - let module B = MakeBlob(C) in + let module B = C in let module Pp = Pp.Pp(B) in let module P = Paramod.Paramod(B) in let bag = Terms.empty_bag, 0 in @@ -117,14 +120,14 @@ module Main(C:LeafComparer) = struct let bag, passives = HExtlib.list_mapi_acc (fun x _ b -> P.mk_passive b x) bag hypotheses in - start_msg passives g_passives Pp.pp_unit_clause; + start_msg passives g_passives Pp.pp_unit_clause C.name; match P.paramod ~max_steps:max_int bag ~g_passives:[g_passives] ~passives with | P.Error s -> report_error s; 3 | P.Unsatisfiable ((bag,_,l)::_) -> - success_msg bag l Pp.pp_unit_clause; 0 + success_msg bag l Pp.pp_unit_clause C.name; 0 | P.Unsatisfiable ([]) -> report_error "Unsatisfiable but no solution output"; 3 | P.GaveUp -> 2 @@ -175,7 +178,8 @@ let main () = Matitaprover is the first order automatic prover that equips the Matita interactive theorem prover (http://matita.cs.unibo.it). -Developed by A.Asperti, M.Denes and E.Tassi, released under GPL-2.1 +Developed by A.Asperti, M.Denes and E.Tassi, released under GPL version 2 +or at your option any later version. If --tptppath is given, instead of the problem file you can just give the problem name with the .p suffix (e.g. BOO001-1.p) @@ -194,14 +198,16 @@ usage: matitaprover [options] problemfile"; if pid = 0 then (exit (f ())) else pid) [ (fun () -> - let module M = Main(struct let cmp (a,_) (b,_) = compare a b end) in + let module M = Main(Orderings.NRKBO(MakeBlob(struct let cmp (a,_) (b,_) = compare a b end))) in + M.main goal hypotheses) + ; + (fun () -> + let module M = Main(Orderings.KBO(MakeBlob(struct let cmp (a,_) (b,_) = compare a b end))) in M.main goal hypotheses) ; -(* (fun () -> - let module M = Main(struct let cmp (a,_) (b,_) = compare b a end) in + let module M = Main(Orderings.LPO(MakeBlob(struct let cmp (a,_) (b,_) = compare a b end))) in M.main goal hypotheses) -*) ]; let rec aux () = if List.length !childs = 0 then