src/HOL/Mirabelle/Tools/mirabelle_sledgehammer.ML
changeset 33016 b73b74fe23c3
parent 32991 b6ba8adc14c2
child 33247 ed1681284f62
equal deleted inserted replaced
33011:ab599f7f2639 33016:b73b74fe23c3
   277 
   277 
   278 fun change_data id f = (Unsynchronized.change data (AList.map_entry (op =) id f); ())
   278 fun change_data id f = (Unsynchronized.change data (AList.map_entry (op =) id f); ())
   279 
   279 
   280 
   280 
   281 fun get_atp thy args =
   281 fun get_atp thy args =
   282   AList.lookup (op =) args proverK
   282   let
   283   |> the_default (hd (ATP_Manager.get_atps ()))  (* FIXME partial *)
   283     fun default_atp_name () = hd (ATP_Manager.get_atps ())
   284   |> (fn name => (name, the (ATP_Manager.get_prover thy name)))  (* FIXME partial *)
   284       handle Empty => error "No ATP available."
       
   285     fun get_prover name =
       
   286       (case ATP_Manager.get_prover thy name of
       
   287         SOME prover => (name, prover)
       
   288       | NONE => error ("Bad ATP: " ^ quote name))
       
   289   in
       
   290     (case AList.lookup (op =) args proverK of
       
   291       SOME name => get_prover name
       
   292     | NONE => get_prover (default_atp_name ()))
       
   293   end
   285 
   294 
   286 local
   295 local
   287 
   296 
   288 datatype sh_result =
   297 datatype sh_result =
   289   SH_OK of int * int * string list |
   298   SH_OK of int * int * string list |