doc-src/IsarRef/syntax.tex
changeset 16256 8fe678fd7fe4
parent 16120 6a449deff8d9
child 17053 80fceeb2bcef
equal deleted inserted replaced
16255:56e56a00511e 16256:8fe678fd7fe4
   483 \item [$\at\{const~c\}$] prints a well-defined constant $c$.
   483 \item [$\at\{const~c\}$] prints a well-defined constant $c$.
   484 
   484 
   485 \item [$\at\{typeof~t\}$] prints the type of a well-typed term $t$.
   485 \item [$\at\{typeof~t\}$] prints the type of a well-typed term $t$.
   486 
   486 
   487 \item [$\at\{typ~\tau\}$] prints a well-formed type $\tau$.
   487 \item [$\at\{typ~\tau\}$] prints a well-formed type $\tau$.
   488 
   488   
   489 \item [$\at\{thm_style~s~a\}$] prints theorem $a$, previously
   489 \item [$\at\{thm_style~s~a\}$] prints theorem $a$, previously applying a style
   490   applying a style $s$ to it; otherwise behaves the same as $\at\{thm~a\}$
   490   $s$ to it (see below).
   491   with just one theorem.
   491   
   492 
   492 \item [$\at\{term_style~s~t\}$] prints a well-typed term $t$ after applying a
   493 \item [$\at\{term_style~s~t\}$] prints a well-typed term $t$ after
   493   style $s$ to it (see below).
   494   applying a style $s$ to it; otherwise behaves the same as $\at\{term~t\}$.
       
   495 
   494 
   496 \item [$\at\{text~s\}$] prints uninterpreted source text $s$.  This is
   495 \item [$\at\{text~s\}$] prints uninterpreted source text $s$.  This is
   497   particularly useful to print portions of text according to the Isabelle
   496   particularly useful to print portions of text according to the Isabelle
   498   {\LaTeX} output style, without demanding well-formedness (e.g.\ small pieces
   497   {\LaTeX} output style, without demanding well-formedness (e.g.\ small pieces
   499   of terms that should not be parsed or type-checked yet).
   498   of terms that should not be parsed or type-checked yet).
   501 \item [$\at\{goals\}$] prints the current \emph{dynamic} goal state.  This is
   500 \item [$\at\{goals\}$] prints the current \emph{dynamic} goal state.  This is
   502   mainly for support of tactic-emulation scripts within Isar --- presentation
   501   mainly for support of tactic-emulation scripts within Isar --- presentation
   503   of goal states does not conform to actual human-readable proof documents.
   502   of goal states does not conform to actual human-readable proof documents.
   504   Please do not include goal states into document output unless you really
   503   Please do not include goal states into document output unless you really
   505   know what you are doing!
   504   know what you are doing!
   506 
   505   
   507 \item [$\at\{subgoals\}$] behaves almost like $goals$, except that it does not
   506 \item [$\at\{subgoals\}$] is similar to $goals$, but does not print the main
   508   print the main goal.
   507   goal.
   509 
   508   
   510 \item [$\at\{prf~\vec a\}$] prints the (compact) proof terms corresponding to
   509 \item [$\at\{prf~\vec a\}$] prints the (compact) proof terms corresponding to
   511   the theorems $\vec a$. Note that this
   510   the theorems $\vec a$. Note that this requires proof terms to be switched on
   512   requires proof terms to be switched on for the current object logic
   511   for the current object logic (see the ``Proof terms'' section of the
   513   (see the ``Proof terms'' section of the Isabelle reference manual
   512   Isabelle reference manual for information on how to do this).
   514   for information on how to do this).
   513   
   515 
   514 \item [$\at\{full_prf~\vec a\}$] is like $\at\{prf~\vec a\}$, but displays the
   516 \item [$\at\{full_prf~\vec a\}$] is like $\at\{prf~\vec a\}$, but displays
   515   full proof terms, i.e.\ also displays information omitted in the compact
   517   the full proof terms, i.e.\ also displays information omitted in
   516   proof term, which is denoted by ``$_$'' placeholders there.
   518   the compact proof term, which is denoted by ``$_$'' placeholders there.
       
   519 
   517 
   520 \end{descr}
   518 \end{descr}
   521 
   519 
   522 There are a few standard styles for use with $\at\{thm_style~s~a\}$ and
   520 \medskip
   523 $\at\{term_style~s~t\}$:
   521 
       
   522 The following standard styles for use with $thm_style$ and $term_style$ are
       
   523 available:
   524 
   524 
   525 \begin{descr}
   525 \begin{descr}
   526   
   526   
   527 \item [$lhs$] extracts the first argument of any application form with at
   527 \item [$lhs$] extracts the first argument of any application form with at
   528   least two arguments -- typically is meta-level or object-level equality or
   528   least two arguments -- typically meta-level or object-level equality, or any
   529   any other binary relation.
   529   other binary relation.
   530   
   530   
   531 \item [$rhs$] similar to $lhs$, but extracts the second argument.
   531 \item [$rhs$] is like $lhs$, but extracts the second argument.
   532   
   532   
   533 \item [$conlusion$] extracts the conclusion $C$ from nested meta-level
   533 \item [$concl$] extracts the conclusion $C$ from a nested meta-level
   534   implications $A@1 \Imp \cdots A@n \Imp C$.
   534   implication $A@1 \Imp \cdots A@n \Imp C$.
       
   535   
       
   536 \item [$prem1$, \dots, $prem9$] extract premise number $1$, \dots, $9$,
       
   537   respectively, from a nested meta-level implication $A@1 \Imp \cdots A@n \Imp
       
   538   C$.
   535 
   539 
   536 \end{descr}
   540 \end{descr}
   537 
       
   538 Further styles may be defined at ML level.
       
   539 
   541 
   540 \medskip
   542 \medskip
   541 
   543 
   542 The following options are available to tune the output.  Note that most of
   544 The following options are available to tune the output.  Note that most of
   543 these coincide with ML flags of the same names (see also \cite{isabelle-ref}).
   545 these coincide with ML flags of the same names (see also \cite{isabelle-ref}).