686 (Scan.option Method.parse >> (fn m => Toplevel.print o |
686 (Scan.option Method.parse >> (fn m => Toplevel.print o |
687 Toplevel.actual_proof (Proof_Node.applys (Proof.proof_results m)) o |
687 Toplevel.actual_proof (Proof_Node.applys (Proof.proof_results m)) o |
688 Toplevel.skip_proof (fn i => i + 1))); |
688 Toplevel.skip_proof (fn i => i + 1))); |
689 |
689 |
690 |
690 |
691 (* calculational proof commands *) |
|
692 |
|
693 val calc_args = |
|
694 Scan.option (@{keyword "("} |-- Parse.!!! ((Parse_Spec.xthms1 --| @{keyword ")"}))); |
|
695 |
|
696 val _ = |
|
697 Outer_Syntax.command @{command_spec "also"} "combine calculation and current facts" |
|
698 (calc_args >> (Toplevel.proofs' o Calculation.also_cmd)); |
|
699 |
|
700 val _ = |
|
701 Outer_Syntax.command @{command_spec "finally"} |
|
702 "combine calculation and current facts, exhibit result" |
|
703 (calc_args >> (Toplevel.proofs' o Calculation.finally_cmd)); |
|
704 |
|
705 val _ = |
|
706 Outer_Syntax.command @{command_spec "moreover"} "augment calculation by current facts" |
|
707 (Scan.succeed (Toplevel.proof' Calculation.moreover)); |
|
708 |
|
709 val _ = |
|
710 Outer_Syntax.command @{command_spec "ultimately"} |
|
711 "augment calculation by current facts, exhibit result" |
|
712 (Scan.succeed (Toplevel.proof' Calculation.ultimately)); |
|
713 |
|
714 |
|
715 (* proof navigation *) |
691 (* proof navigation *) |
716 |
692 |
717 val _ = |
693 val _ = |
718 Outer_Syntax.command @{command_spec "back"} "backtracking of proof command" |
694 Outer_Syntax.command @{command_spec "back"} "backtracking of proof command" |
719 (Scan.succeed (Toplevel.print o Toplevel.actual_proof Proof_Node.back o Toplevel.skip_proof I)); |
695 (Scan.succeed (Toplevel.print o Toplevel.actual_proof Proof_Node.back o Toplevel.skip_proof I)); |
843 |
819 |
844 val _ = |
820 val _ = |
845 Outer_Syntax.improper_command @{command_spec "print_rules"} "print intro/elim rules" |
821 Outer_Syntax.improper_command @{command_spec "print_rules"} "print intro/elim rules" |
846 (Scan.succeed (Toplevel.unknown_context o |
822 (Scan.succeed (Toplevel.unknown_context o |
847 Toplevel.keep (Context_Rules.print_rules o Toplevel.context_of))); |
823 Toplevel.keep (Context_Rules.print_rules o Toplevel.context_of))); |
848 |
|
849 val _ = |
|
850 Outer_Syntax.improper_command @{command_spec "print_trans_rules"} "print transitivity rules" |
|
851 (Scan.succeed (Toplevel.unknown_context o |
|
852 Toplevel.keep (Calculation.print_rules o Toplevel.context_of))); |
|
853 |
824 |
854 val _ = |
825 val _ = |
855 Outer_Syntax.improper_command @{command_spec "print_methods"} "print methods of this theory" |
826 Outer_Syntax.improper_command @{command_spec "print_methods"} "print methods of this theory" |
856 (Scan.succeed (Toplevel.unknown_theory o |
827 (Scan.succeed (Toplevel.unknown_theory o |
857 Toplevel.keep (Method.print_methods o Toplevel.theory_of))); |
828 Toplevel.keep (Method.print_methods o Toplevel.theory_of))); |