doc-src/IsarRef/syntax.tex
changeset 9200 3a44c828be1d
parent 9051 887a15590f0e
child 9233 8c8399b9ecaa
--- a/doc-src/IsarRef/syntax.tex	Thu Jun 29 22:36:45 2000 +0200
+++ b/doc-src/IsarRef/syntax.tex	Thu Jun 29 22:37:24 2000 +0200
@@ -277,16 +277,16 @@
 \begin{rail}
   axmdecl: name attributes? ':'
   ;
-  thmdecl: thmname ':'
+  thmdecl: thmbind ':'
   ;
-  thmdef: thmname '='
+  thmdef: thmbind '='
   ;
   thmref: nameref attributes?
   ;
   thmrefs: thmref +
   ;
 
-  thmname: name attributes | name | attributes
+  thmbind: name attributes | name | attributes
   ;
 \end{rail}
 
@@ -320,6 +320,69 @@
 \end{rail}
 
 
+\subsection{Antiquotations}\label{sec:antiq}
+
+The text body of formal comments (see also \S\ref{sec:comments}) may contain
+antiquotations of logical entities, such as theorems, terms and types, which
+are to be presented in the final output produced by the Isabelle document
+preparation system (see also \S\ref{sec:document-prep}).
+
+Thus embedding something like
+\texttt{{\at}{\ttlbrace}term[show_types]~"f(x)~=~a~+~x"{\ttrbrace}} within
+some text block would cause
+\isa{(f{\isasymColon}'a~{\isasymRightarrow}~'a)~(x{\isasymColon}'a)~=~(a{\isasymColon}'a)~+~x}
+to appear in the final {\LaTeX} document.
+
+\medskip
+
+Antiquotations do not only spare the author from tedious typing, but also
+achieve some degree of consistency-checking of informal explanations with
+formal developments, since well-formedness of terms and types with respect to
+the current theory or proof context can be ensured.
+
+\indexisarant{thm}\indexisarant{prop}\indexisarant{term}\indexisarant{typ}
+\begin{rail}
+  atsign lbrace antiquotation rbrace
+  ;
+
+  antiquotation:
+    'thm' options thmrefs |
+    'prop' options prop |
+    'term' options term |
+    'typ' options type
+  ;
+  options: '[' (option * ',') ']'
+  ;
+  option: name | name '=' name
+  ;
+\end{rail}
+
+Note that the syntax of antiquotations may \emph{not} include source comments
+\texttt{(*~\dots~*)} or verbatim text \verb|{*|~\dots~\verb|*}|.
+
+\medskip
+
+The following options are available to tune the output.
+\begin{descr}
+\item[$show_types = bool$ and $show_sorts = bool$] refer to Isabelle's global
+  ML flags of the same names (see also \cite{isabelle-ref}).
+\item[$display = bool$] indicates if the text is to be output as multi-line
+  ``display material'', rather than a small piece of text without line breaks
+  (which is the default).
+\item[$quotes = bool$] indicates if the output should be enclosed in double
+  quotes.
+\item[$mode = name$] adds $name$ to the print mode to be used for
+  presentation.  Note that the standard setup for {\LaTeX} output is already
+  present by default, including the modes ``$latex$'', ``$xsymbols$'',
+  ``$symbols$''.
+\item[$margin = nat$] changes the margin for pretty printing of display
+  material.
+\end{descr}
+
+For boolean flags, ``$name = true$'' may be abbreviated as ``$name$''.  All of
+the above flags are disabled by default, unless changed from ML.
+
+
 %%% Local Variables: 
 %%% mode: latex
 %%% TeX-master: "isar-ref"