| author | wenzelm | 
| Thu, 26 Jul 2012 19:59:06 +0200 | |
| changeset 48536 | 4e2ee88276d2 | 
| parent 46261 | b03897da3c90 | 
| permissions | -rw-r--r-- | 
| 27042 | 1  | 
%  | 
2  | 
\begin{isabellebody}%
 | 
|
| 40406 | 3  | 
\def\isabellecontext{Document{\isaliteral{5F}{\isacharunderscore}}Preparation}%
 | 
| 27042 | 4  | 
%  | 
5  | 
\isadelimtheory  | 
|
6  | 
%  | 
|
7  | 
\endisadelimtheory  | 
|
8  | 
%  | 
|
9  | 
\isatagtheory  | 
|
10  | 
\isacommand{theory}\isamarkupfalse%
 | 
|
| 40406 | 11  | 
\ Document{\isaliteral{5F}{\isacharunderscore}}Preparation\isanewline
 | 
| 42651 | 12  | 
\isakeyword{imports}\ Base\ Main\isanewline
 | 
| 27042 | 13  | 
\isakeyword{begin}%
 | 
14  | 
\endisatagtheory  | 
|
15  | 
{\isafoldtheory}%
 | 
|
16  | 
%  | 
|
17  | 
\isadelimtheory  | 
|
18  | 
%  | 
|
19  | 
\endisadelimtheory  | 
|
20  | 
%  | 
|
21  | 
\isamarkupchapter{Document preparation \label{ch:document-prep}%
 | 
|
22  | 
}  | 
|
23  | 
\isamarkuptrue%  | 
|
24  | 
%  | 
|
25  | 
\begin{isamarkuptext}%
 | 
|
| 28788 | 26  | 
Isabelle/Isar provides a simple document preparation system  | 
27  | 
  based on regular {PDF-\LaTeX} technology, with full support for
 | 
|
28  | 
hyper-links and bookmarks. Thus the results are well suited for WWW  | 
|
29  | 
browsing and as printed copies.  | 
|
| 27042 | 30  | 
|
| 28788 | 31  | 
  \medskip Isabelle generates {\LaTeX} output while running a
 | 
| 27042 | 32  | 
  \emph{logic session} (see also \cite{isabelle-sys}).  Getting
 | 
33  | 
started with a working configuration for common situations is quite  | 
|
34  | 
easy by using the Isabelle \verb|mkdir| and \verb|make|  | 
|
35  | 
tools. First invoke  | 
|
36  | 
\begin{ttbox}
 | 
|
| 28505 | 37  | 
isabelle mkdir Foo  | 
| 27042 | 38  | 
\end{ttbox}
 | 
| 28788 | 39  | 
to initialize a separate directory for session \verb|Foo| (it  | 
40  | 
is safe to experiment, since \verb|isabelle mkdir| never  | 
|
41  | 
overwrites existing files). Ensure that \verb|Foo/ROOT.ML|  | 
|
| 27042 | 42  | 
holds ML commands to load all theories required for this session;  | 
43  | 
furthermore \verb|Foo/document/root.tex| should include any  | 
|
44  | 
  special {\LaTeX} macro packages required for your document (the
 | 
|
45  | 
default is usually sufficient as a start).  | 
|
46  | 
||
47  | 
The session is controlled by a separate \verb|IsaMakefile|  | 
|
48  | 
(with crude source dependencies by default). This file is located  | 
|
49  | 
one level up from the \verb|Foo| directory location. Now  | 
|
50  | 
invoke  | 
|
51  | 
\begin{ttbox}
 | 
|
| 28505 | 52  | 
isabelle make Foo  | 
| 27042 | 53  | 
\end{ttbox}
 | 
54  | 
to run the \verb|Foo| session, with browser information and  | 
|
55  | 
document preparation enabled. Unless any errors are reported by  | 
|
56  | 
  Isabelle or {\LaTeX}, the output will appear inside the directory
 | 
|
| 28788 | 57  | 
defined by the \verb|ISABELLE_BROWSER_INFO| setting (as  | 
58  | 
reported by the batch job in verbose mode).  | 
|
| 27042 | 59  | 
|
60  | 
\medskip You may also consider to tune the \verb|usedir|  | 
|
| 28788 | 61  | 
options in \verb|IsaMakefile|, for example to switch the output  | 
62  | 
format between \verb|pdf| and \verb|dvi|, or activate the  | 
|
| 27042 | 63  | 
\verb|-D| option to retain a second copy of the generated  | 
| 28788 | 64  | 
  {\LaTeX} sources (for manual inspection or separate runs of
 | 
65  | 
  \hyperlink{executable.latex}{\mbox{\isa{\isatt{latex}}}}).
 | 
|
| 27042 | 66  | 
|
67  | 
  \medskip See \emph{The Isabelle System Manual} \cite{isabelle-sys}
 | 
|
68  | 
for further details on Isabelle logic sessions and theory  | 
|
69  | 
  presentation.  The Isabelle/HOL tutorial \cite{isabelle-hol-book}
 | 
|
| 28788 | 70  | 
also covers theory presentation to some extent.%  | 
| 27042 | 71  | 
\end{isamarkuptext}%
 | 
72  | 
\isamarkuptrue%  | 
|
73  | 
%  | 
|
74  | 
\isamarkupsection{Markup commands \label{sec:markup}%
 | 
|
75  | 
}  | 
|
76  | 
\isamarkuptrue%  | 
|
77  | 
%  | 
|
78  | 
\begin{isamarkuptext}%
 | 
|
79  | 
\begin{matharray}{rcl}
 | 
