src/HOL/Tools/Sledgehammer/sledgehammer_reconstruct.ML
changeset 52632 23393c31c7fe
parent 52626 79a4e7f8d758
child 52697 6fb98a20c349
equal deleted inserted replaced
52631:564a108d722f 52632:23393c31c7fe
    10   type 'a proof = 'a ATP_Proof.proof
    10   type 'a proof = 'a ATP_Proof.proof
    11   type stature = ATP_Problem_Generate.stature
    11   type stature = ATP_Problem_Generate.stature
    12   type one_line_params = Sledgehammer_Print.one_line_params
    12   type one_line_params = Sledgehammer_Print.one_line_params
    13 
    13 
    14   type isar_params =
    14   type isar_params =
    15     bool * bool * Time.time option * bool * real * int * real
    15     bool * bool * Time.time option * bool * real * int * real * bool * bool
    16     * string Symtab.table * (string * stature) list vector
    16     * string Symtab.table * (string * stature) list vector
    17     * (string * term) list * int Symtab.table * string proof * thm
    17     * (string * term) list * int Symtab.table * string proof * thm
    18 
    18 
    19   val lam_trans_of_atp_proof : string proof -> string -> string
    19   val lam_trans_of_atp_proof : string proof -> string -> string
    20   val is_typed_helper_used_in_atp_proof : string proof -> bool
    20   val is_typed_helper_used_in_atp_proof : string proof -> bool
   407              chain_steps (try (List.last #> fst) assms) steps)
   407              chain_steps (try (List.last #> fst) assms) steps)
   408     and chain_proofs proofs = map (chain_proof) proofs
   408     and chain_proofs proofs = map (chain_proof) proofs
   409   in chain_proof end
   409   in chain_proof end
   410 
   410 
   411 type isar_params =
   411 type isar_params =
   412   bool * bool * Time.time option * bool * real * int * real
   412   bool * bool * Time.time option * bool * real * int * real * bool * bool
   413   * string Symtab.table * (string * stature) list vector
   413   * string Symtab.table * (string * stature) list vector
   414   * (string * term) list * int Symtab.table * string proof * thm
   414   * (string * term) list * int Symtab.table * string proof * thm
   415 
   415 
   416 fun isar_proof_text ctxt isar_proofs
   416 fun isar_proof_text ctxt isar_proofs
   417     (debug, verbose, preplay_timeout, preplay_trace, isar_compress,
   417     (debug, verbose, preplay_timeout, preplay_trace, isar_compress,
   418      isar_compress_degree, merge_timeout_slack, pool, fact_names, lifted,
   418      isar_compress_degree, merge_timeout_slack, isar_try0, isar_minimize, pool,
   419      sym_tab, atp_proof, goal)
   419      fact_names, lifted, sym_tab, atp_proof, goal)
   420     (one_line_params as (_, _, _, _, subgoal, subgoal_count)) =
   420     (one_line_params as (_, _, _, _, subgoal, subgoal_count)) =
   421   let
   421   let
   422     val (params, hyp_ts, concl_t) = strip_subgoal goal subgoal ctxt
   422     val (params, hyp_ts, concl_t) = strip_subgoal goal subgoal ctxt
   423     val (_, ctxt) =
   423     val (_, ctxt) =
   424       params
   424       params
   592           isar_proof
   592           isar_proof
   593           |> compress_proof
   593           |> compress_proof
   594                (if isar_proofs = SOME true then isar_compress else 1000.0)
   594                (if isar_proofs = SOME true then isar_compress else 1000.0)
   595                (if isar_proofs = SOME true then isar_compress_degree else 100)
   595                (if isar_proofs = SOME true then isar_compress_degree else 100)
   596                merge_timeout_slack preplay_interface
   596                merge_timeout_slack preplay_interface
   597           |> try0 preplay_timeout preplay_interface
   597           |> isar_try0 ? try0 preplay_timeout preplay_interface
   598           |> minimize_dependencies_and_remove_unrefed_steps preplay_interface
   598           |> minimize_dependencies_and_remove_unrefed_steps isar_minimize
       
   599                preplay_interface
   599           |> `overall_preplay_stats
   600           |> `overall_preplay_stats
   600           ||> clean_up_labels_in_proof
   601           ||> clean_up_labels_in_proof
   601         val isar_text = string_of_proof ctxt type_enc lam_trans subgoal
   602         val isar_text = string_of_proof ctxt type_enc lam_trans subgoal
   602           subgoal_count isar_proof
   603           subgoal_count isar_proof
   603       in
   604       in