]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/tactics/autoTactic.ml
committed the generated version of configure, so that it gets exported upon svn-build...
[helm.git] / helm / software / components / tactics / autoTactic.ml
index 63dc8631dbc8b4b564fded81c72ea44fcffe204c..b4a3118199d517266147b7712a976a54ce841e08 100644 (file)
@@ -325,13 +325,18 @@ let auto_tac ~params ~(dbd:HMysql.dbd) =
   (* argument parsing *)
   let depth = int "depth" params in
   let width = int "width" params in
+  let timeout = string "timeout" params in
   let paramodulation = bool "paramodulation" params in
   let full = bool "full" params in
   let superposition = bool "superposition" params in
   let target = string "target" params in
   let table = string "table" params in
   let subterms_only = bool "subterms_only" params in
+  let caso_strano = bool "caso_strano" params in
   let demod_table = string "demod_table" params in
+  let timeout = 
+    try Some (float_of_string timeout) with Failure _ -> None
+  in
   (* the real tactic *)
   let auto_tac dbd (proof, goal) =
     let normal_auto () = 
@@ -363,7 +368,8 @@ let auto_tac ~params ~(dbd:HMysql.dbd) =
       debug_print (lazy "USO PARAMODULATION...");
 (*       try *)
       try
-        let rc = Saturation.saturate dbd ~depth ~width ~full (proof, goal) in
+        let rc = Saturation.saturate caso_strano dbd ~depth ~width ~full
+        ?timeout (proof, goal) in
         prerr_endline (Saturation.get_stats ());
         rc
       with exn ->
@@ -412,7 +418,7 @@ let new_metasenv_and_unify_and_t dbd proof goal newmeta' metasenv' context term'
         [g1;g2] ->
           let proof'',goals =
            ProofEngineTypes.apply_tactic
-           (auto_tac ~params:["paramodulation","on"] ~dbd) (proof'',g2)
+           (auto_tac ~params:["caso_strano","on";"paramodulation","on"] ~dbd) (proof'',g2)
           in
            let proof'',goals =
             ProofEngineTypes.apply_tactic
@@ -493,3 +499,5 @@ let applyS_tac ~dbd ~term =
     | CicUnification.UnificationFailure msg
     | CicTypeChecker.TypeCheckerFailure msg ->
         raise (ProofEngineTypes.Fail msg))
+
+let pp_proofterm = Equality.pp_proofterm;;