src/HOL/Tools/Sledgehammer/sledgehammer_prover.ML
changeset 75034 890b70f96fe4
parent 75031 ae4dc5ac983f
child 75036 212e9ec706cf
equal deleted inserted replaced
75033:b55d84e41d61 75034:890b70f96fe4
   158 fun maybe_filter_out_induction_rules induction_rules : fact list -> fact list =
   158 fun maybe_filter_out_induction_rules induction_rules : fact list -> fact list =
   159     induction_rules = Exclude ?
   159     induction_rules = Exclude ?
   160       filter_out (fn ((_, (_, ATP_Problem_Generate.Induction)), _) => true | _ => false)
   160       filter_out (fn ((_, (_, ATP_Problem_Generate.Induction)), _) => true | _ => false)
   161 
   161 
   162 fun slice_timeout slices timeout =
   162 fun slice_timeout slices timeout =
   163   Time.toReal timeout * Real.fromInt (Multithreading.max_threads ()) / Real.fromInt slices
   163   let
   164   |> seconds
   164     val max_threads = Multithreading.max_threads ()
       
   165     val batches = (slices + max_threads - 1) div max_threads
       
   166   in
       
   167     seconds (Time.toReal timeout / Real.fromInt batches)
       
   168   end
   165 
   169 
   166 type prover_problem =
   170 type prover_problem =
   167   {comment : string,
   171   {comment : string,
   168    state : Proof.state,
   172    state : Proof.state,
   169    goal : thm,
   173    goal : thm,
   186 
   190 
   187 fun overlord_file_location_of_prover prover = (getenv "ISABELLE_HOME_USER", "prob_" ^ prover)
   191 fun overlord_file_location_of_prover prover = (getenv "ISABELLE_HOME_USER", "prob_" ^ prover)
   188 
   192 
   189 fun proof_banner mode prover_name =
   193 fun proof_banner mode prover_name =
   190   (case mode of
   194   (case mode of
   191     Auto_Try => "Auto Sledgehammer (" ^ prover_name ^ ") found a proof"
   195     Auto_Try => "Auto Sledgehammer (" ^ prover_name ^ ") found a proof: "
   192   | Try => "Sledgehammer (" ^ prover_name ^ ") found a proof"
   196   | Try => "Sledgehammer (" ^ prover_name ^ ") found a proof: "
   193   | _ => "Try this")
   197   | _ => "")
   194 
   198 
   195 fun bunches_of_proof_methods ctxt try0 smt_proofs needs_full_types desperate_lam_trans =
   199 fun bunches_of_proof_methods ctxt try0 smt_proofs needs_full_types desperate_lam_trans =
   196   let
   200   let
   197     val try0_methodss =
   201     val try0_methodss =
   198       if try0 then
   202       if try0 then