]> matita.cs.unibo.it Git - helm.git/commitdiff
if paramodulation fails, go on with the normal auto...
authorAlberto Griggio <griggio@fbk.eu>
Thu, 21 Jul 2005 20:34:55 +0000 (20:34 +0000)
committerAlberto Griggio <griggio@fbk.eu>
Thu, 21 Jul 2005 20:34:55 +0000 (20:34 +0000)
helm/ocaml/tactics/autoTactic.ml

index d46aa6949c9f074526ca0ab312f96e6f8f90db22..72609b11842ac4f89e715eabdeba7ff714e6b19b 100644 (file)
@@ -310,18 +310,7 @@ let term_is_equality = ref
 
 let auto_tac ?(depth=default_depth) ?(width=default_width) ~(dbd:Mysql.dbd) () =
   let auto_tac dbd (proof, goal) =
-    let paramodulation_ok =
-      let _, metasenv, _, _ = proof in
-      let _, _, meta_goal = CicUtil.lookup_meta goal metasenv in
-      !term_is_equality meta_goal
-    in
-    if paramodulation_ok then (
-      debug_print "USO PARAMODULATION...";
-      try
-        !paramodulation_tactic dbd (proof, goal)
-      with e ->
-        raise (ProofEngineTypes.Fail "paramodulation failure")
-    ) else
+    let normal_auto () = 
       let universe = MetadataQuery.signature_of_goal ~dbd (proof, goal) in
       Hashtbl.clear inspected_goals;
       debug_print "Entro in Auto";
@@ -340,6 +329,20 @@ let auto_tac ?(depth=default_depth) ?(width=default_width) ~(dbd:Mysql.dbd) () =
           debug_print (Printf.sprintf "tempo: %.9f\n" (t2 -. t1));
          (proof,[])
       | _ -> assert false
+    in
+    let paramodulation_ok =
+      let _, metasenv, _, _ = proof in
+      let _, _, meta_goal = CicUtil.lookup_meta goal metasenv in
+      !term_is_equality meta_goal
+    in
+    if paramodulation_ok then (
+      debug_print "USO PARAMODULATION...";
+      try
+        !paramodulation_tactic dbd (proof, goal)
+      with e ->
+        normal_auto ()
+    ) else
+      normal_auto () 
   in
   ProofEngineTypes.mk_tactic (auto_tac dbd)
 ;;