]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/tactics/autoTactic.ml
Minor change.
[helm.git] / helm / software / components / tactics / autoTactic.ml
index 050d5c64333d223a7dbe3a2702495256867233e9..e8d034a3298a9630fa0c8b1efe693579a1045ed2 100644 (file)
@@ -286,7 +286,7 @@ let auto_tac_old ?(depth=default_depth) ?(width=default_width) ~(dbd:HMysql.dbd)
         debug_print (lazy "AUTO_TAC HA FINITO");
         let _,_,p,_ = proof in
         debug_print (lazy (CicPp.ppterm p));
-        Printf.printf "tempo: %.9f\n" (t2 -. t1);
+        debug_print (lazy (Printf.sprintf "tempo: %.9f\n" (t2 -. t1)));
         (proof,[])
     | _ -> assert false
   in
@@ -317,75 +317,22 @@ let int params name default =
         raise (ProofEngineTypes.Fail (lazy (name ^ " must be an integer")))
 ;;  
 
-let auto_tac ~params ~(dbd:HMysql.dbd) (proof, goal) =
+let auto_tac ~params ~(dbd:HMysql.dbd) ~universe (proof, goal) =
   (* argument parsing *)
-  let int = int params 
-  and string = string params 
-  and bool = bool params in
-  let newauto = bool "new" false in
+  let int = int params in
+  let bool = bool params in
+  let oldauto = bool "old" false in
+  let use_only_paramod = bool "paramodulation" false in
+  let oldauto = if use_only_paramod then false else oldauto in
   let depth = int "depth" ((AutoTypes.default_flags()).AutoTypes.maxdepth) in
   let width = int "width" ((AutoTypes.default_flags()).AutoTypes.maxwidth) in
-  let timeout = int "timeout" 0 in
-  let use_paramod = bool "use_paramod" true in
-  let use_only_paramod = bool "paramodulation" false in
-  (* hacks to debug paramod *)
-  let superposition = bool "superposition" false in
-  let target = string "target" "" in
-  let table = string "table" "" in
-  let subterms_only = bool "subterms_only" false in
-  let demod_table = string "demod_table" "" in
-  let newauto = if use_only_paramod then true else newauto in
-  match superposition with
-  | true -> 
-      (* this is the ugly hack to debug paramod *)
-      Saturation.superposition_tac 
-        ~target ~table ~subterms_only ~demod_table (proof,goal)
-  | false -> 
-      if not newauto then 
-        auto_tac_old ~depth ~width ~dbd () (proof,goal)
-      else
-      (* this is the real auto *)
-      let _, metasenv, _, _ = proof in
-      let _, context, goalty = CicUtil.lookup_meta goal metasenv in
-      let cache = 
-        let cache = 
-          AutoCache.cache_add_context context metasenv AutoCache.cache_empty 
-        in
-        if use_only_paramod then (* only paramod *)
-          cache
-        else
-          AutoCache.cache_add_library dbd proof [goal] cache
-      in 
-      let oldmetasenv = metasenv in
-      let flags = {
-        AutoTypes.maxdepth = 
-          if use_only_paramod then 2 else depth;
-        AutoTypes.maxwidth = width;
-        AutoTypes.timeout = 
-          if timeout = 0 then float_of_int timeout 
-          else Unix.gettimeofday() +. (float_of_int timeout); 
-        AutoTypes.use_paramod = use_paramod;
-        AutoTypes.use_only_paramod = use_only_paramod;
-        AutoTypes.dont_cache_failures = false
-      }
-      in
-      match Auto.auto dbd cache context metasenv [goal] flags with
-      | None,cache -> 
-          raise (ProofEngineTypes.Fail (lazy "Auto gave up"))
-      | Some (subst,metasenv),cache -> 
-          let proof,metasenv = 
-            ProofEngineHelpers.subst_meta_and_metasenv_in_proof
-              proof goal (CicMetaSubst.apply_subst subst) metasenv
-          in
-          let opened = 
-            ProofEngineHelpers.compare_metasenvs ~oldmetasenv
-              ~newmetasenv:metasenv
-          in
-          proof,opened
-;;
+   if oldauto then 
+    auto_tac_old ~depth ~width ~dbd () (proof,goal)
+   else
+    ProofEngineTypes.apply_tactic (Auto.auto_tac ~dbd ~params ~universe) (proof,goal)
 
-let auto_tac ~params ~dbd =
-      ProofEngineTypes.mk_tactic (auto_tac ~params ~dbd)
+let auto_tac ~params ~dbd ~universe=
+      ProofEngineTypes.mk_tactic (auto_tac ~params ~dbd ~universe)
 ;;
 
 let pp_proofterm = Equality.pp_proofterm;;