src/Pure/Isar/isar_syn.ML
changeset 55141 863b4f9f6bd7
parent 53988 1781bf24cdf1
child 55385 169e12bbf9a3
equal deleted inserted replaced
55140:7eb0c04e4c40 55141:863b4f9f6bd7
   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)));