src/HOL/Tools/Sledgehammer/sledgehammer_isar_compress.ML
changeset 62258 338bdbf14e31
parent 61666 f1b257607981
child 62826 eb94e570c1a4
equal deleted inserted replaced
62257:a00306a1c71a 62258:338bdbf14e31
   171               val step'' = Prove (qs, xs, l, t, subs'', (lfs'', gfs''), meths'', comment)
   171               val step'' = Prove (qs, xs, l, t, subs'', (lfs'', gfs''), meths'', comment)
   172 
   172 
   173               (* check if the modified step can be preplayed fast enough *)
   173               (* check if the modified step can be preplayed fast enough *)
   174               val timeout = adjust_merge_timeout preplay_timeout (Time.+ (time, reference_time l'))
   174               val timeout = adjust_merge_timeout preplay_timeout (Time.+ (time, reference_time l'))
   175             in
   175             in
   176               (case preplay_isar_step ctxt timeout hopeless step'' of
   176               (case preplay_isar_step ctxt [] timeout hopeless step'' of
   177                 meths_outcomes as (_, Played time'') :: _ =>
   177                 meths_outcomes as (_, Played time'') :: _ =>
   178                 (* "l'" successfully eliminated *)
   178                 (* "l'" successfully eliminated *)
   179                 (decrement_step_count ();
   179                 (decrement_step_count ();
   180                  set_preplay_outcomes_of_isar_step ctxt time'' preplay_data step'' meths_outcomes;
   180                  set_preplay_outcomes_of_isar_step ctxt time'' preplay_data step'' meths_outcomes;
   181                  map (replace_successor l' [l]) lfs';
   181                  map (replace_successor l' [l]) lfs';
   216                 let
   216                 let
   217                   val n = length labels
   217                   val n = length labels
   218                   val total_time = Library.foldl Time.+ (reference_time l, times0)
   218                   val total_time = Library.foldl Time.+ (reference_time l, times0)
   219                   val timeout = adjust_merge_timeout preplay_timeout
   219                   val timeout = adjust_merge_timeout preplay_timeout
   220                     (Time.fromReal (Time.toReal total_time / Real.fromInt n))
   220                     (Time.fromReal (Time.toReal total_time / Real.fromInt n))
   221                   val meths_outcomess = @{map 2} (preplay_isar_step ctxt timeout) hopelesses succs'
   221                   val meths_outcomess =
       
   222                     @{map 2} (preplay_isar_step ctxt [] timeout) hopelesses succs'
   222                 in
   223                 in
   223                   (case try (map (fn (_, Played time) :: _ => time)) meths_outcomess of
   224                   (case try (map (fn (_, Played time) :: _ => time)) meths_outcomess of
   224                     NONE => steps
   225                     NONE => steps
   225                   | SOME times =>
   226                   | SOME times =>
   226                     (* "l" successfully eliminated *)
   227                     (* "l" successfully eliminated *)