made theory merge deterministic wrt. the selected solver
authorboehmes
Mon, 09 Nov 2009 08:57:07 +0100
changeset 33528 b34511bbc121
parent 33527 d4e5f6a40779
child 33529 9fd3de94e6a2
made theory merge deterministic wrt. the selected solver
src/HOL/SMT/Tools/smt_solver.ML
--- a/src/HOL/SMT/Tools/smt_solver.ML	Sun Nov 08 21:01:08 2009 +0100
+++ b/src/HOL/SMT/Tools/smt_solver.ML	Mon Nov 09 08:57:07 2009 +0100
@@ -222,21 +222,20 @@
 
 (* selected solver *)
 
-structure SelectedSolver = Generic_Data
+structure Selected_Solver = Generic_Data
 (
-  type T = serial * string
-  val empty = (serial (), no_solver)
+  type T = string
+  val empty = no_solver
   val extend = I
-  fun merge (sl1 as (s1, _), sl2 as (s2, _)) =
-    if s1 > s2 then sl1 else sl2   (* FIXME depends on accidental load order !?! *)
+  fun merge (_, s) = s
 )
 
-val solver_name_of = snd o SelectedSolver.get
+val solver_name_of = Selected_Solver.get
 
 fun select_solver name gen =
   if is_none (lookup_solver (Context.theory_of gen) name)
   then error ("SMT solver not registered: " ^ quote name)
-  else SelectedSolver.map (K (serial (), name)) gen
+  else Selected_Solver.map (K name) gen
 
 fun raw_solver_of gen =
   (case lookup_solver (Context.theory_of gen) (solver_name_of gen) of