--- a/src/HOL/Tools/Sledgehammer/sledgehammer.ML Sat May 14 22:00:44 2016 +0200
+++ b/src/HOL/Tools/Sledgehammer/sledgehammer.ML Tue May 17 08:40:24 2016 +0200
@@ -94,7 +94,7 @@
else
let
val (time', used_names') =
- minimized_isar_step ctxt time (mk_step fact_names [meth])
+ minimized_isar_step ctxt chained time (mk_step fact_names [meth])
||> (facts_of_isar_step #> snd)
val used_facts' = filter (member (op =) used_names' o fst) used_facts
in
--- a/src/HOL/Tools/Sledgehammer/sledgehammer_isar_minimize.ML Sat May 14 22:00:44 2016 +0200
+++ b/src/HOL/Tools/Sledgehammer/sledgehammer_isar_minimize.ML Tue May 17 08:40:24 2016 +0200
@@ -12,7 +12,8 @@
type isar_preplay_data = Sledgehammer_Isar_Preplay.isar_preplay_data
val keep_fastest_method_of_isar_step : isar_preplay_data -> isar_step -> isar_step
- val minimized_isar_step : Proof.context -> Time.time -> isar_step -> Time.time * isar_step
+ val minimized_isar_step : Proof.context -> thm list -> Time.time -> isar_step ->
+ Time.time * isar_step
val minimize_isar_step_dependencies : Proof.context -> isar_preplay_data Unsynchronized.ref ->
isar_step -> isar_step
val postprocess_isar_proof_remove_show_stuttering : isar_proof -> isar_proof
@@ -37,7 +38,7 @@
val slack = seconds 0.025
-fun minimized_isar_step ctxt time
+fun minimized_isar_step ctxt chained time
(Prove (qs, xs, l, t, subproofs, (lfs0, gfs0), meths as meth :: _, comment)) =
let
fun mk_step_lfs_gfs lfs gfs =
@@ -45,7 +46,7 @@
fun minimize_half _ min_facts [] time = (min_facts, time)
| minimize_half mk_step min_facts (fact :: facts) time =
- (case preplay_isar_step_for_method ctxt [] (time + slack) meth
+ (case preplay_isar_step_for_method ctxt chained (time + slack) meth
(mk_step (min_facts @ facts)) of
Played time' => minimize_half mk_step min_facts facts time'
| _ => minimize_half mk_step (fact :: min_facts) facts time)
@@ -64,7 +65,7 @@
fun old_data_for_method meth' =
(meth', peek_at_outcome (preplay_outcome_of_isar_step_for_method (!preplay_data) l meth'))
- val (time', step') = minimized_isar_step ctxt time step
+ val (time', step') = minimized_isar_step ctxt [] time step
in
set_preplay_outcomes_of_isar_step ctxt time' preplay_data step'
((meth, Played time') :: (if step' = step then map old_data_for_method meths else []));