src/HOL/Tools/Sledgehammer/sledgehammer_provers.ML
changeset 53517 1165e8960f59
parent 53500 53b9326196fe
child 53551 7b779c075de9
equal deleted inserted replaced
53516:925591242376 53517:1165e8960f59
   250   | is_unit_equality _ = false
   250   | is_unit_equality _ = false
   251 
   251 
   252 fun is_appropriate_prop_of_prover ctxt name =
   252 fun is_appropriate_prop_of_prover ctxt name =
   253   if is_unit_equational_atp ctxt name then is_unit_equality else K true
   253   if is_unit_equational_atp ctxt name then is_unit_equality else K true
   254 
   254 
       
   255 val atp_irrelevant_const_tab =
       
   256   Symtab.make (map (rpair ()) atp_irrelevant_consts)
       
   257 
   255 fun is_built_in_const_of_prover ctxt name =
   258 fun is_built_in_const_of_prover ctxt name =
   256   if is_smt_prover ctxt name then
   259   if is_smt_prover ctxt name then
   257     let val ctxt = ctxt |> select_smt_solver name in
   260     let val ctxt = ctxt |> select_smt_solver name in
   258       fn x => fn ts =>
   261       fn x => fn ts =>
   259          if SMT_Builtin.is_builtin_num_ext ctxt (list_comb (Const x, ts)) then
   262          if SMT_Builtin.is_builtin_num_ext ctxt (list_comb (Const x, ts)) then
   262            (true, ts)
   265            (true, ts)
   263          else
   266          else
   264            (false, ts)
   267            (false, ts)
   265     end
   268     end
   266   else
   269   else
   267     fn (s, _) => fn ts => (member (op =) atp_irrelevant_consts s, ts)
   270     fn (s, _) => fn ts => (Symtab.defined atp_irrelevant_const_tab s, ts)
   268 
   271 
   269 (* FUDGE *)
   272 (* FUDGE *)
   270 val atp_relevance_fudge =
   273 val atp_relevance_fudge =
   271   {local_const_multiplier = 1.5,
   274   {local_const_multiplier = 1.5,
   272    worse_irrel_freq = 100.0,
   275    worse_irrel_freq = 100.0,