src/HOL/Tools/Nitpick/kodkod_sat.ML
changeset 50489 0b7288aee751
parent 50488 1b3eb579e08b
child 54608 48dadf69c44d
equal deleted inserted replaced
50488:1b3eb579e08b 50489:0b7288aee751
   104 val configured_sat_solvers = map fst o dynamic_list
   104 val configured_sat_solvers = map fst o dynamic_list
   105 val smart_sat_solver_name = fst o hd o dynamic_list
   105 val smart_sat_solver_name = fst o hd o dynamic_list
   106 
   106 
   107 fun sat_solver_spec name =
   107 fun sat_solver_spec name =
   108   let
   108   let
   109     val dyn_list = dynamic_list false
   109     val dyns = dynamic_list false
   110     fun enum_solvers solvers =
   110     fun enum_solvers solvers =
   111       commas (distinct (op =) (map (quote o fst) solvers))
   111       commas (distinct (op =) (map (quote o fst) solvers))
   112   in
   112   in
   113     (name, the (AList.lookup (op =) dyn_list name) ())
   113     (name, the (AList.lookup (op =) dyns name) ())
   114     handle Option.Option =>
   114     handle Option.Option =>
   115            error (if AList.defined (op =) static_list name then
   115            error (if AList.defined (op =) static_list name then
   116                     "The SAT solver " ^ quote name ^ " is not configured. The \
   116                     "The SAT solver " ^ quote name ^ " is not configured. The \
   117                     \following solvers are configured:\n" ^
   117                     \following solvers are configured:\n" ^
   118                     enum_solvers dyn_list ^ "."
   118                     enum_solvers dyns ^ "."
   119                   else
   119                   else
   120                     "Unknown SAT solver " ^ quote name ^ ". The following \
   120                     "Unknown SAT solver " ^ quote name ^ ". The following \
   121                     \solvers are supported:\n" ^ enum_solvers static_list ^ ".")
   121                     \solvers are supported:\n" ^ enum_solvers static_list ^ ".")
   122   end
   122   end
   123 
   123