src/HOL/Tools/SMT2/smt2_solver.ML
changeset 57156 3546a67226ea
parent 56981 3ef45ce002b5
child 57157 87b4d54b1fbe
--- a/src/HOL/Tools/SMT2/smt2_solver.ML	Mon Jun 02 16:19:37 2014 +0200
+++ b/src/HOL/Tools/SMT2/smt2_solver.ML	Mon Jun 02 17:34:25 2014 +0200
@@ -17,8 +17,6 @@
     default_max_relevant: int,
     can_filter: bool,
     outcome: string -> string list -> outcome * string list,
-    cex_parser: (Proof.context -> SMT2_Translate.replay_data -> string list ->
-      term list * term list) option,
     replay: (Proof.context -> SMT2_Translate.replay_data -> string list ->
       ((int * (int * thm)) list * Z3_New_Proof.z3_step list) * thm) option}
 
@@ -144,8 +142,6 @@
   default_max_relevant: int,
   can_filter: bool,
   outcome: string -> string list -> outcome * string list,
-  cex_parser: (Proof.context -> SMT2_Translate.replay_data -> string list ->
-    term list * term list) option,
   replay: (Proof.context -> SMT2_Translate.replay_data -> string list ->
     ((int * (int * thm)) list * Z3_New_Proof.z3_step list) * thm) option}
 
@@ -180,7 +176,7 @@
 )
 
 local
-  fun finish outcome cex_parser replay ocl outer_ctxt
+  fun finish outcome replay ocl outer_ctxt
       (replay_data as {context = ctxt, ...} : SMT2_Translate.replay_data) output =
     (case outcome output of
       (Unsat, ls) =>
@@ -188,25 +184,22 @@
         then the replay outer_ctxt replay_data ls
         else (([], []), ocl ())
     | (result, ls) =>
-        let val (ts, us) = (case cex_parser of SOME f => f ctxt replay_data ls | _ => ([], []))
-        in
-          raise SMT2_Failure.SMT (SMT2_Failure.Counterexample {
-            is_real_cex = (result = Sat),
-            free_constraints = ts,
-            const_defs = us})
-        end)
+        raise SMT2_Failure.SMT (SMT2_Failure.Counterexample {
+          is_real_cex = (result = Sat),
+          free_constraints = [],
+          const_defs = []}))
 
   val cfalse = Thm.cterm_of @{theory} (@{const Trueprop} $ @{const False})
 in
 
 fun add_solver ({name, class, avail, command, options, default_max_relevant, can_filter,
-    outcome, cex_parser, replay} : solver_config) =
+    outcome, replay} : solver_config) =
   let
     fun solver ocl = {
       command = command,
       default_max_relevant = default_max_relevant,
       can_filter = can_filter,
-      finish = finish (outcome name) cex_parser replay ocl}
+      finish = finish (outcome name) replay ocl}
 
     val info = {name = name, class = class, avail = avail, options = options}
   in