|
| 40406 | 80  | 
    \indexdef{}{command}{header}\hypertarget{command.header}{\hyperlink{command.header}{\mbox{\isa{\isacommand{header}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}toplevel\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ toplevel{\isaliteral{22}{\isachardoublequote}}} \\[0.5ex]
 | 
81  | 
    \indexdef{}{command}{chapter}\hypertarget{command.chapter}{\hyperlink{command.chapter}{\mbox{\isa{\isacommand{chapter}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}local{\isaliteral{5F}{\isacharunderscore}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ local{\isaliteral{5F}{\isacharunderscore}}theory{\isaliteral{22}{\isachardoublequote}}} \\
 | 
|
82  | 
    \indexdef{}{command}{section}\hypertarget{command.section}{\hyperlink{command.section}{\mbox{\isa{\isacommand{section}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}local{\isaliteral{5F}{\isacharunderscore}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ local{\isaliteral{5F}{\isacharunderscore}}theory{\isaliteral{22}{\isachardoublequote}}} \\
 | 
|
83  | 
    \indexdef{}{command}{subsection}\hypertarget{command.subsection}{\hyperlink{command.subsection}{\mbox{\isa{\isacommand{subsection}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}local{\isaliteral{5F}{\isacharunderscore}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ local{\isaliteral{5F}{\isacharunderscore}}theory{\isaliteral{22}{\isachardoublequote}}} \\
 | 
|
84  | 
    \indexdef{}{command}{subsubsection}\hypertarget{command.subsubsection}{\hyperlink{command.subsubsection}{\mbox{\isa{\isacommand{subsubsection}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}local{\isaliteral{5F}{\isacharunderscore}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ local{\isaliteral{5F}{\isacharunderscore}}theory{\isaliteral{22}{\isachardoublequote}}} \\
 | 
|
85  | 
    \indexdef{}{command}{text}\hypertarget{command.text}{\hyperlink{command.text}{\mbox{\isa{\isacommand{text}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}local{\isaliteral{5F}{\isacharunderscore}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ local{\isaliteral{5F}{\isacharunderscore}}theory{\isaliteral{22}{\isachardoublequote}}} \\
 | 
|
86  | 
    \indexdef{}{command}{text\_raw}\hypertarget{command.text-raw}{\hyperlink{command.text-raw}{\mbox{\isa{\isacommand{text{\isaliteral{5F}{\isacharunderscore}}raw}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}local{\isaliteral{5F}{\isacharunderscore}}theory\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ local{\isaliteral{5F}{\isacharunderscore}}theory{\isaliteral{22}{\isachardoublequote}}} \\[0.5ex]
 | 
|
87  | 
    \indexdef{}{command}{sect}\hypertarget{command.sect}{\hyperlink{command.sect}{\mbox{\isa{\isacommand{sect}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}proof\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ proof{\isaliteral{22}{\isachardoublequote}}} \\
 | 
|
88  | 
    \indexdef{}{command}{subsect}\hypertarget{command.subsect}{\hyperlink{command.subsect}{\mbox{\isa{\isacommand{subsect}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}proof\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ proof{\isaliteral{22}{\isachardoublequote}}} \\
 | 
|
89  | 
    \indexdef{}{command}{subsubsect}\hypertarget{command.subsubsect}{\hyperlink{command.subsubsect}{\mbox{\isa{\isacommand{subsubsect}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}proof\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ proof{\isaliteral{22}{\isachardoublequote}}} \\
 | 
|
90  | 
    \indexdef{}{command}{txt}\hypertarget{command.txt}{\hyperlink{command.txt}{\mbox{\isa{\isacommand{txt}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}proof\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ proof{\isaliteral{22}{\isachardoublequote}}} \\
 | 
|
91  | 
    \indexdef{}{command}{txt\_raw}\hypertarget{command.txt-raw}{\hyperlink{command.txt-raw}{\mbox{\isa{\isacommand{txt{\isaliteral{5F}{\isacharunderscore}}raw}}}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}proof\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}\ proof{\isaliteral{22}{\isachardoublequote}}} \\
 | 
|
| 27042 | 92  | 
  \end{matharray}
 | 
93  | 
||
| 28788 | 94  | 
Markup commands provide a structured way to insert text into the  | 
95  | 
document generated from a theory. Each markup command takes a  | 
|
96  | 
  single \hyperlink{syntax.text}{\mbox{\isa{text}}} argument, which is passed as argument to a
 | 
|
97  | 
  corresponding {\LaTeX} macro.  The default macros provided by
 | 
|
| 40802 | 98  | 
\verb|~~/lib/texinputs/isabelle.sty| can be redefined according  | 
| 28788 | 99  | 
  to the needs of the underlying document and {\LaTeX} styles.
 | 
100  | 
||
101  | 
  Note that formal comments (\secref{sec:comments}) are similar to
 | 
|
102  | 
markup commands, but have a different status within Isabelle/Isar  | 
|
103  | 
syntax.  | 
|
| 27042 | 104  | 
|
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
105  | 
  \begin{railoutput}
 | 
| 42662 | 106  | 
\rail@begin{5}{}
 | 
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
107  | 
\rail@bar  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
108  | 
\rail@term{\hyperlink{command.chapter}{\mbox{\isa{\isacommand{chapter}}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
109  | 
\rail@nextbar{1}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
110  | 
\rail@term{\hyperlink{command.section}{\mbox{\isa{\isacommand{section}}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
111  | 
\rail@nextbar{2}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
112  | 
\rail@term{\hyperlink{command.subsection}{\mbox{\isa{\isacommand{subsection}}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
113  | 
\rail@nextbar{3}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
114  | 
\rail@term{\hyperlink{command.subsubsection}{\mbox{\isa{\isacommand{subsubsection}}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
115  | 
\rail@nextbar{4}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
116  | 
\rail@term{\hyperlink{command.text}{\mbox{\isa{\isacommand{text}}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
117  | 
\rail@endbar  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
118  | 
\rail@bar  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
119  | 
\rail@nextbar{1}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
120  | 
\rail@nont{\hyperlink{syntax.target}{\mbox{\isa{target}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
121  | 
\rail@endbar  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
122  | 
\rail@nont{\hyperlink{syntax.text}{\mbox{\isa{text}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
123  | 
\rail@end  | 
| 42662 | 124  | 
\rail@begin{7}{}
 | 
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
125  | 
\rail@bar  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
126  | 
\rail@term{\hyperlink{command.header}{\mbox{\isa{\isacommand{header}}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
127  | 
\rail@nextbar{1}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
128  | 
\rail@term{\hyperlink{command.text-raw}{\mbox{\isa{\isacommand{text{\isaliteral{5F}{\isacharunderscore}}raw}}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
129  | 
\rail@nextbar{2}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
130  | 
\rail@term{\hyperlink{command.sect}{\mbox{\isa{\isacommand{sect}}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
131  | 
\rail@nextbar{3}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
132  | 
\rail@term{\hyperlink{command.subsect}{\mbox{\isa{\isacommand{subsect}}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
133  | 
\rail@nextbar{4}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
134  | 
\rail@term{\hyperlink{command.subsubsect}{\mbox{\isa{\isacommand{subsubsect}}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
135  | 
\rail@nextbar{5}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
136  | 
\rail@term{\hyperlink{command.txt}{\mbox{\isa{\isacommand{txt}}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
137  | 
\rail@nextbar{6}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
138  | 
\rail@term{\hyperlink{command.txt-raw}{\mbox{\isa{\isacommand{txt{\isaliteral{5F}{\isacharunderscore}}raw}}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
139  | 
\rail@endbar  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
140  | 
\rail@nont{\hyperlink{syntax.text}{\mbox{\isa{text}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
141  | 
\rail@end  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
142  | 
\end{railoutput}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
143  | 
|
| 27042 | 144  | 
|
| 28788 | 145  | 
  \begin{description}
 | 
| 27042 | 146  | 
|
| 28788 | 147  | 
  \item \hyperlink{command.header}{\mbox{\isa{\isacommand{header}}}} provides plain text markup just preceding
 | 
148  | 
  the formal beginning of a theory.  The corresponding {\LaTeX} macro
 | 
|
149  | 
  is \verb|\isamarkupheader|, which acts like \hyperlink{command.section}{\mbox{\isa{\isacommand{section}}}} by default.
 | 
|
| 27052 | 150  | 
|
| 28788 | 151  | 
  \item \hyperlink{command.chapter}{\mbox{\isa{\isacommand{chapter}}}}, \hyperlink{command.section}{\mbox{\isa{\isacommand{section}}}}, \hyperlink{command.subsection}{\mbox{\isa{\isacommand{subsection}}}},
 | 
152  | 
  and \hyperlink{command.subsubsection}{\mbox{\isa{\isacommand{subsubsection}}}} mark chapter and section headings
 | 
|
153  | 
within the main theory body or local theory targets. The  | 
|
154  | 
  corresponding {\LaTeX} macros are \verb|\isamarkupchapter|,
 | 
|
155  | 
\verb|\isamarkupsection|, \verb|\isamarkupsubsection| etc.  | 
|
| 27042 | 156  | 
|
| 28788 | 157  | 
  \item \hyperlink{command.sect}{\mbox{\isa{\isacommand{sect}}}}, \hyperlink{command.subsect}{\mbox{\isa{\isacommand{subsect}}}}, and \hyperlink{command.subsubsect}{\mbox{\isa{\isacommand{subsubsect}}}}
 | 
158  | 
  mark section headings within proofs.  The corresponding {\LaTeX}
 | 
|
159  | 
macros are \verb|\isamarkupsect|, \verb|\isamarkupsubsect| etc.  | 
|
| 27042 | 160  | 
|
| 28788 | 161  | 
  \item \hyperlink{command.text}{\mbox{\isa{\isacommand{text}}}} and \hyperlink{command.txt}{\mbox{\isa{\isacommand{txt}}}} specify paragraphs of plain
 | 
| 40406 | 162  | 
  text.  This corresponds to a {\LaTeX} environment \verb|\begin{isamarkuptext}| \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{5C3C646F74733E}{\isasymdots}}{\isaliteral{22}{\isachardoublequote}}} \verb|\end{isamarkuptext}| etc.
 | 
| 27042 | 163  | 
|
| 40406 | 164  | 
  \item \hyperlink{command.text-raw}{\mbox{\isa{\isacommand{text{\isaliteral{5F}{\isacharunderscore}}raw}}}} and \hyperlink{command.txt-raw}{\mbox{\isa{\isacommand{txt{\isaliteral{5F}{\isacharunderscore}}raw}}}} insert {\LaTeX}
 | 
| 28788 | 165  | 
source into the output, without additional markup. Thus the full  | 
166  | 
range of document manipulations becomes available, at the risk of  | 
|
167  | 
messing up document output.  | 
|
| 27042 | 168  | 
|
| 28788 | 169  | 
  \end{description}
 | 
| 27042 | 170  | 
|
| 40406 | 171  | 
  Except for \hyperlink{command.text-raw}{\mbox{\isa{\isacommand{text{\isaliteral{5F}{\isacharunderscore}}raw}}}} and \hyperlink{command.txt-raw}{\mbox{\isa{\isacommand{txt{\isaliteral{5F}{\isacharunderscore}}raw}}}}, the text
 | 
| 28788 | 172  | 
passed to any of the above markup commands may refer to formal  | 
173  | 
  entities via \emph{document antiquotations}, see also
 | 
|
174  | 
  \secref{sec:antiq}.  These are interpreted in the present theory or
 | 
|
| 40406 | 175  | 
  proof context, or the named \isa{{\isaliteral{22}{\isachardoublequote}}target{\isaliteral{22}{\isachardoublequote}}}.
 | 
| 27042 | 176  | 
|
177  | 
\medskip The proof markup commands closely resemble those for theory  | 
|
178  | 
specifications, but have a different formal status and produce  | 
|
| 28788 | 179  | 
  different {\LaTeX} macros.  The default definitions coincide for
 | 
180  | 
  analogous commands such as \hyperlink{command.section}{\mbox{\isa{\isacommand{section}}}} and \hyperlink{command.sect}{\mbox{\isa{\isacommand{sect}}}}.%
 | 
|
| 27042 | 181  | 
\end{isamarkuptext}%
 | 
182  | 
\isamarkuptrue%  | 
|
183  | 
%  | 
|
| 28788 | 184  | 
\isamarkupsection{Document Antiquotations \label{sec:antiq}%
 | 
| 27042 | 185  | 
}  | 
186  | 
\isamarkuptrue%  | 
|
187  | 
%  | 
|
188  | 
\begin{isamarkuptext}%
 | 
|
189  | 
\begin{matharray}{rcl}
 | 
|
| 28788 | 190  | 
    \indexdef{}{antiquotation}{theory}\hypertarget{antiquotation.theory}{\hyperlink{antiquotation.theory}{\mbox{\isa{theory}}}} & : & \isa{antiquotation} \\
 | 
191  | 
    \indexdef{}{antiquotation}{thm}\hypertarget{antiquotation.thm}{\hyperlink{antiquotation.thm}{\mbox{\isa{thm}}}} & : & \isa{antiquotation} \\
 | 
|
192  | 
    \indexdef{}{antiquotation}{lemma}\hypertarget{antiquotation.lemma}{\hyperlink{antiquotation.lemma}{\mbox{\isa{lemma}}}} & : & \isa{antiquotation} \\
 | 
|
193  | 
    \indexdef{}{antiquotation}{prop}\hypertarget{antiquotation.prop}{\hyperlink{antiquotation.prop}{\mbox{\isa{prop}}}} & : & \isa{antiquotation} \\
 | 
|
194  | 
    \indexdef{}{antiquotation}{term}\hypertarget{antiquotation.term}{\hyperlink{antiquotation.term}{\mbox{\isa{term}}}} & : & \isa{antiquotation} \\
 | 
|
| 40406 | 195  | 
    \indexdef{}{antiquotation}{term\_type}\hypertarget{antiquotation.term-type}{\hyperlink{antiquotation.term-type}{\mbox{\isa{term{\isaliteral{5F}{\isacharunderscore}}type}}}} & : & \isa{antiquotation} \\
 | 
| 
32898
 
e871d897969c
term styles also cover antiquotations term_type and typeof
 
haftmann 
parents: 
32893 
diff
changeset
 | 
196  | 
    \indexdef{}{antiquotation}{typeof}\hypertarget{antiquotation.typeof}{\hyperlink{antiquotation.typeof}{\mbox{\isa{typeof}}}} & : & \isa{antiquotation} \\
 | 
| 28788 | 197  | 
    \indexdef{}{antiquotation}{const}\hypertarget{antiquotation.const}{\hyperlink{antiquotation.const}{\mbox{\isa{const}}}} & : & \isa{antiquotation} \\
 | 
198  | 
    \indexdef{}{antiquotation}{abbrev}\hypertarget{antiquotation.abbrev}{\hyperlink{antiquotation.abbrev}{\mbox{\isa{abbrev}}}} & : & \isa{antiquotation} \\
 | 
|
199  | 
    \indexdef{}{antiquotation}{typ}\hypertarget{antiquotation.typ}{\hyperlink{antiquotation.typ}{\mbox{\isa{typ}}}} & : & \isa{antiquotation} \\
 | 
|
| 39437 | 200  | 
    \indexdef{}{antiquotation}{type}\hypertarget{antiquotation.type}{\hyperlink{antiquotation.type}{\mbox{\isa{type}}}} & : & \isa{antiquotation} \\
 | 
201  | 
    \indexdef{}{antiquotation}{class}\hypertarget{antiquotation.class}{\hyperlink{antiquotation.class}{\mbox{\isa{class}}}} & : & \isa{antiquotation} \\
 | 
|
| 28788 | 202  | 
    \indexdef{}{antiquotation}{text}\hypertarget{antiquotation.text}{\hyperlink{antiquotation.text}{\mbox{\isa{text}}}} & : & \isa{antiquotation} \\
 | 
203  | 
    \indexdef{}{antiquotation}{goals}\hypertarget{antiquotation.goals}{\hyperlink{antiquotation.goals}{\mbox{\isa{goals}}}} & : & \isa{antiquotation} \\
 | 
|
204  | 
    \indexdef{}{antiquotation}{subgoals}\hypertarget{antiquotation.subgoals}{\hyperlink{antiquotation.subgoals}{\mbox{\isa{subgoals}}}} & : & \isa{antiquotation} \\
 | 
|
205  | 
    \indexdef{}{antiquotation}{prf}\hypertarget{antiquotation.prf}{\hyperlink{antiquotation.prf}{\mbox{\isa{prf}}}} & : & \isa{antiquotation} \\
 | 
|
| 40406 | 206  | 
    \indexdef{}{antiquotation}{full\_prf}\hypertarget{antiquotation.full-prf}{\hyperlink{antiquotation.full-prf}{\mbox{\isa{full{\isaliteral{5F}{\isacharunderscore}}prf}}}} & : & \isa{antiquotation} \\
 | 
| 28788 | 207  | 
    \indexdef{}{antiquotation}{ML}\hypertarget{antiquotation.ML}{\hyperlink{antiquotation.ML}{\mbox{\isa{ML}}}} & : & \isa{antiquotation} \\
 | 
| 46261 | 208  | 
    \indexdef{}{antiquotation}{ML\_op}\hypertarget{antiquotation.ML-op}{\hyperlink{antiquotation.ML-op}{\mbox{\isa{ML{\isaliteral{5F}{\isacharunderscore}}op}}}} & : & \isa{antiquotation} \\
 | 
| 40406 | 209  | 
    \indexdef{}{antiquotation}{ML\_type}\hypertarget{antiquotation.ML-type}{\hyperlink{antiquotation.ML-type}{\mbox{\isa{ML{\isaliteral{5F}{\isacharunderscore}}type}}}} & : & \isa{antiquotation} \\
 | 
210  | 
    \indexdef{}{antiquotation}{ML\_struct}\hypertarget{antiquotation.ML-struct}{\hyperlink{antiquotation.ML-struct}{\mbox{\isa{ML{\isaliteral{5F}{\isacharunderscore}}struct}}}} & : & \isa{antiquotation} \\
 | 
|
| 40802 | 211  | 
    \indexdef{}{antiquotation}{file}\hypertarget{antiquotation.file}{\hyperlink{antiquotation.file}{\mbox{\isa{file}}}} & : & \isa{antiquotation} \\
 | 
| 27042 | 212  | 
  \end{matharray}
 | 
213  | 
||
| 28788 | 214  | 
The overall content of an Isabelle/Isar theory may alternate between  | 
215  | 
formal and informal text. The main body consists of formal  | 
|
216  | 
specification and proof commands, interspersed with markup commands  | 
|
217  | 
  (\secref{sec:markup}) or document comments (\secref{sec:comments}).
 | 
|
218  | 
The argument of markup commands quotes informal text to be printed  | 
|
219  | 
in the resulting document, but may again refer to formal entities  | 
|
220  | 
  via \emph{document antiquotations}.
 | 
|
| 27042 | 221  | 
|
| 40406 | 222  | 
  For example, embedding of ``\isa{{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}term\ {\isaliteral{5B}{\isacharbrackleft}}show{\isaliteral{5F}{\isacharunderscore}}types{\isaliteral{5D}{\isacharbrackright}}\ {\isaliteral{22}{\isachardoublequote}}f\ x\ {\isaliteral{3D}{\isacharequal}}\ a\ {\isaliteral{2B}{\isacharplus}}\ x{\isaliteral{22}{\isachardoublequote}}{\isaliteral{7D}{\isacharbraceright}}}''
 | 
| 28788 | 223  | 
within a text block makes  | 
224  | 
  \isa{{\isacharparenleft}f{\isasymColon}{\isacharprime}a\ {\isasymRightarrow}\ {\isacharprime}a{\isacharparenright}\ {\isacharparenleft}x{\isasymColon}{\isacharprime}a{\isacharparenright}\ {\isacharequal}\ {\isacharparenleft}a{\isasymColon}{\isacharprime}a{\isacharparenright}\ {\isacharplus}\ x} appear in the final {\LaTeX} document.
 | 
|
225  | 
||
226  | 
Antiquotations usually spare the author tedious typing of logical  | 
|
227  | 
entities in full detail. Even more importantly, some degree of  | 
|
228  | 
consistency-checking between the main body of formal text and its  | 
|
229  | 
informal explanation is achieved, since terms and types appearing in  | 
|
230  | 
antiquotations are checked within the current theory or proof  | 
|
231  | 
context.  | 
|
| 27042 | 232  | 
|
| 43618 | 233  | 
%% FIXME less monolithic presentation, move to individual sections!?  | 
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
234  | 
  \begin{railoutput}
 | 
| 42662 | 235  | 
\rail@begin{1}{}
 | 
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
236  | 
\rail@term{\isa{{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
237  | 
\rail@nont{\isa{antiquotation}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
238  | 
\rail@term{\isa{{\isaliteral{7D}{\isacharbraceright}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
239  | 
\rail@end  | 
| 46261 | 240  | 
\rail@begin{15}{\indexdef{}{syntax}{antiquotation}\hypertarget{syntax.antiquotation}{\hyperlink{syntax.antiquotation}{\mbox{\isa{antiquotation}}}}}
 | 
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
241  | 
\rail@bar  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
242  | 
\rail@term{\hyperlink{antiquotation.theory}{\mbox{\isa{theory}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
243  | 
\rail@nont{\isa{options}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
244  | 
\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
245  | 
\rail@nextbar{1}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
246  | 
\rail@term{\hyperlink{antiquotation.thm}{\mbox{\isa{thm}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
247  | 
\rail@nont{\isa{options}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
248  | 
\rail@nont{\isa{styles}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
249  | 
\rail@nont{\hyperlink{syntax.thmrefs}{\mbox{\isa{thmrefs}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
250  | 
\rail@nextbar{2}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
251  | 
\rail@term{\hyperlink{antiquotation.lemma}{\mbox{\isa{lemma}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
252  | 
\rail@nont{\isa{options}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
253  | 
\rail@nont{\hyperlink{syntax.prop}{\mbox{\isa{prop}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
254  | 
\rail@term{\isa{\isakeyword{by}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
255  | 
\rail@nont{\hyperlink{syntax.method}{\mbox{\isa{method}}}}[]
 | 
| 42617 | 256  | 
\rail@bar  | 
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
257  | 
\rail@nextbar{3}
 | 
| 42617 | 258  | 
\rail@nont{\hyperlink{syntax.method}{\mbox{\isa{method}}}}[]
 | 
259  | 
\rail@endbar  | 
|
260  | 
\rail@nextbar{4}
 | 
|
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
261  | 
\rail@term{\hyperlink{antiquotation.prop}{\mbox{\isa{prop}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
262  | 
\rail@nont{\isa{options}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
263  | 
\rail@nont{\isa{styles}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
264  | 
\rail@nont{\hyperlink{syntax.prop}{\mbox{\isa{prop}}}}[]
 | 
| 42617 | 265  | 
\rail@nextbar{5}
 | 
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
266  | 
\rail@term{\hyperlink{antiquotation.term}{\mbox{\isa{term}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
267  | 
\rail@nont{\isa{options}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
268  | 
\rail@nont{\isa{styles}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
269  | 
\rail@nont{\hyperlink{syntax.term}{\mbox{\isa{term}}}}[]
 | 
| 42617 | 270  | 
\rail@nextbar{6}
 | 
| 43618 | 271  | 
\rail@term{\hyperlink{antiquotation.HOL.value}{\mbox{\isa{value}}}}[]
 | 
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
272  | 
\rail@nont{\isa{options}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
273  | 
\rail@nont{\isa{styles}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
274  | 
\rail@nont{\hyperlink{syntax.term}{\mbox{\isa{term}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
275  | 
\rail@nextbar{7}
 | 
| 
43613
 
7afbaf5a406b
adding a minimalistic documentation of the value antiquotation in the Isar reference manual
 
bulwahn 
parents: 
42936 
diff
changeset
 | 
276  | 
\rail@term{\hyperlink{antiquotation.term-type}{\mbox{\isa{term{\isaliteral{5F}{\isacharunderscore}}type}}}}[]
 | 
| 42617 | 277  | 
\rail@nont{\isa{options}}[]
 | 
278  | 
\rail@nont{\isa{styles}}[]
 | 
|
279  | 
\rail@nont{\hyperlink{syntax.term}{\mbox{\isa{term}}}}[]
 | 
|
280  | 
\rail@nextbar{8}
 | 
|
| 
43613
 
7afbaf5a406b
adding a minimalistic documentation of the value antiquotation in the Isar reference manual
 
bulwahn 
parents: 
42936 
diff
changeset
 | 
281  | 
\rail@term{\hyperlink{antiquotation.typeof}{\mbox{\isa{typeof}}}}[]
 | 
| 
 
7afbaf5a406b
adding a minimalistic documentation of the value antiquotation in the Isar reference manual
 
bulwahn 
parents: 
42936 
diff
changeset
 | 
282  | 
\rail@nont{\isa{options}}[]
 | 
| 
 
7afbaf5a406b
adding a minimalistic documentation of the value antiquotation in the Isar reference manual
 
bulwahn 
parents: 
42936 
diff
changeset
 | 
283  | 
\rail@nont{\isa{styles}}[]
 | 
| 
 
7afbaf5a406b
adding a minimalistic documentation of the value antiquotation in the Isar reference manual
 
bulwahn 
parents: 
42936 
diff
changeset
 | 
284  | 
\rail@nont{\hyperlink{syntax.term}{\mbox{\isa{term}}}}[]
 | 
| 
 
7afbaf5a406b
adding a minimalistic documentation of the value antiquotation in the Isar reference manual
 
bulwahn 
parents: 
42936 
diff
changeset
 | 
285  | 
\rail@nextbar{9}
 | 
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
286  | 
\rail@term{\hyperlink{antiquotation.const}{\mbox{\isa{const}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
287  | 
\rail@nont{\isa{options}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
288  | 
\rail@nont{\hyperlink{syntax.term}{\mbox{\isa{term}}}}[]
 | 
| 
43613
 
7afbaf5a406b
adding a minimalistic documentation of the value antiquotation in the Isar reference manual
 
bulwahn 
parents: 
42936 
diff
changeset
 | 
289  | 
\rail@nextbar{10}
 | 
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
290  | 
\rail@term{\hyperlink{antiquotation.abbrev}{\mbox{\isa{abbrev}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
291  | 
\rail@nont{\isa{options}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
292  | 
\rail@nont{\hyperlink{syntax.term}{\mbox{\isa{term}}}}[]
 | 
| 
43613
 
7afbaf5a406b
adding a minimalistic documentation of the value antiquotation in the Isar reference manual
 
bulwahn 
parents: 
42936 
diff
changeset
 | 
293  | 
\rail@nextbar{11}
 | 
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
294  | 
\rail@term{\hyperlink{antiquotation.typ}{\mbox{\isa{typ}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
295  | 
\rail@nont{\isa{options}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
296  | 
\rail@nont{\hyperlink{syntax.type}{\mbox{\isa{type}}}}[]
 | 
| 
43613
 
7afbaf5a406b
adding a minimalistic documentation of the value antiquotation in the Isar reference manual
 
bulwahn 
parents: 
42936 
diff
changeset
 | 
297  | 
\rail@nextbar{12}
 | 
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
298  | 
\rail@term{\hyperlink{antiquotation.type}{\mbox{\isa{type}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
299  | 
\rail@nont{\isa{options}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
300  | 
\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
 | 
| 
43613
 
7afbaf5a406b
adding a minimalistic documentation of the value antiquotation in the Isar reference manual
 
bulwahn 
parents: 
42936 
diff
changeset
 | 
301  | 
\rail@nextbar{13}
 | 
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
302  | 
\rail@term{\hyperlink{antiquotation.class}{\mbox{\isa{class}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
303  | 
\rail@nont{\isa{options}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
304  | 
\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
 | 
| 42617 | 305  | 
\rail@nextbar{14}
 | 
| 
43613
 
7afbaf5a406b
adding a minimalistic documentation of the value antiquotation in the Isar reference manual
 
bulwahn 
parents: 
42936 
diff
changeset
 | 
306  | 
\rail@term{\hyperlink{antiquotation.text}{\mbox{\isa{text}}}}[]
 | 
| 
 
7afbaf5a406b
adding a minimalistic documentation of the value antiquotation in the Isar reference manual
 
bulwahn 
parents: 
42936 
diff
changeset
 | 
307  | 
\rail@nont{\isa{options}}[]
 | 
| 
 
7afbaf5a406b
adding a minimalistic documentation of the value antiquotation in the Isar reference manual
 
bulwahn 
parents: 
42936 
diff
changeset
 | 
308  | 
\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
 | 
| 46261 | 309  | 
\rail@endbar  | 
310  | 
\rail@end  | 
|
311  | 
\rail@begin{9}{\hyperlink{syntax.antiquotation}{\mbox{\isa{antiquotation}}}}
 | 
|
312  | 
\rail@bar  | 
|
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
313  | 
\rail@term{\hyperlink{antiquotation.goals}{\mbox{\isa{goals}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
314  | 
\rail@nont{\isa{options}}[]
 | 
| 46261 | 315  | 
\rail@nextbar{1}
 | 
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
316  | 
\rail@term{\hyperlink{antiquotation.subgoals}{\mbox{\isa{subgoals}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
317  | 
\rail@nont{\isa{options}}[]
 | 
| 46261 | 318  | 
\rail@nextbar{2}
 | 
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
319  | 
\rail@term{\hyperlink{antiquotation.prf}{\mbox{\isa{prf}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
320  | 
\rail@nont{\isa{options}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
321  | 
\rail@nont{\hyperlink{syntax.thmrefs}{\mbox{\isa{thmrefs}}}}[]
 | 
| 46261 | 322  | 
\rail@nextbar{3}
 | 
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
323  | 
\rail@term{\hyperlink{antiquotation.full-prf}{\mbox{\isa{full{\isaliteral{5F}{\isacharunderscore}}prf}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
324  | 
\rail@nont{\isa{options}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
325  | 
\rail@nont{\hyperlink{syntax.thmrefs}{\mbox{\isa{thmrefs}}}}[]
 | 
| 46261 | 326  | 
\rail@nextbar{4}
 | 
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
327  | 
\rail@term{\hyperlink{antiquotation.ML}{\mbox{\isa{ML}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
328  | 
\rail@nont{\isa{options}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
329  | 
\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
 | 
| 46261 | 330  | 
\rail@nextbar{5}
 | 
331  | 
\rail@term{\hyperlink{antiquotation.ML-op}{\mbox{\isa{ML{\isaliteral{5F}{\isacharunderscore}}op}}}}[]
 | 
|
332  | 
\rail@nont{\isa{options}}[]
 | 
|
333  | 
\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
 | 
|
334  | 
\rail@nextbar{6}
 | 
|
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
335  | 
\rail@term{\hyperlink{antiquotation.ML-type}{\mbox{\isa{ML{\isaliteral{5F}{\isacharunderscore}}type}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
336  | 
\rail@nont{\isa{options}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
337  | 
\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
 | 
| 46261 | 338  | 
\rail@nextbar{7}
 | 
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
339  | 
\rail@term{\hyperlink{antiquotation.ML-struct}{\mbox{\isa{ML{\isaliteral{5F}{\isacharunderscore}}struct}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
340  | 
\rail@nont{\isa{options}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
341  | 
\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
 | 
| 46261 | 342  | 
\rail@nextbar{8}
 | 
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
343  | 
\rail@term{\hyperlink{antiquotation.file}{\mbox{\isa{file}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
344  | 
\rail@nont{\isa{options}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
345  | 
\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
346  | 
\rail@endbar  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
347  | 
\rail@end  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
348  | 
\rail@begin{3}{\isa{options}}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
349  | 
\rail@term{\isa{{\isaliteral{5B}{\isacharbrackleft}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
350  | 
\rail@bar  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
351  | 
\rail@nextbar{1}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
352  | 
\rail@plus  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
353  | 
\rail@nont{\isa{option}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
354  | 
\rail@nextplus{2}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
355  | 
\rail@cterm{\isa{{\isaliteral{2C}{\isacharcomma}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
356  | 
\rail@endplus  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
357  | 
\rail@endbar  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
358  | 
\rail@term{\isa{{\isaliteral{5D}{\isacharbrackright}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
359  | 
\rail@end  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
360  | 
\rail@begin{2}{\isa{option}}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
361  | 
\rail@bar  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
362  | 
\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
363  | 
\rail@nextbar{1}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
364  | 
\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
365  | 
\rail@term{\isa{{\isaliteral{3D}{\isacharequal}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
366  | 
\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
367  | 
\rail@endbar  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
368  | 
\rail@end  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
369  | 
\rail@begin{2}{\isa{styles}}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
370  | 
\rail@term{\isa{{\isaliteral{28}{\isacharparenleft}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
371  | 
\rail@plus  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
372  | 
\rail@nont{\isa{style}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
373  | 
\rail@nextplus{1}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
374  | 
\rail@cterm{\isa{{\isaliteral{2C}{\isacharcomma}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
375  | 
\rail@endplus  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
376  | 
\rail@term{\isa{{\isaliteral{29}{\isacharparenright}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
377  | 
\rail@end  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
378  | 
\rail@begin{2}{\isa{style}}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
379  | 
\rail@plus  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
380  | 
\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
381  | 
\rail@nextplus{1}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
382  | 
\rail@endplus  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
383  | 
\rail@end  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
384  | 
\end{railoutput}
 | 
| 42617 | 385  | 
|
| 27042 | 386  | 
|
387  | 
  Note that the syntax of antiquotations may \emph{not} include source
 | 
|
| 40406 | 388  | 
  comments \verb|(*|~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{5C3C646F74733E}{\isasymdots}}{\isaliteral{22}{\isachardoublequote}}}~\verb|*)| nor verbatim
 | 
389  | 
  text \verb|{|\verb|*|~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{5C3C646F74733E}{\isasymdots}}{\isaliteral{22}{\isachardoublequote}}}~\verb|*|\verb|}|.
 | 
|
| 27042 | 390  | 
|
| 28788 | 391  | 
  \begin{description}
 | 
| 27042 | 392  | 
|
| 40406 | 393  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}theory\ A{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}} prints the name \isa{{\isaliteral{22}{\isachardoublequote}}A{\isaliteral{22}{\isachardoublequote}}}, which is
 | 
| 27042 | 394  | 
guaranteed to refer to a valid ancestor theory in the current  | 
395  | 
context.  | 
|
396  | 
||
| 40406 | 397  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}thm\ a\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}\ a\isaliteral{5C3C5E7375623E}{}\isactrlsub n{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}} prints theorems \isa{{\isaliteral{22}{\isachardoublequote}}a\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}\ a\isaliteral{5C3C5E7375623E}{}\isactrlsub n{\isaliteral{22}{\isachardoublequote}}}.
 | 
| 28788 | 398  | 
Full fact expressions are allowed here, including attributes  | 
399  | 
  (\secref{sec:syn-att}).
 | 
|
400  | 
||
| 40406 | 401  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}prop\ {\isaliteral{5C3C7068693E}{\isasymphi}}{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}} prints a well-typed proposition \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{5C3C7068693E}{\isasymphi}}{\isaliteral{22}{\isachardoublequote}}}.
 | 
| 27042 | 402  | 
|
| 40406 | 403  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}lemma\ {\isaliteral{5C3C7068693E}{\isasymphi}}\ by\ m{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}} proves a well-typed proposition
 | 
404  | 
  \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{5C3C7068693E}{\isasymphi}}{\isaliteral{22}{\isachardoublequote}}} by method \isa{m} and prints the original \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{5C3C7068693E}{\isasymphi}}{\isaliteral{22}{\isachardoublequote}}}.
 | 
|
| 27453 | 405  | 
|
| 40406 | 406  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}term\ t{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}} prints a well-typed term \isa{{\isaliteral{22}{\isachardoublequote}}t{\isaliteral{22}{\isachardoublequote}}}.
 | 
| 
43613
 
7afbaf5a406b
adding a minimalistic documentation of the value antiquotation in the Isar reference manual
 
bulwahn 
parents: 
42936 
diff
changeset
 | 
407  | 
|
| 43618 | 408  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}value\ t{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}} evaluates a term \isa{{\isaliteral{22}{\isachardoublequote}}t{\isaliteral{22}{\isachardoublequote}}} and prints
 | 
409  | 
  its result, see also \indexref{HOL}{command}{value}\hyperlink{command.HOL.value}{\mbox{\isa{\isacommand{value}}}}.
 | 
|
| 27042 | 410  | 
|
| 40406 | 411  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}term{\isaliteral{5F}{\isacharunderscore}}type\ t{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}} prints a well-typed term \isa{{\isaliteral{22}{\isachardoublequote}}t{\isaliteral{22}{\isachardoublequote}}}
 | 
| 
32898
 
e871d897969c
term styles also cover antiquotations term_type and typeof
 
haftmann 
parents: 
32893 
diff
changeset
 | 
412  | 
annotated with its type.  | 
| 
 
e871d897969c
term styles also cover antiquotations term_type and typeof
 
haftmann 
parents: 
32893 
diff
changeset
 | 
413  | 
|
| 40406 | 414  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}typeof\ t{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}} prints the type of a well-typed term
 | 
415  | 
  \isa{{\isaliteral{22}{\isachardoublequote}}t{\isaliteral{22}{\isachardoublequote}}}.
 | 
|
| 
32898
 
e871d897969c
term styles also cover antiquotations term_type and typeof
 
haftmann 
parents: 
32893 
diff
changeset
 | 
416  | 
|
| 40406 | 417  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}const\ c{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}} prints a logical or syntactic constant
 | 
418  | 
  \isa{{\isaliteral{22}{\isachardoublequote}}c{\isaliteral{22}{\isachardoublequote}}}.
 | 
|
| 27042 | 419  | 
|
| 40406 | 420  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}abbrev\ c\ x\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}\ x\isaliteral{5C3C5E7375623E}{}\isactrlsub n{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}} prints a constant abbreviation
 | 
421  | 
  \isa{{\isaliteral{22}{\isachardoublequote}}c\ x\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}\ x\isaliteral{5C3C5E7375623E}{}\isactrlsub n\ {\isaliteral{5C3C65717569763E}{\isasymequiv}}\ rhs{\isaliteral{22}{\isachardoublequote}}} as defined in the current context.
 | 
|
| 39437 | 422  | 
|
| 40406 | 423  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}typ\ {\isaliteral{5C3C7461753E}{\isasymtau}}{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}} prints a well-formed type \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{5C3C7461753E}{\isasymtau}}{\isaliteral{22}{\isachardoublequote}}}.
 | 
| 39437 | 424  | 
|
| 40406 | 425  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}type\ {\isaliteral{5C3C6B617070613E}{\isasymkappa}}{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}} prints a (logical or syntactic) type
 | 
426  | 
    constructor \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{5C3C6B617070613E}{\isasymkappa}}{\isaliteral{22}{\isachardoublequote}}}.
 | 
|
| 39437 | 427  | 
|
| 40406 | 428  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}class\ c{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}} prints a class \isa{c}.
 | 
| 39437 | 429  | 
|
| 40406 | 430  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}text\ s{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}} prints uninterpreted source text \isa{s}.  This is particularly useful to print portions of text according
 | 
| 28788 | 431  | 
to the Isabelle document style, without demanding well-formedness,  | 
432  | 
e.g.\ small pieces of terms that should not be parsed or  | 
|
433  | 
type-checked yet.  | 
|
| 27042 | 434  | 
|
| 40406 | 435  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}goals{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}} prints the current \emph{dynamic} goal
 | 
| 27042 | 436  | 
state. This is mainly for support of tactic-emulation scripts  | 
| 28788 | 437  | 
within Isar. Presentation of goal states does not conform to the  | 
438  | 
idea of human-readable proof documents!  | 
|
| 27042 | 439  | 
|
| 28788 | 440  | 
When explaining proofs in detail it is usually better to spell out  | 
441  | 
the reasoning via proper Isar proof commands, instead of peeking at  | 
|
442  | 
the internal machine configuration.  | 
|
| 27042 | 443  | 
|
| 40406 | 444  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}subgoals{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}} is similar to \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}goals{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}}, but
 | 
| 27042 | 445  | 
does not print the main goal.  | 
446  | 
||
| 40406 | 447  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}prf\ a\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}\ a\isaliteral{5C3C5E7375623E}{}\isactrlsub n{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}} prints the (compact) proof terms
 | 
448  | 
  corresponding to the theorems \isa{{\isaliteral{22}{\isachardoublequote}}a\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}\ a\isaliteral{5C3C5E7375623E}{}\isactrlsub n{\isaliteral{22}{\isachardoublequote}}}. Note that this
 | 
|
| 28788 | 449  | 
requires proof terms to be switched on for the current logic  | 
450  | 
session.  | 
|
| 27042 | 451  | 
|
| 40406 | 452  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}full{\isaliteral{5F}{\isacharunderscore}}prf\ a\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}\ a\isaliteral{5C3C5E7375623E}{}\isactrlsub n{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}} is like \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}prf\ a\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}\ a\isaliteral{5C3C5E7375623E}{}\isactrlsub n{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}}, but prints the full proof terms, i.e.\ also displays
 | 
| 28788 | 453  | 
information omitted in the compact proof term, which is denoted by  | 
| 40406 | 454  | 
  ``\isa{{\isaliteral{5F}{\isacharunderscore}}}'' placeholders there.
 | 
| 27042 | 455  | 
|
| 46261 | 456  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}ML\ s{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}}, \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}ML{\isaliteral{5F}{\isacharunderscore}}op\ s{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}}, \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}ML{\isaliteral{5F}{\isacharunderscore}}type\ s{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}}, and \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}ML{\isaliteral{5F}{\isacharunderscore}}struct\ s{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}} check text \isa{s} as ML value,
 | 
457  | 
infix operator, type, and structure, respectively. The source is  | 
|
458  | 
printed verbatim.  | 
|
| 27042 | 459  | 
|
| 40802 | 460  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{40}{\isacharat}}{\isaliteral{7B}{\isacharbraceleft}}file\ path{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{22}{\isachardoublequote}}} checks that \isa{{\isaliteral{22}{\isachardoublequote}}path{\isaliteral{22}{\isachardoublequote}}} refers to a
 | 
461  | 
file (or directory) and prints it verbatim.  | 
|
462  | 
||
| 28788 | 463  | 
  \end{description}%
 | 
464  | 
\end{isamarkuptext}%
 | 
|
465  | 
\isamarkuptrue%  | 
|
466  | 
%  | 
|
| 42936 | 467  | 
\isamarkupsubsection{Styled antiquotations%
 | 
| 28788 | 468  | 
}  | 
469  | 
\isamarkuptrue%  | 
|
470  | 
%  | 
|
471  | 
\begin{isamarkuptext}%
 | 
|
| 32893 | 472  | 
The antiquotations \isa{thm}, \isa{prop} and \isa{term} admit an extra \emph{style} specification to modify the
 | 
473  | 
printed result. A style is specified by a name with a possibly  | 
|
474  | 
empty number of arguments; multiple styles can be sequenced with  | 
|
475  | 
commas. The following standard styles are available:  | 
|
| 27042 | 476  | 
|
| 28788 | 477  | 
  \begin{description}
 | 
| 27042 | 478  | 
|
| 28788 | 479  | 
  \item \isa{lhs} extracts the first argument of any application
 | 
480  | 
form with at least two arguments --- typically meta-level or  | 
|
| 27042 | 481  | 
object-level equality, or any other binary relation.  | 
482  | 
||
| 28788 | 483  | 
  \item \isa{rhs} is like \isa{lhs}, but extracts the second
 | 
| 27042 | 484  | 
argument.  | 
485  | 
||
| 40406 | 486  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}concl{\isaliteral{22}{\isachardoublequote}}} extracts the conclusion \isa{C} from a rule
 | 
487  | 
  in Horn-clause normal form \isa{{\isaliteral{22}{\isachardoublequote}}A\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}\ {\isaliteral{5C3C4C6F6E6772696768746172726F773E}{\isasymLongrightarrow}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}\ A\isaliteral{5C3C5E7375623E}{}\isactrlsub n\ {\isaliteral{5C3C4C6F6E6772696768746172726F773E}{\isasymLongrightarrow}}\ C{\isaliteral{22}{\isachardoublequote}}}.
 | 
|
| 27042 | 488  | 
|
| 40406 | 489  | 
  \item \isa{{\isaliteral{22}{\isachardoublequote}}prem{\isaliteral{22}{\isachardoublequote}}} \isa{n} extract premise number
 | 
490  | 
  \isa{{\isaliteral{22}{\isachardoublequote}}n{\isaliteral{22}{\isachardoublequote}}} from from a rule in Horn-clause
 | 
|
491  | 
  normal form \isa{{\isaliteral{22}{\isachardoublequote}}A\isaliteral{5C3C5E7375623E}{}\isactrlsub {\isadigit{1}}\ {\isaliteral{5C3C4C6F6E6772696768746172726F773E}{\isasymLongrightarrow}}\ {\isaliteral{5C3C646F74733E}{\isasymdots}}\ A\isaliteral{5C3C5E7375623E}{}\isactrlsub n\ {\isaliteral{5C3C4C6F6E6772696768746172726F773E}{\isasymLongrightarrow}}\ C{\isaliteral{22}{\isachardoublequote}}}
 | 
|
| 27042 | 492  | 
|
| 28788 | 493  | 
  \end{description}%
 | 
494  | 
\end{isamarkuptext}%
 | 
|
495  | 
\isamarkuptrue%  | 
|
496  | 
%  | 
|
| 42936 | 497  | 
\isamarkupsubsection{General options%
 | 
| 28788 | 498  | 
}  | 
499  | 
\isamarkuptrue%  | 
|
500  | 
%  | 
|
501  | 
\begin{isamarkuptext}%
 | 
|
502  | 
The following options are available to tune the printed output  | 
|
503  | 
of antiquotations. Note that many of these coincide with global ML  | 
|
504  | 
flags of the same names.  | 
|
| 27042 | 505  | 
|
| 28788 | 506  | 
  \begin{description}
 | 
| 27042 | 507  | 
|
| 40406 | 508  | 
  \item \indexdef{}{antiquotation option}{show\_types}\hypertarget{antiquotation option.show-types}{\hyperlink{antiquotation option.show-types}{\mbox{\isa{show{\isaliteral{5F}{\isacharunderscore}}types}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3D}{\isacharequal}}\ bool{\isaliteral{22}{\isachardoublequote}}} and
 | 
509  | 
  \indexdef{}{antiquotation option}{show\_sorts}\hypertarget{antiquotation option.show-sorts}{\hyperlink{antiquotation option.show-sorts}{\mbox{\isa{show{\isaliteral{5F}{\isacharunderscore}}sorts}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3D}{\isacharequal}}\ bool{\isaliteral{22}{\isachardoublequote}}} control
 | 
|
| 30397 | 510  | 
printing of explicit type and sort constraints.  | 
| 27042 | 511  | 
|
| 40406 | 512  | 
  \item \indexdef{}{antiquotation option}{show\_structs}\hypertarget{antiquotation option.show-structs}{\hyperlink{antiquotation option.show-structs}{\mbox{\isa{show{\isaliteral{5F}{\isacharunderscore}}structs}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3D}{\isacharequal}}\ bool{\isaliteral{22}{\isachardoublequote}}}
 | 
| 30397 | 513  | 
controls printing of implicit structures.  | 
| 27042 | 514  | 
|
| 
40879
 
ca132ef44944
configuration option "show_abbrevs" supersedes print mode "no_abbrevs", with inverted meaning;
 
wenzelm 
parents: 
40802 
diff
changeset
 | 
515  | 
  \item \indexdef{}{antiquotation option}{show\_abbrevs}\hypertarget{antiquotation option.show-abbrevs}{\hyperlink{antiquotation option.show-abbrevs}{\mbox{\isa{show{\isaliteral{5F}{\isacharunderscore}}abbrevs}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3D}{\isacharequal}}\ bool{\isaliteral{22}{\isachardoublequote}}}
 | 
| 
 
ca132ef44944
configuration option "show_abbrevs" supersedes print mode "no_abbrevs", with inverted meaning;
 
wenzelm 
parents: 
40802 
diff
changeset
 | 
516  | 
controls folding of abbreviations.  | 
| 
 
ca132ef44944
configuration option "show_abbrevs" supersedes print mode "no_abbrevs", with inverted meaning;
 
wenzelm 
parents: 
40802 
diff
changeset
 | 
517  | 
|
| 
42669
 
04dfffda5671
more conventional naming scheme: names_long, names_short, names_unique;
 
wenzelm 
parents: 
42662 
diff
changeset
 | 
518  | 
  \item \indexdef{}{antiquotation option}{names\_long}\hypertarget{antiquotation option.names-long}{\hyperlink{antiquotation option.names-long}{\mbox{\isa{names{\isaliteral{5F}{\isacharunderscore}}long}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3D}{\isacharequal}}\ bool{\isaliteral{22}{\isachardoublequote}}} forces
 | 
| 30397 | 519  | 
names of types and constants etc.\ to be printed in their fully  | 
520  | 
qualified internal form.  | 
|
| 27042 | 521  | 
|
| 
42669
 
04dfffda5671
more conventional naming scheme: names_long, names_short, names_unique;
 
wenzelm 
parents: 
42662 
diff
changeset
 | 
522  | 
  \item \indexdef{}{antiquotation option}{names\_short}\hypertarget{antiquotation option.names-short}{\hyperlink{antiquotation option.names-short}{\mbox{\isa{names{\isaliteral{5F}{\isacharunderscore}}short}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3D}{\isacharequal}}\ bool{\isaliteral{22}{\isachardoublequote}}}
 | 
| 30397 | 523  | 
forces names of types and constants etc.\ to be printed unqualified.  | 
524  | 
Note that internalizing the output again in the current context may  | 
|
525  | 
well yield a different result.  | 
|
| 27042 | 526  | 
|
| 
42669
 
04dfffda5671
more conventional naming scheme: names_long, names_short, names_unique;
 
wenzelm 
parents: 
42662 
diff
changeset
 | 
527  | 
  \item \indexdef{}{antiquotation option}{names\_unique}\hypertarget{antiquotation option.names-unique}{\hyperlink{antiquotation option.names-unique}{\mbox{\isa{names{\isaliteral{5F}{\isacharunderscore}}unique}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3D}{\isacharequal}}\ bool{\isaliteral{22}{\isachardoublequote}}}
 | 
| 30397 | 528  | 
determines whether the printed version of qualified names should be  | 
529  | 
made sufficiently long to avoid overlap with names declared further  | 
|
530  | 
  back.  Set to \isa{false} for more concise output.
 | 
|
| 27042 | 531  | 
|
| 40406 | 532  | 
  \item \indexdef{}{antiquotation option}{eta\_contract}\hypertarget{antiquotation option.eta-contract}{\hyperlink{antiquotation option.eta-contract}{\mbox{\isa{eta{\isaliteral{5F}{\isacharunderscore}}contract}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3D}{\isacharequal}}\ bool{\isaliteral{22}{\isachardoublequote}}}
 | 
533  | 
  prints terms in \isa{{\isaliteral{5C3C6574613E}{\isasymeta}}}-contracted form.
 | 
|
| 27042 | 534  | 
|
| 40406 | 535  | 
  \item \indexdef{}{antiquotation option}{display}\hypertarget{antiquotation option.display}{\hyperlink{antiquotation option.display}{\mbox{\isa{display}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3D}{\isacharequal}}\ bool{\isaliteral{22}{\isachardoublequote}}} indicates
 | 
| 30397 | 536  | 
if the text is to be output as multi-line ``display material'',  | 
537  | 
rather than a small piece of text without line breaks (which is the  | 
|
538  | 
default).  | 
|
| 27042 | 539  | 
|
| 28788 | 540  | 
In this mode the embedded entities are printed in the same style as  | 
541  | 
the main theory text.  | 
|
542  | 
||
| 40406 | 543  | 
  \item \indexdef{}{antiquotation option}{break}\hypertarget{antiquotation option.break}{\hyperlink{antiquotation option.break}{\mbox{\isa{break}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3D}{\isacharequal}}\ bool{\isaliteral{22}{\isachardoublequote}}} controls
 | 
| 30397 | 544  | 
line breaks in non-display material.  | 
| 27042 | 545  | 
|
| 40406 | 546  | 
  \item \indexdef{}{antiquotation option}{quotes}\hypertarget{antiquotation option.quotes}{\hyperlink{antiquotation option.quotes}{\mbox{\isa{quotes}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3D}{\isacharequal}}\ bool{\isaliteral{22}{\isachardoublequote}}} indicates
 | 
| 30397 | 547  | 
if the output should be enclosed in double quotes.  | 
| 27042 | 548  | 
|
| 40406 | 549  | 
  \item \indexdef{}{antiquotation option}{mode}\hypertarget{antiquotation option.mode}{\hyperlink{antiquotation option.mode}{\mbox{\isa{mode}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3D}{\isacharequal}}\ name{\isaliteral{22}{\isachardoublequote}}} adds \isa{name} to the print mode to be used for presentation.  Note that the
 | 
| 30397 | 550  | 
  standard setup for {\LaTeX} output is already present by default,
 | 
551  | 
  including the modes \isa{latex} and \isa{xsymbols}.
 | 
|
| 27042 | 552  | 
|
| 40406 | 553  | 
  \item \indexdef{}{antiquotation option}{margin}\hypertarget{antiquotation option.margin}{\hyperlink{antiquotation option.margin}{\mbox{\isa{margin}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3D}{\isacharequal}}\ nat{\isaliteral{22}{\isachardoublequote}}} and
 | 
554  | 
  \indexdef{}{antiquotation option}{indent}\hypertarget{antiquotation option.indent}{\hyperlink{antiquotation option.indent}{\mbox{\isa{indent}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3D}{\isacharequal}}\ nat{\isaliteral{22}{\isachardoublequote}}} change the margin
 | 
|
| 30397 | 555  | 
or indentation for pretty printing of display material.  | 
| 27042 | 556  | 
|
| 40406 | 557  | 
  \item \indexdef{}{antiquotation option}{goals\_limit}\hypertarget{antiquotation option.goals-limit}{\hyperlink{antiquotation option.goals-limit}{\mbox{\isa{goals{\isaliteral{5F}{\isacharunderscore}}limit}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3D}{\isacharequal}}\ nat{\isaliteral{22}{\isachardoublequote}}}
 | 
| 30397 | 558  | 
determines the maximum number of goals to be printed (for goal-based  | 
559  | 
antiquotation).  | 
|
| 27042 | 560  | 
|
| 40406 | 561  | 
  \item \indexdef{}{antiquotation option}{source}\hypertarget{antiquotation option.source}{\hyperlink{antiquotation option.source}{\mbox{\isa{source}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3D}{\isacharequal}}\ bool{\isaliteral{22}{\isachardoublequote}}} prints the
 | 
| 30397 | 562  | 
original source text of the antiquotation arguments, rather than its  | 
563  | 
internal representation. Note that formal checking of  | 
|
564  | 
  \hyperlink{antiquotation.thm}{\mbox{\isa{thm}}}, \hyperlink{antiquotation.term}{\mbox{\isa{term}}}, etc. is still
 | 
|
565  | 
  enabled; use the \hyperlink{antiquotation.text}{\mbox{\isa{text}}} antiquotation for unchecked
 | 
|
566  | 
output.  | 
|
| 28788 | 567  | 
|
| 40406 | 568  | 
  Regular \isa{{\isaliteral{22}{\isachardoublequote}}term{\isaliteral{22}{\isachardoublequote}}} and \isa{{\isaliteral{22}{\isachardoublequote}}typ{\isaliteral{22}{\isachardoublequote}}} antiquotations with \isa{{\isaliteral{22}{\isachardoublequote}}source\ {\isaliteral{3D}{\isacharequal}}\ false{\isaliteral{22}{\isachardoublequote}}} involve a full round-trip from the original source
 | 
| 28788 | 569  | 
to an internalized logical entity back to a source form, according  | 
570  | 
to the syntax of the current context. Thus the printed output is  | 
|
571  | 
not under direct control of the author, it may even fluctuate a bit  | 
|
572  | 
as the underlying theory is changed later on.  | 
|
573  | 
||
| 42626 | 574  | 
  In contrast, \hyperlink{antiquotation option.source}{\mbox{\isa{source}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3D}{\isacharequal}}\ true{\isaliteral{22}{\isachardoublequote}}}
 | 
| 30397 | 575  | 
admits direct printing of the given source text, with the desirable  | 
576  | 
well-formedness check in the background, but without modification of  | 
|
577  | 
the printed text.  | 
|
| 28788 | 578  | 
|
579  | 
  \end{description}
 | 
|
| 27042 | 580  | 
|
| 40406 | 581  | 
  For boolean flags, ``\isa{{\isaliteral{22}{\isachardoublequote}}name\ {\isaliteral{3D}{\isacharequal}}\ true{\isaliteral{22}{\isachardoublequote}}}'' may be abbreviated as
 | 
| 27042 | 582  | 
  ``\isa{name}''.  All of the above flags are disabled by default,
 | 
| 28788 | 583  | 
unless changed from ML, say in the \verb|ROOT.ML| of the  | 
584  | 
logic session.%  | 
|
| 27042 | 585  | 
\end{isamarkuptext}%
 | 
586  | 
\isamarkuptrue%  | 
|
587  | 
%  | 
|
| 28788 | 588  | 
\isamarkupsection{Markup via command tags \label{sec:tags}%
 | 
| 27042 | 589  | 
}  | 
590  | 
\isamarkuptrue%  | 
|
591  | 
%  | 
|
592  | 
\begin{isamarkuptext}%
 | 
|
| 28788 | 593  | 
Each Isabelle/Isar command may be decorated by additional  | 
594  | 
presentation tags, to indicate some modification in the way it is  | 
|
595  | 
printed in the document.  | 
|
| 27042 | 596  | 
|
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
597  | 
  \begin{railoutput}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
598  | 
\rail@begin{2}{\indexdef{}{syntax}{tags}\hypertarget{syntax.tags}{\hyperlink{syntax.tags}{\mbox{\isa{tags}}}}}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
599  | 
\rail@plus  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
600  | 
\rail@nextplus{1}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
601  | 
\rail@cnont{\isa{tag}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
602  | 
\rail@endplus  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
603  | 
\rail@end  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
604  | 
\rail@begin{2}{\isa{tag}}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
605  | 
\rail@term{\isa{{\isaliteral{25}{\isacharpercent}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
606  | 
\rail@bar  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
607  | 
\rail@nont{\hyperlink{syntax.ident}{\mbox{\isa{ident}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
608  | 
\rail@nextbar{1}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
609  | 
\rail@nont{\hyperlink{syntax.string}{\mbox{\isa{string}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
610  | 
\rail@endbar  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
611  | 
\rail@end  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
612  | 
\end{railoutput}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
613  | 
|
| 27042 | 614  | 
|
| 28788 | 615  | 
Some tags are pre-declared for certain classes of commands, serving  | 
616  | 
as default markup if no tags are given in the text:  | 
|
| 27042 | 617  | 
|
| 28788 | 618  | 
\medskip  | 
| 27042 | 619  | 
  \begin{tabular}{ll}
 | 
| 40406 | 620  | 
    \isa{{\isaliteral{22}{\isachardoublequote}}theory{\isaliteral{22}{\isachardoublequote}}} & theory begin/end \\
 | 
621  | 
    \isa{{\isaliteral{22}{\isachardoublequote}}proof{\isaliteral{22}{\isachardoublequote}}} & all proof commands \\
 | 
|
622  | 
    \isa{{\isaliteral{22}{\isachardoublequote}}ML{\isaliteral{22}{\isachardoublequote}}} & all commands involving ML code \\
 | 
|
| 27042 | 623  | 
  \end{tabular}
 | 
624  | 
||
| 28788 | 625  | 
\medskip The Isabelle document preparation system  | 
626  | 
  \cite{isabelle-sys} allows tagged command regions to be presented
 | 
|
| 27042 | 627  | 
specifically, e.g.\ to fold proof texts, or drop parts of the text  | 
628  | 
completely.  | 
|
629  | 
||
| 40406 | 630  | 
  For example ``\hyperlink{command.by}{\mbox{\isa{\isacommand{by}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{25}{\isacharpercent}}invisible\ auto{\isaliteral{22}{\isachardoublequote}}}'' causes
 | 
| 28788 | 631  | 
  that piece of proof to be treated as \isa{invisible} instead of
 | 
| 40406 | 632  | 
  \isa{{\isaliteral{22}{\isachardoublequote}}proof{\isaliteral{22}{\isachardoublequote}}} (the default), which may be shown or hidden
 | 
633  | 
  depending on the document setup.  In contrast, ``\hyperlink{command.by}{\mbox{\isa{\isacommand{by}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{25}{\isacharpercent}}visible\ auto{\isaliteral{22}{\isachardoublequote}}}'' forces this text to be shown
 | 
|
| 27042 | 634  | 
invariably.  | 
635  | 
||
636  | 
Explicit tag specifications within a proof apply to all subsequent  | 
|
| 40406 | 637  | 
  commands of the same level of nesting.  For example, ``\hyperlink{command.proof}{\mbox{\isa{\isacommand{proof}}}}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{25}{\isacharpercent}}visible\ {\isaliteral{5C3C646F74733E}{\isasymdots}}{\isaliteral{22}{\isachardoublequote}}}~\hyperlink{command.qed}{\mbox{\isa{\isacommand{qed}}}}'' forces the whole
 | 
| 28788 | 638  | 
  sub-proof to be typeset as \isa{visible} (unless some of its parts
 | 
639  | 
are tagged differently).  | 
|
640  | 
||
641  | 
\medskip Command tags merely produce certain markup environments for  | 
|
642  | 
  type-setting.  The meaning of these is determined by {\LaTeX}
 | 
|
| 40802 | 643  | 
macros, as defined in \verb|~~/lib/texinputs/isabelle.sty| or  | 
| 28788 | 644  | 
by the document author. The Isabelle document preparation tools  | 
645  | 
also provide some high-level options to specify the meaning of  | 
|
646  | 
arbitrary tags to ``keep'', ``drop'', or ``fold'' the corresponding  | 
|
647  | 
parts of the text. Logic sessions may also specify ``document  | 
|
648  | 
versions'', where given tags are interpreted in some particular way.  | 
|
649  | 
  Again see \cite{isabelle-sys} for further details.%
 | 
|
| 27042 | 650  | 
\end{isamarkuptext}%
 | 
651  | 
\isamarkuptrue%  | 
|
652  | 
%  | 
|
| 42658 | 653  | 
\isamarkupsection{Railroad diagrams%
 | 
654  | 
}  | 
|
655  | 
\isamarkuptrue%  | 
|
656  | 
%  | 
|
657  | 
\begin{isamarkuptext}%
 | 
|
658  | 
\begin{matharray}{rcl}
 | 
|
659  | 
    \indexdef{}{antiquotation}{rail}\hypertarget{antiquotation.rail}{\hyperlink{antiquotation.rail}{\mbox{\isa{rail}}}} & : & \isa{antiquotation} \\
 | 
|
660  | 
  \end{matharray}
 | 
|
661  | 
||
662  | 
  \begin{railoutput}
 | 
|
| 42662 | 663  | 
\rail@begin{1}{}
 | 
| 42658 | 664  | 
\rail@term{\isa{rail}}[]
 | 
665  | 
\rail@nont{\isa{string}}[]
 | 
|
666  | 
\rail@end  | 
|
667  | 
\end{railoutput}
 | 
|
668  | 
||
669  | 
||
670  | 
  The \hyperlink{antiquotation.rail}{\mbox{\isa{rail}}} antiquotation allows to include syntax
 | 
|
671  | 
  diagrams into Isabelle documents.  {\LaTeX} requires the style file
 | 
|
672  | 
\verb|~~/lib/texinputs/pdfsetup.sty|, which can be used via  | 
|
673  | 
  \verb|\usepackage{pdfsetup}| in \verb|root.tex|, for
 | 
|
674  | 
example.  | 
|
675  | 
||
676  | 
  The rail specification language is quoted here as Isabelle \hyperlink{syntax.string}{\mbox{\isa{string}}}; it has its own grammar given below.
 | 
|
677  | 
||
678  | 
  \begin{railoutput}
 | 
|
| 42662 | 679  | 
\rail@begin{3}{}
 | 
| 42658 | 680  | 
\rail@plus  | 
681  | 
\rail@bar  | 
|
682  | 
\rail@nextbar{1}
 | 
|
683  | 
\rail@nont{\isa{rule}}[]
 | 
|
684  | 
\rail@endbar  | 
|
685  | 
\rail@nextplus{2}
 | 
|
686  | 
\rail@cterm{\isa{{\isaliteral{3B}{\isacharsemicolon}}}}[]
 | 
|
687  | 
\rail@endplus  | 
|
688  | 
\rail@end  | 
|
689  | 
\rail@begin{3}{\isa{rule}}
 | 
|
690  | 
\rail@bar  | 
|
691  | 
\rail@nextbar{1}
 | 
|
692  | 
\rail@bar  | 
|
693  | 
\rail@nont{\isa{identifier}}[]
 | 
|
694  | 
\rail@nextbar{2}
 | 
|
695  | 
\rail@nont{\hyperlink{syntax.antiquotation}{\mbox{\isa{antiquotation}}}}[]
 | 
|
696  | 
\rail@endbar  | 
|
697  | 
\rail@term{\isa{{\isaliteral{3A}{\isacharcolon}}}}[]
 | 
|
698  | 
\rail@endbar  | 
|
699  | 
\rail@nont{\isa{body}}[]
 | 
|
700  | 
\rail@end  | 
|
701  | 
\rail@begin{2}{\isa{body}}
 | 
|
702  | 
\rail@plus  | 
|
703  | 
\rail@nont{\isa{concatenation}}[]
 | 
|
704  | 
\rail@nextplus{1}
 | 
|
705  | 
\rail@cterm{\isa{{\isaliteral{7C}{\isacharbar}}}}[]
 | 
|
706  | 
\rail@endplus  | 
|
707  | 
\rail@end  | 
|
708  | 
\rail@begin{3}{\isa{concatenation}}
 | 
|
709  | 
\rail@plus  | 
|
710  | 
\rail@nont{\isa{atom}}[]
 | 
|
711  | 
\rail@bar  | 
|
712  | 
\rail@nextbar{1}
 | 
|
713  | 
\rail@term{\isa{{\isaliteral{3F}{\isacharquery}}}}[]
 | 
|
714  | 
\rail@endbar  | 
|
715  | 
\rail@nextplus{2}
 | 
|
716  | 
\rail@endplus  | 
|
717  | 
\rail@bar  | 
|
718  | 
\rail@nextbar{1}
 | 
|
719  | 
\rail@bar  | 
|
720  | 
\rail@term{\isa{{\isaliteral{2A}{\isacharasterisk}}}}[]
 | 
|
721  | 
\rail@nextbar{2}
 | 
|
722  | 
\rail@term{\isa{{\isaliteral{2B}{\isacharplus}}}}[]
 | 
|
723  | 
\rail@endbar  | 
|
724  | 
\rail@bar  | 
|
725  | 
\rail@nextbar{2}
 | 
|
726  | 
\rail@nont{\isa{atom}}[]
 | 
|
727  | 
\rail@endbar  | 
|
728  | 
\rail@endbar  | 
|
729  | 
\rail@end  | 
|
730  | 
\rail@begin{6}{\isa{atom}}
 | 
|
731  | 
\rail@bar  | 
|
732  | 
\rail@term{\isa{{\isaliteral{28}{\isacharparenleft}}}}[]
 | 
|
733  | 
\rail@bar  | 
|
734  | 
\rail@nextbar{1}
 | 
|
735  | 
\rail@nont{\isa{body}}[]
 | 
|
736  | 
\rail@endbar  | 
|
737  | 
\rail@term{\isa{{\isaliteral{29}{\isacharparenright}}}}[]
 | 
|
738  | 
\rail@nextbar{2}
 | 
|
739  | 
\rail@nont{\isa{identifier}}[]
 | 
|
740  | 
\rail@nextbar{3}
 | 
|
741  | 
\rail@bar  | 
|
742  | 
\rail@nextbar{4}
 | 
|
743  | 
\rail@term{\isa{{\isaliteral{40}{\isacharat}}}}[]
 | 
|
744  | 
\rail@endbar  | 
|
745  | 
\rail@bar  | 
|
746  | 
\rail@nont{\isa{string}}[]
 | 
|
747  | 
\rail@nextbar{4}
 | 
|
748  | 
\rail@nont{\hyperlink{syntax.antiquotation}{\mbox{\isa{antiquotation}}}}[]
 | 
|
749  | 
\rail@endbar  | 
|
750  | 
\rail@nextbar{5}
 | 
|
751  | 
\rail@term{\isa{{\isaliteral{5C}{\isacharbackslash}}{\isaliteral{5C}{\isacharbackslash}}}}[]
 | 
|
752  | 
\rail@endbar  | 
|
753  | 
\rail@end  | 
|
754  | 
\end{railoutput}
 | 
|
755  | 
||
756  | 
||
757  | 
  The lexical syntax of \isa{{\isaliteral{22}{\isachardoublequote}}identifier{\isaliteral{22}{\isachardoublequote}}} coincides with that of
 | 
|
758  | 
  \hyperlink{syntax.ident}{\mbox{\isa{ident}}} in regular Isabelle syntax, but \isa{string} uses
 | 
|
759  | 
  single quotes instead of double quotes of the standard \hyperlink{syntax.string}{\mbox{\isa{string}}} category, to avoid extra escapes.
 | 
|
760  | 
||
761  | 
  Each \isa{rule} defines a formal language (with optional name),
 | 
|
762  | 
using a notation that is similar to EBNF or regular expressions with  | 
|
763  | 
recursion. The meaning and visual appearance of these rail language  | 
|
764  | 
elements is illustrated by the following representative examples.  | 
|
765  | 
||
766  | 
  \begin{itemize}
 | 
|
767  | 
||
768  | 
\item Empty \verb|()|  | 
|
769  | 
||
770  | 
  \begin{railoutput}
 | 
|
| 42662 | 771  | 
\rail@begin{1}{}
 | 
| 42658 | 772  | 
\rail@end  | 
773  | 
\end{railoutput}
 | 
|
774  | 
||
775  | 
||
776  | 
\item Nonterminal \verb|A|  | 
|
777  | 
||
778  | 
  \begin{railoutput}
 | 
|
| 42662 | 779  | 
\rail@begin{1}{}
 | 
| 42658 | 780  | 
\rail@nont{\isa{A}}[]
 | 
781  | 
\rail@end  | 
|
782  | 
\end{railoutput}
 | 
|
783  | 
||
784  | 
||
785  | 
\item Nonterminal via Isabelle antiquotation  | 
|
786  | 
  \verb|@{syntax method}|
 | 
|
787  | 
||
788  | 
  \begin{railoutput}
 | 
|
| 42662 | 789  | 
\rail@begin{1}{}
 | 
| 42658 | 790  | 
\rail@nont{\hyperlink{syntax.method}{\mbox{\isa{method}}}}[]
 | 
791  | 
\rail@end  | 
|
792  | 
\end{railoutput}
 | 
|
793  | 
||
794  | 
||
795  | 
\item Terminal \verb|'xyz'|  | 
|
796  | 
||
797  | 
  \begin{railoutput}
 | 
|
| 42662 | 798  | 
\rail@begin{1}{}
 | 
| 42658 | 799  | 
\rail@term{\isa{xyz}}[]
 | 
800  | 
\rail@end  | 
|
801  | 
\end{railoutput}
 | 
|
802  | 
||
803  | 
||
804  | 
\item Terminal in keyword style \verb|@'xyz'|  | 
|
805  | 
||
806  | 
  \begin{railoutput}
 | 
|
| 42662 | 807  | 
\rail@begin{1}{}
 | 
| 42658 | 808  | 
\rail@term{\isa{\isakeyword{xyz}}}[]
 | 
809  | 
\rail@end  | 
|
810  | 
\end{railoutput}
 | 
|
811  | 
||
812  | 
||
813  | 
\item Terminal via Isabelle antiquotation  | 
|
814  | 
  \verb|@@{method rule}|
 | 
|
815  | 
||
816  | 
  \begin{railoutput}
 | 
|
| 42662 | 817  | 
\rail@begin{1}{}
 | 
| 42658 | 818  | 
\rail@term{\hyperlink{method.rule}{\mbox{\isa{rule}}}}[]
 | 
819  | 
\rail@end  | 
|
820  | 
\end{railoutput}
 | 
|
821  | 
||
822  | 
||
823  | 
\item Concatenation \verb|A B C|  | 
|
824  | 
||
825  | 
  \begin{railoutput}
 | 
|
| 42662 | 826  | 
\rail@begin{1}{}
 | 
| 42658 | 827  | 
\rail@nont{\isa{A}}[]
 | 
828  | 
\rail@nont{\isa{B}}[]
 | 
|
829  | 
\rail@nont{\isa{C}}[]
 | 
|
830  | 
\rail@end  | 
|
831  | 
\end{railoutput}
 | 
|
832  | 
||
833  | 
||
834  | 
\item Linebreak \verb|\\| inside  | 
|
835  | 
  concatenation\footnote{Strictly speaking, this is only a single
 | 
|
836  | 
  backslash, but the enclosing \hyperlink{syntax.string}{\mbox{\isa{string}}} syntax requires a
 | 
|
837  | 
second one for escaping.} \verb|A B C \\ D E F|  | 
|
838  | 
||
839  | 
  \begin{railoutput}
 | 
|
| 42662 | 840  | 
\rail@begin{3}{}
 | 
| 42658 | 841  | 
\rail@nont{\isa{A}}[]
 | 
842  | 
\rail@nont{\isa{B}}[]
 | 
|
843  | 
\rail@nont{\isa{C}}[]
 | 
|
844  | 
\rail@cr{2}
 | 
|
845  | 
\rail@nont{\isa{D}}[]
 | 
|
846  | 
\rail@nont{\isa{E}}[]
 | 
|
847  | 
\rail@nont{\isa{F}}[]
 | 
|
848  | 
\rail@end  | 
|
849  | 
\end{railoutput}
 | 
|
850  | 
||
851  | 
||
852  | 
\item Variants \verb|A |\verb,|,\verb| B |\verb,|,\verb| C|  | 
|
853  | 
||
854  | 
  \begin{railoutput}
 | 
|
| 42662 | 855  | 
\rail@begin{3}{}
 | 
| 42658 | 856  | 
\rail@bar  | 
857  | 
\rail@nont{\isa{A}}[]
 | 
|
858  | 
\rail@nextbar{1}
 | 
|
859  | 
\rail@nont{\isa{B}}[]
 | 
|
860  | 
\rail@nextbar{2}
 | 
|
861  | 
\rail@nont{\isa{C}}[]
 | 
|
862  | 
\rail@endbar  | 
|
863  | 
\rail@end  | 
|
864  | 
\end{railoutput}
 | 
|
865  | 
||
866  | 
||
867  | 
\item Option \verb|A ?|  | 
|
868  | 
||
869  | 
  \begin{railoutput}
 | 
|
| 42662 | 870  | 
\rail@begin{2}{}
 | 
| 42658 | 871  | 
\rail@bar  | 
872  | 
\rail@nextbar{1}
 | 
|
873  | 
\rail@nont{\isa{A}}[]
 | 
|
874  | 
\rail@endbar  | 
|
875  | 
\rail@end  | 
|
876  | 
\end{railoutput}
 | 
|
877  | 
||
878  | 
||
879  | 
\item Repetition \verb|A *|  | 
|
880  | 
||
881  | 
  \begin{railoutput}
 | 
|
| 42662 | 882  | 
\rail@begin{2}{}
 | 
| 42658 | 883  | 
\rail@plus  | 
884  | 
\rail@nextplus{1}
 | 
|
885  | 
\rail@cnont{\isa{A}}[]
 | 
|
886  | 
\rail@endplus  | 
|
887  | 
\rail@end  | 
|
888  | 
\end{railoutput}
 | 
|
889  | 
||
890  | 
||
891  | 
\item Repetition with separator \verb|A * sep|  | 
|
892  | 
||
893  | 
  \begin{railoutput}
 | 
|
| 42662 | 894  | 
\rail@begin{3}{}
 | 
| 42658 | 895  | 
\rail@bar  | 
896  | 
\rail@nextbar{1}
 | 
|
897  | 
\rail@plus  | 
|
898  | 
\rail@nont{\isa{A}}[]
 | 
|
899  | 
\rail@nextplus{2}
 | 
|
900  | 
\rail@cnont{\isa{sep}}[]
 | 
|
901  | 
\rail@endplus  | 
|
902  | 
\rail@endbar  | 
|
903  | 
\rail@end  | 
|
904  | 
\end{railoutput}
 | 
|
905  | 
||
906  | 
||
907  | 
\item Strict repetition \verb|A +|  | 
|
908  | 
||
909  | 
  \begin{railoutput}
 | 
|
| 42662 | 910  | 
\rail@begin{2}{}
 | 
| 42658 | 911  | 
\rail@plus  | 
912  | 
\rail@nont{\isa{A}}[]
 | 
|
913  | 
\rail@nextplus{1}
 | 
|
914  | 
\rail@endplus  | 
|
915  | 
\rail@end  | 
|
916  | 
\end{railoutput}
 | 
|
917  | 
||
918  | 
||
919  | 
\item Strict repetition with separator \verb|A + sep|  | 
|
920  | 
||
921  | 
  \begin{railoutput}
 | 
|
| 42662 | 922  | 
\rail@begin{2}{}
 | 
| 42658 | 923  | 
\rail@plus  | 
924  | 
\rail@nont{\isa{A}}[]
 | 
|
925  | 
\rail@nextplus{1}
 | 
|
926  | 
\rail@cnont{\isa{sep}}[]
 | 
|
927  | 
\rail@endplus  | 
|
928  | 
\rail@end  | 
|
929  | 
\end{railoutput}
 | 
|
930  | 
||
931  | 
||
932  | 
  \end{itemize}%
 | 
|
933  | 
\end{isamarkuptext}%
 | 
|
934  | 
\isamarkuptrue%  | 
|
935  | 
%  | 
|
| 27042 | 936  | 
\isamarkupsection{Draft presentation%
 | 
937  | 
}  | 
|
938  | 
\isamarkuptrue%  | 
|
939  | 
%  | 
|
940  | 
\begin{isamarkuptext}%
 | 
|
941  | 
\begin{matharray}{rcl}
 | 
|
| 40406 | 942  | 
    \indexdef{}{command}{display\_drafts}\hypertarget{command.display-drafts}{\hyperlink{command.display-drafts}{\mbox{\isa{\isacommand{display{\isaliteral{5F}{\isacharunderscore}}drafts}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}any\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}{\isaliteral{22}{\isachardoublequote}}} \\
 | 
943  | 
    \indexdef{}{command}{print\_drafts}\hypertarget{command.print-drafts}{\hyperlink{command.print-drafts}{\mbox{\isa{\isacommand{print{\isaliteral{5F}{\isacharunderscore}}drafts}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}} & : & \isa{{\isaliteral{22}{\isachardoublequote}}any\ {\isaliteral{5C3C72696768746172726F773E}{\isasymrightarrow}}{\isaliteral{22}{\isachardoublequote}}} \\
 | 
|
| 27042 | 944  | 
  \end{matharray}
 | 
945  | 
||
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
946  | 
  \begin{railoutput}
 | 
| 42662 | 947  | 
\rail@begin{2}{}
 | 
| 
42596
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
948  | 
\rail@bar  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
949  | 
\rail@term{\hyperlink{command.display-drafts}{\mbox{\isa{\isacommand{display{\isaliteral{5F}{\isacharunderscore}}drafts}}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
950  | 
\rail@nextbar{1}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
951  | 
\rail@term{\hyperlink{command.print-drafts}{\mbox{\isa{\isacommand{print{\isaliteral{5F}{\isacharunderscore}}drafts}}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
952  | 
\rail@endbar  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
953  | 
\rail@plus  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
954  | 
\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
955  | 
\rail@nextplus{1}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
956  | 
\rail@endplus  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
957  | 
\rail@end  | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
958  | 
\end{railoutput}
 | 
| 
 
6c621a9d612a
modernized rail diagrams using @{rail} antiquotation;
 
wenzelm 
parents: 
40879 
diff
changeset
 | 
959  | 
|
| 27042 | 960  | 
|
| 28788 | 961  | 
  \begin{description}
 | 
| 27042 | 962  | 
|
| 40406 | 963  | 
  \item \hyperlink{command.display-drafts}{\mbox{\isa{\isacommand{display{\isaliteral{5F}{\isacharunderscore}}drafts}}}}~\isa{paths} and \hyperlink{command.print-drafts}{\mbox{\isa{\isacommand{print{\isaliteral{5F}{\isacharunderscore}}drafts}}}}~\isa{paths} perform simple output of a given list
 | 
| 27042 | 964  | 
of raw source files. Only those symbols that do not require  | 
965  | 
  additional {\LaTeX} packages are displayed properly, everything else
 | 
|
966  | 
is left verbatim.  | 
|
967  | 
||
| 28788 | 968  | 
  \end{description}%
 | 
| 27042 | 969  | 
\end{isamarkuptext}%
 | 
970  | 
\isamarkuptrue%  | 
|
971  | 
%  | 
|
972  | 
\isadelimtheory  | 
|
973  | 
%  | 
|
974  | 
\endisadelimtheory  | 
|
975  | 
%  | 
|
976  | 
\isatagtheory  | 
|
977  | 
\isacommand{end}\isamarkupfalse%
 | 
|
978  | 
%  | 
|
979  | 
\endisatagtheory  | 
|
980  | 
{\isafoldtheory}%
 | 
|
981  | 
%  | 
|
982  | 
\isadelimtheory  | 
|
983  | 
%  | 
|
984  | 
\endisadelimtheory  | 
|
985  | 
\isanewline  | 
|
986  | 
\end{isabellebody}%
 | 
|
987  | 
%%% Local Variables:  | 
|
988  | 
%%% mode: latex  | 
|
989  | 
%%% TeX-master: "root"  | 
|
990  | 
%%% End:  |