src/HOL/Tools/Sledgehammer/sledgehammer_prover.ML
changeset 58061 3d060f43accb
parent 57783 2bf99b3f62e1
child 58085 ee65e9cfe284
equal deleted inserted replaced
58060:835b5443b978 58061:3d060f43accb
   175        Metis_Method (SOME really_full_type_enc, SOME desperate_lam_trans)]
   175        Metis_Method (SOME really_full_type_enc, SOME desperate_lam_trans)]
   176     else
   176     else
   177       [Metis_Method (SOME full_typesN, NONE),
   177       [Metis_Method (SOME full_typesN, NONE),
   178        Metis_Method (SOME no_typesN, SOME desperate_lam_trans),
   178        Metis_Method (SOME no_typesN, SOME desperate_lam_trans),
   179        Metis_Method (SOME really_full_type_enc, SOME desperate_lam_trans)])] @
   179        Metis_Method (SOME really_full_type_enc, SOME desperate_lam_trans)])] @
   180   (if smt_proofs then [[SMT2_Method]] else [])
   180   (if smt_proofs then [[SMT_Method]] else [])
   181 
   181 
   182 fun is_fact_chained ((_, (sc, _)), _) = sc = Chained
   182 fun is_fact_chained ((_, (sc, _)), _) = sc = Chained
   183 
   183 
   184 fun filter_used_facts keep_chained used =
   184 fun filter_used_facts keep_chained used =
   185   filter ((member (op =) used o fst) orf (if keep_chained then is_fact_chained else K false))
   185   filter ((member (op =) used o fst) orf (if keep_chained then is_fact_chained else K false))
   194 
   194 
   195 fun supported_provers ctxt =
   195 fun supported_provers ctxt =
   196   let
   196   let
   197     val thy = Proof_Context.theory_of ctxt
   197     val thy = Proof_Context.theory_of ctxt
   198     val (remote_provers, local_provers) =
   198     val (remote_provers, local_provers) =
   199       sort_strings (supported_atps thy) @
   199       sort_strings (supported_atps thy) @ sort_strings (SMT_Config.available_solvers_of ctxt)
   200       sort_strings (SMT2_Config.available_solvers_of ctxt)
       
   201       |> List.partition (String.isPrefix remote_prefix)
   200       |> List.partition (String.isPrefix remote_prefix)
   202   in
   201   in
   203     Output.urgent_message ("Supported provers: " ^ commas (local_provers @ remote_provers) ^ ".")
   202     Output.urgent_message ("Supported provers: " ^ commas (local_provers @ remote_provers) ^ ".")
   204   end
   203   end
   205 
   204