Overall exception handler in order to insulate our users from low-level bugs.
authorpaulson
Tue, 09 Sep 2008 16:17:08 +0200
changeset 28175 6ab2cab48247
parent 28174 626f0a79a4b9
child 28176 01b21886e7f0
Overall exception handler in order to insulate our users from low-level bugs.
src/HOL/Tools/metis_tools.ML
--- a/src/HOL/Tools/metis_tools.ML	Tue Sep 09 16:16:20 2008 +0200
+++ b/src/HOL/Tools/metis_tools.ML	Tue Sep 09 16:17:08 2008 +0200
@@ -590,7 +590,7 @@
     in
         case refute thms of
             Metis.Resolution.Contradiction mth =>
-              let val _ = Output.debug (fn () => "METIS RECONSTRUCTION START: " ^
+             (let val _ = Output.debug (fn () => "METIS RECONSTRUCTION START: " ^
                             Metis.Thm.toString mth)
                   val ctxt' = fold Variable.declare_constraints (map prop_of cls) ctxt
                                (*add constraints arising from converting goal to clause form*)
@@ -605,8 +605,9 @@
                   else warning ("Unused theorems: " ^ commas (map #1 unused));
                   case result of
                       (_,ith)::_ => (Output.debug (fn () => "success: " ^ Display.string_of_thm ith); ith)
-                    | _ => error "METIS: no result"
+                    | _ => error "Metis: no result"
               end
+              handle e => error "Metis: Exception raised during proof reconstruction")
           | Metis.Resolution.Satisfiable _ => error "Metis: No first-order proof with the lemmas supplied"
     end;