632 | (pre, Inference_Step (name', t', rule, _) :: post) => |
632 | (pre, Inference_Step (name', t', rule, _) :: post) => |
633 Inference_Step (name, t', rule, deps) :: |
633 Inference_Step (name, t', rule, deps) :: |
634 pre @ map (replace_dependencies_in_line (name', [name])) post |
634 pre @ map (replace_dependencies_in_line (name', [name])) post |
635 | _ => raise Fail "unexpected inference" |
635 | _ => raise Fail "unexpected inference" |
636 |
636 |
|
637 val waldmeister_conjecture_num = "1.0.0.0" |
|
638 |
637 val repair_waldmeister_endgame = |
639 val repair_waldmeister_endgame = |
638 let |
640 let |
639 fun do_tail (Inference_Step (name, t, rule, deps)) = |
641 fun do_tail (Inference_Step (name, t, rule, deps)) = |
640 Inference_Step (name, s_not t, rule, deps) |
642 Inference_Step (name, s_not t, rule, deps) |
641 | do_tail line = line |
643 | do_tail line = line |
642 fun do_body [] = [] |
644 fun do_body [] = [] |
643 | do_body ((line as Inference_Step ((_, ss), _, _, _)) :: lines) = |
645 | do_body ((line as Inference_Step ((num, _), _, _, _)) :: lines) = |
644 if is_conjecture ss then map do_tail (line :: lines) |
646 if num = waldmeister_conjecture_num then map do_tail (line :: lines) |
645 else line :: do_body lines |
647 else line :: do_body lines |
646 | do_body (line :: lines) = line :: do_body lines |
648 | do_body (line :: lines) = line :: do_body lines |
647 in do_body end |
649 in do_body end |
648 |
650 |
649 (* Recursively delete empty lines (type information) from the proof. *) |
651 (* Recursively delete empty lines (type information) from the proof. *) |