src/HOL/Tools/Sledgehammer/sledgehammer_prover.ML
changeset 75020 b087610592b4
parent 75017 30ccc472d486
child 75023 fdda7e754f45
equal deleted inserted replaced
75019:30a619de7973 75020:b087610592b4
    56      state : Proof.state,
    56      state : Proof.state,
    57      goal : thm,
    57      goal : thm,
    58      subgoal : int,
    58      subgoal : int,
    59      subgoal_count : int,
    59      subgoal_count : int,
    60      facts : string * fact list,
    60      facts : string * fact list,
    61      found_proof : unit -> unit}
    61      found_proof : string -> unit}
    62 
    62 
    63   type prover_result =
    63   type prover_result =
    64     {outcome : atp_failure option,
    64     {outcome : atp_failure option,
    65      used_facts : (string * stature) list,
    65      used_facts : (string * stature) list,
    66      used_from : fact list,
    66      used_from : fact list,
   184    state : Proof.state,
   184    state : Proof.state,
   185    goal : thm,
   185    goal : thm,
   186    subgoal : int,
   186    subgoal : int,
   187    subgoal_count : int,
   187    subgoal_count : int,
   188    facts : string * fact list,
   188    facts : string * fact list,
   189    found_proof : unit -> unit}
   189    found_proof : string -> unit}
   190 
   190 
   191 type prover_result =
   191 type prover_result =
   192   {outcome : atp_failure option,
   192   {outcome : atp_failure option,
   193    used_facts : (string * stature) list,
   193    used_facts : (string * stature) list,
   194    used_from : fact list,
   194    used_from : fact list,
   198 
   198 
   199 type prover = params -> prover_problem -> prover_result
   199 type prover = params -> prover_problem -> prover_result
   200 
   200 
   201 fun overlord_file_location_of_prover prover = (getenv "ISABELLE_HOME_USER", "prob_" ^ prover)
   201 fun overlord_file_location_of_prover prover = (getenv "ISABELLE_HOME_USER", "prob_" ^ prover)
   202 
   202 
   203 fun proof_banner mode name =
   203 fun proof_banner mode prover_name =
   204   (case mode of
   204   (case mode of
   205     Auto_Try => "Auto Sledgehammer (" ^ quote name ^ ") found a proof"
   205     Auto_Try => "Auto Sledgehammer (" ^ prover_name ^ ") found a proof"
   206   | Try => "Sledgehammer (" ^ quote name ^ ") found a proof"
   206   | Try => "Sledgehammer (" ^ prover_name ^ ") found a proof"
   207   | _ => "Try this")
   207   | _ => "Try this")
   208 
   208 
   209 fun bunches_of_proof_methods ctxt try0 smt_proofs needs_full_types desperate_lam_trans =
   209 fun bunches_of_proof_methods ctxt try0 smt_proofs needs_full_types desperate_lam_trans =
   210   let
   210   let
   211     val try0_methodss =
   211     val try0_methodss =