src/Pure/Isar/isar_syn.ML
changeset 21350 6e58289b6685
parent 21306 7ab6e95e6b0b
child 21403 dd58f13a8eb4
equal deleted inserted replaced
21349:09c3af731e27 21350:6e58289b6685
    13 
    13 
    14 (** init and exit **)
    14 (** init and exit **)
    15 
    15 
    16 val theoryP =
    16 val theoryP =
    17   OuterSyntax.command "theory" "begin theory" (K.tag_theory K.thy_begin)
    17   OuterSyntax.command "theory" "begin theory" (K.tag_theory K.thy_begin)
    18     (ThyHeader.args >> (Toplevel.print oo IsarThy.theory));
    18     (ThyHeader.args >> (Toplevel.print oo IsarCmd.theory));
    19 
    19 
    20 val endP =
    20 val endP =
    21   OuterSyntax.command "end" "end (local) theory" (K.tag_theory K.thy_end)
    21   OuterSyntax.command "end" "end (local) theory" (K.tag_theory K.thy_end)
    22     (Scan.succeed (Toplevel.exit o Toplevel.end_local_theory));
    22     (Scan.succeed (Toplevel.exit o Toplevel.end_local_theory));
    23 
    23 
   172 
   172 
   173 (* axioms and definitions *)
   173 (* axioms and definitions *)
   174 
   174 
   175 val axiomsP =
   175 val axiomsP =
   176   OuterSyntax.command "axioms" "state arbitrary propositions (axiomatic!)" K.thy_decl
   176   OuterSyntax.command "axioms" "state arbitrary propositions (axiomatic!)" K.thy_decl
   177     (Scan.repeat1 P.spec_name >> (Toplevel.theory o IsarThy.add_axioms));
   177     (Scan.repeat1 P.spec_name >> (Toplevel.theory o IsarCmd.add_axioms));
   178 
   178 
   179 val opt_unchecked_overloaded =
   179 val opt_unchecked_overloaded =
   180   Scan.optional (P.$$$ "(" |-- P.!!!
   180   Scan.optional (P.$$$ "(" |-- P.!!!
   181     (((P.$$$ "unchecked" >> K true) -- Scan.optional (P.$$$ "overloaded" >> K true) false ||
   181     (((P.$$$ "unchecked" >> K true) -- Scan.optional (P.$$$ "overloaded" >> K true) false ||
   182       P.$$$ "overloaded" >> K (false, true)) --| P.$$$ ")")) (false, false);
   182       P.$$$ "overloaded" >> K (false, true)) --| P.$$$ ")")) (false, false);
   183 
   183 
   184 val defsP =
   184 val defsP =
   185   OuterSyntax.command "defs" "define constants" K.thy_decl
   185   OuterSyntax.command "defs" "define constants" K.thy_decl
   186     (opt_unchecked_overloaded -- Scan.repeat1 P.spec_name
   186     (opt_unchecked_overloaded -- Scan.repeat1 P.spec_name
   187       >> (Toplevel.theory o IsarThy.add_defs));
   187       >> (Toplevel.theory o IsarCmd.add_defs));
   188 
   188 
   189 
   189 
   190 (* constant definitions and abbreviations *)
   190 (* constant definitions and abbreviations *)
   191 
   191 
   192 val constdecl =
   192 val constdecl =
   397 val corollaryP = gen_theorem PureThy.corollaryK;
   397 val corollaryP = gen_theorem PureThy.corollaryK;
   398 
   398 
   399 val haveP =
   399 val haveP =
   400   OuterSyntax.command "have" "state local goal"
   400   OuterSyntax.command "have" "state local goal"
   401     (K.tag_proof K.prf_goal)
   401     (K.tag_proof K.prf_goal)
   402     (P.statement >> ((Toplevel.print oo Toplevel.proof') o IsarThy.have));
   402     (P.statement >> ((Toplevel.print oo Toplevel.proof') o IsarCmd.have));
   403 
   403 
   404 val henceP =
   404 val henceP =
   405   OuterSyntax.command "hence" "abbreviates \"then have\""
   405   OuterSyntax.command "hence" "abbreviates \"then have\""
   406     (K.tag_proof K.prf_goal)
   406     (K.tag_proof K.prf_goal)
   407     (P.statement >> ((Toplevel.print oo Toplevel.proof') o IsarThy.hence));
   407     (P.statement >> ((Toplevel.print oo Toplevel.proof') o IsarCmd.hence));
   408 
   408 
   409 val showP =
   409 val showP =
   410   OuterSyntax.command "show" "state local goal, solving current obligation"
   410   OuterSyntax.command "show" "state local goal, solving current obligation"
   411     (K.tag_proof K.prf_goal)
   411     (K.tag_proof K.prf_goal)
   412     (P.statement >> ((Toplevel.print oo Toplevel.proof') o IsarThy.show));
   412     (P.statement >> ((Toplevel.print oo Toplevel.proof') o IsarCmd.show));
   413 
   413 
   414 val thusP =
   414 val thusP =
   415   OuterSyntax.command "thus" "abbreviates \"then show\""
   415   OuterSyntax.command "thus" "abbreviates \"then show\""
   416     (K.tag_proof K.prf_goal)
   416     (K.tag_proof K.prf_goal)
   417     (P.statement >> ((Toplevel.print oo Toplevel.proof') o IsarThy.thus));
   417     (P.statement >> ((Toplevel.print oo Toplevel.proof') o IsarCmd.thus));
   418 
   418 
   419 
   419 
   420 (* facts *)
   420 (* facts *)
   421 
   421 
   422 val facts = P.and_list1 P.xthms1;
   422 val facts = P.and_list1 P.xthms1;
   525 (* end proof *)
   525 (* end proof *)
   526 
   526 
   527 val qedP =
   527 val qedP =
   528   OuterSyntax.command "qed" "conclude (sub-)proof"
   528   OuterSyntax.command "qed" "conclude (sub-)proof"
   529     (K.tag_proof K.qed_block)
   529     (K.tag_proof K.qed_block)
   530     (Scan.option P.method >> (Toplevel.print3 oo IsarThy.qed));
   530     (Scan.option P.method >> (Toplevel.print3 oo IsarCmd.qed));
   531 
   531 
   532 val terminal_proofP =
   532 val terminal_proofP =
   533   OuterSyntax.command "by" "terminal backward proof"
   533   OuterSyntax.command "by" "terminal backward proof"
   534     (K.tag_proof K.qed)
   534     (K.tag_proof K.qed)
   535     (P.method -- Scan.option P.method >> (Toplevel.print3 oo IsarThy.terminal_proof));
   535     (P.method -- Scan.option P.method >> (Toplevel.print3 oo IsarCmd.terminal_proof));
   536 
   536 
   537 val default_proofP =
   537 val default_proofP =
   538   OuterSyntax.command ".." "default proof"
   538   OuterSyntax.command ".." "default proof"
   539     (K.tag_proof K.qed)
   539     (K.tag_proof K.qed)
   540     (Scan.succeed (Toplevel.print3 o IsarThy.default_proof));
   540     (Scan.succeed (Toplevel.print3 o IsarCmd.default_proof));
   541 
   541 
   542 val immediate_proofP =
   542 val immediate_proofP =
   543   OuterSyntax.command "." "immediate proof"
   543   OuterSyntax.command "." "immediate proof"
   544     (K.tag_proof K.qed)
   544     (K.tag_proof K.qed)
   545     (Scan.succeed (Toplevel.print3 o IsarThy.immediate_proof));
   545     (Scan.succeed (Toplevel.print3 o IsarCmd.immediate_proof));
   546 
   546 
   547 val done_proofP =
   547 val done_proofP =
   548   OuterSyntax.command "done" "done proof"
   548   OuterSyntax.command "done" "done proof"
   549     (K.tag_proof K.qed)
   549     (K.tag_proof K.qed)
   550     (Scan.succeed (Toplevel.print3 o IsarThy.done_proof));
   550     (Scan.succeed (Toplevel.print3 o IsarCmd.done_proof));
   551 
   551 
   552 val skip_proofP =
   552 val skip_proofP =
   553   OuterSyntax.improper_command "sorry" "skip proof (quick-and-dirty mode only!)"
   553   OuterSyntax.improper_command "sorry" "skip proof (quick-and-dirty mode only!)"
   554     (K.tag_proof K.qed)
   554     (K.tag_proof K.qed)
   555     (Scan.succeed (Toplevel.print3 o IsarThy.skip_proof));
   555     (Scan.succeed (Toplevel.print3 o IsarCmd.skip_proof));
   556 
   556 
   557 val forget_proofP =
   557 val forget_proofP =
   558   OuterSyntax.command "oops" "forget proof"
   558   OuterSyntax.command "oops" "forget proof"
   559     (K.tag_proof K.qed_global)
   559     (K.tag_proof K.qed_global)
   560     (Scan.succeed Toplevel.forget_proof);
   560     (Scan.succeed Toplevel.forget_proof);