314 | (_, outcome) => string_of_play_outcome outcome) |
314 | (_, outcome) => string_of_play_outcome outcome) |
315 |
315 |
316 val (play_outcome, isar_proof) = |
316 val (play_outcome, isar_proof) = |
317 canonical_isar_proof |
317 canonical_isar_proof |
318 |> tap (trace_isar_proof "Original") |
318 |> tap (trace_isar_proof "Original") |
319 |> compress_isar_proof ctxt compress_isar preplay_data |
319 |> compress_isar_proof ctxt compress_isar preplay_timeout preplay_data |
320 |> tap (trace_isar_proof "Compressed") |
320 |> tap (trace_isar_proof "Compressed") |
321 |> postprocess_isar_proof_remove_unreferenced_steps |
321 |> postprocess_isar_proof_remove_unreferenced_steps |
322 (keep_fastest_method_of_isar_step (!preplay_data) |
322 (keep_fastest_method_of_isar_step (!preplay_data) |
323 #> minimize ? minimize_isar_step_dependencies ctxt preplay_data) |
323 #> minimize ? minimize_isar_step_dependencies ctxt preplay_data) |
324 |> tap (trace_isar_proof "Minimized") |
324 |> tap (trace_isar_proof "Minimized") |
|
325 (* It's not clear whether this is worth the trouble (and if so, "isar_compress" has an |
|
326 unnatural semantics): *) |
|
327 (* |
325 |> minimize |
328 |> minimize |
326 ? (compress_isar_proof ctxt compress_isar preplay_data |
329 ? (compress_isar_proof ctxt compress_isar preplay_timeout preplay_data |
327 #> tap (trace_isar_proof "Compressed again")) |
330 #> tap (trace_isar_proof "Compressed again")) |
|
331 *) |
328 |> `(preplay_outcome_of_isar_proof (!preplay_data)) |
332 |> `(preplay_outcome_of_isar_proof (!preplay_data)) |
329 ||> (comment_isar_proof comment_of |
333 ||> (comment_isar_proof comment_of |
330 #> chain_isar_proof |
334 #> chain_isar_proof |
331 #> kill_useless_labels_in_isar_proof |
335 #> kill_useless_labels_in_isar_proof |
332 #> relabel_isar_proof_nicely) |
336 #> relabel_isar_proof_nicely) |