doc-src/System/Thy/document/Presentation.tex
author wenzelm
Tue, 31 Jul 2012 16:23:20 +0200
changeset 48616 be8002ee43d8
parent 48602 342ca8f3197b
child 48657 63ef2f0cf8bb
permissions -rw-r--r--
document variant NAME may use different LaTeX entry point document/root_NAME.tex if that file exists;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     1
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     2
\begin{isabellebody}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     3
\def\isabellecontext{Presentation}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     4
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     5
\isadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     6
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     7
\endisadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     8
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     9
\isatagtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    10
\isacommand{theory}\isamarkupfalse%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    11
\ Presentation\isanewline
43564
9864182c6bad document antiquotations are managed as theory data, with proper name space and entity markup;
wenzelm
parents: 42009
diff changeset
    12
\isakeyword{imports}\ Base\isanewline
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    13
\isakeyword{begin}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    14
\endisatagtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    15
{\isafoldtheory}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    16
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    17
\isadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    18
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    19
\endisadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    20
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    21
\isamarkupchapter{Presenting theories \label{ch:present}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    22
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    23
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    24
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    25
\begin{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    26
Isabelle provides several ways to present the outcome of formal
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    27
  developments, including WWW-based browsable libraries or actual
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    28
  printable documents.  Presentation is centered around the concept of
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    29
  \emph{logic sessions}.  The global session structure is that of a
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    30
  tree, with Isabelle Pure at its root, further object-logics derived
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    31
  (e.g.\ HOLCF from HOL, and HOL from Pure), and application sessions
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    32
  in leaf positions (usually without a separate image).
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    33
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
    34
  The tools \indexref{}{tool}{mkdir}\hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}} and \indexref{}{tool}{make}\hyperlink{tool.make}{\mbox{\isa{\isatool{make}}}} provide the primary
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
    35
  means for managing Isabelle sessions, including proper setup for
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
    36
  presentation.  Here \indexref{}{tool}{usedir}\hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} takes care to let
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
    37
  \indexref{}{executable}{isabelle-process}\hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isaliteral{2D}{\isacharminus}}process}}}} process run any additional
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
    38
  stages required for document preparation, notably the tools
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
    39
  \indexref{}{tool}{document}\hyperlink{tool.document}{\mbox{\isa{\isatool{document}}}} and \indexref{}{tool}{latex}\hyperlink{tool.latex}{\mbox{\isa{\isatool{latex}}}}.  The complete tool chain
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
    40
  for managing batch-mode Isabelle sessions is illustrated in
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    41
  \figref{fig:session-tools}.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    42
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    43
  \begin{figure}[htbp]
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    44
  \begin{center}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    45
  \begin{tabular}{lp{0.6\textwidth}}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    46
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
    47
      \indexref{}{tool}{mkdir}\hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}} & invoked once by the user to create the
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
    48
      initial source setup (common \verb|IsaMakefile| plus a
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
    49
      single session directory); \\
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    50
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
    51
      \hyperlink{tool.make}{\mbox{\isa{\isatool{make}}}} & invoked repeatedly by the user to keep session
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
    52
      output up-to-date (HTML, documents etc.); \\
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    53
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
    54
      \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} & part of the standard \verb|IsaMakefile|
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
    55
      entry of a session; \\
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28225
diff changeset
    56
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
    57
      \hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isaliteral{2D}{\isacharminus}}process}}}} & run through \indexref{}{tool}{usedir}\hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}}; \\
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    58
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
    59
      \indexref{}{tool}{document}\hyperlink{tool.document}{\mbox{\isa{\isatool{document}}}} & run by the Isabelle process if document
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
    60
      preparation is enabled; \\
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    61
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
    62
      \indexref{}{tool}{latex}\hyperlink{tool.latex}{\mbox{\isa{\isatool{latex}}}} & universal {\LaTeX} tool wrapper invoked
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
    63
      multiple times by \indexref{}{tool}{document}\hyperlink{tool.document}{\mbox{\isa{\isatool{document}}}}; also useful for manual
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
    64
      experiments; \\
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    65
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    66
  \end{tabular}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    67
  \caption{The tool chain of Isabelle session presentation} \label{fig:session-tools}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    68
  \end{center}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    69
  \end{figure}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    70
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    71
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    72
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    73
\isamarkupsection{Generating theory browser information \label{sec:info}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    74
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    75
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    76
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    77
\begin{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    78
\index{theory browsing information|bold}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    79
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    80
  As a side-effect of running a logic sessions, Isabelle is able to
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    81
  generate theory browsing information, including HTML documents that
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    82
  show a theory's definition, the theorems proved in its ML file and
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    83
  the relationship with its ancestors and descendants.  Besides the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    84
  HTML file that is generated for every theory, Isabelle stores links
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    85
  to all theories in an index file. These indexes are linked with
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    86
  other indexes to represent the overall tree structure of logic
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    87
  sessions.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    88
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    89
  Isabelle also generates graph files that represent the theory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    90
  hierarchy of a logic.  There is a graph browser Java applet embedded
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    91
  in the generated HTML pages, and also a stand-alone application that
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    92
  allows browsing theory graphs without having to start a WWW client
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    93
  first.  The latter version also includes features such as generating
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    94
  Postscript files, which are not available in the applet version.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    95
  See \secref{sec:browse} for further information.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    96
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    97
  \medskip
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    98
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    99
  The easiest way to let Isabelle generate theory browsing information
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   100
  for existing sessions is to append ``\verb|-i true|'' to the
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   101
  \indexref{}{setting}{ISABELLE\_USEDIR\_OPTIONS}\hyperlink{setting.ISABELLE-USEDIR-OPTIONS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}USEDIR{\isaliteral{5F}{\isacharunderscore}}OPTIONS}}}} before invoking \hyperlink{tool.make}{\mbox{\isa{\isatool{make}}}}.
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   102
  For example, add something like this to your Isabelle settings file
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   103
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   104
\begin{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   105
ISABELLE_USEDIR_OPTIONS="-i true"
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   106
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   107
40802
3cd23f676c5b updated generated files;
wenzelm
parents: 40406
diff changeset
   108
  and then change into the \verb|~~/src/FOL| directory and run
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   109
  \hyperlink{tool.make}{\mbox{\isa{\isatool{make}}}}, or even \hyperlink{tool.make}{\mbox{\isa{\isatool{make}}}}~\verb|all|.  The
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   110
  presentation output will appear in \verb|ISABELLE_BROWSER_INFO/FOL|, which usually refers to something like
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   111
  \verb|~/.isabelle/IsabelleXXXX/browser_info/FOL|.  Note that
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   112
  option \verb|-v true| will make the internal runs of \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} more explicit about such details.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   113
40802
3cd23f676c5b updated generated files;
wenzelm
parents: 40406
diff changeset
   114
  Many standard Isabelle sessions (such as \verb|~~/src/HOL/ex|)
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28225
diff changeset
   115
  also provide actual printable documents.  These are prepared
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   116
  automatically as well if enabled like this, using the \verb|-d| option
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   117
\begin{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   118
ISABELLE_USEDIR_OPTIONS="-i true -d dvi"
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   119
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   120
  Enabling options \verb|-i| and \verb|-d|
28225
wenzelm
parents: 28222
diff changeset
   121
  simultaneously as shown above causes an appropriate ``document''
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   122
  link to be included in the HTML index.  Documents (or raw document
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   123
  sources) may be generated independently of browser information as
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   124
  well, see \secref{sec:tool-document} for further details.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   125
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   126
  \bigskip The theory browsing information is stored in a
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   127
  sub-directory directory determined by the \indexref{}{setting}{ISABELLE\_BROWSER\_INFO}\hyperlink{setting.ISABELLE-BROWSER-INFO}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}BROWSER{\isaliteral{5F}{\isacharunderscore}}INFO}}}} setting plus a prefix corresponding to the
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   128
  session identifier (according to the tree structure of sub-sessions
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   129
  by default).  A complete WWW view of all standard object-logics and
28225
wenzelm
parents: 28222
diff changeset
   130
  examples of the Isabelle distribution is available at the usual
wenzelm
parents: 28222
diff changeset
   131
  Isabelle sites:
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   132
  \begin{center}\small
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   133
  \begin{tabular}{l}
28225
wenzelm
parents: 28222
diff changeset
   134
    \url{http://isabelle.in.tum.de/dist/library/} \\
wenzelm
parents: 28222
diff changeset
   135
    \url{http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/} \\
wenzelm
parents: 28222
diff changeset
   136
    \url{http://mirror.cse.unsw.edu.au/pub/isabelle/dist/library/} \\
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   137
  \end{tabular}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   138
  \end{center}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   139
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   140
  \medskip In order to present your own theories on the web, simply
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   141
  copy the corresponding subdirectory from \hyperlink{setting.ISABELLE-BROWSER-INFO}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}BROWSER{\isaliteral{5F}{\isacharunderscore}}INFO}}}} to your WWW server, having generated browser
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   142
  info like this:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   143
\begin{ttbox}
28505
f98751bd715f updated generated file;
wenzelm
parents: 28238
diff changeset
   144
isabelle usedir -i true HOL Foo
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   145
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   146
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   147
  This assumes that directory \verb|Foo| contains some \verb|ROOT.ML| file to load all your theories, and HOL is your parent
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   148
  logic image (\indexref{}{tool}{mkdir}\hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}} assists in setting up Isabelle
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   149
  session directories.  Theory browser information for HOL should have
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   150
  been generated already beforehand.  Alternatively, one may specify
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   151
  an external link to an existing body of HTML data by giving \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} a \verb|-P| option like this:
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   152
\begin{ttbox}
28505
f98751bd715f updated generated file;
wenzelm
parents: 28238
diff changeset
   153
isabelle usedir -i true -P http://isabelle.in.tum.de/library/ HOL Foo
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   154
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   155
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   156
  \medskip For production use, \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} is usually invoked in an
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   157
  appropriate \verb|IsaMakefile|, via \hyperlink{tool.make}{\mbox{\isa{\isatool{make}}}}.  There is a
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   158
  separate \hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}} tool to provide easy setup of all this, with
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   159
  only minimal manual editing required.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   160
\begin{ttbox}
28505
f98751bd715f updated generated file;
wenzelm
parents: 28238
diff changeset
   161
isabelle mkdir HOL Foo && isabelle make
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   162
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   163
  See \secref{sec:tool-mkdir} for more information on preparing
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   164
  Isabelle session directories, including the setup for documents.%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   165
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   166
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   167
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   168
\isamarkupsection{Creating Isabelle session directories
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   169
  \label{sec:tool-mkdir}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   170
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   171
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   172
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   173
\begin{isamarkuptext}%
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   174
The \indexdef{}{tool}{mkdir}\hypertarget{tool.mkdir}{\hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}}} tool prepares Isabelle session source
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   175
  directories, including a sensible default setup of \verb|IsaMakefile|, \verb|ROOT.ML|, and a \verb|document|
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   176
  directory with a minimal \verb|root.tex| that is sufficient to
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   177
  print all theories of the session (in the order of appearance); see
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   178
  \secref{sec:tool-document} for further information on Isabelle
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   179
  document preparation.  The usage of \hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}} is:
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   180
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   181
\begin{ttbox}
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   182
Usage: isabelle mkdir [OPTIONS] [LOGIC] NAME
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   183
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   184
  Options are:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   185
    -I FILE      alternative IsaMakefile output
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   186
    -P           include parent logic target
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   187
    -b           setup build mode (session outputs heap image)
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   188
    -q           quiet mode
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   189
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   190
  Prepare session directory, including IsaMakefile and document source,
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   191
  with parent LOGIC (default ISABELLE_LOGIC=\$ISABELLE_LOGIC)
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   192
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   193
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   194
  The \hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}} tool is conservative in the sense that any
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   195
  existing \verb|IsaMakefile| etc.\ is left unchanged.  Thus it
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   196
  is safe to invoke it multiple times, although later runs may not
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   197
  have the desired effect.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   198
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   199
  Note that \hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}} is unable to change \verb|IsaMakefile|
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   200
  incrementally --- manual changes are required for multiple
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   201
  sub-sessions.  On order to get an initial working session, the only
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   202
  editing needed is to add appropriate \verb|use_thy| calls to the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   203
  generated \verb|ROOT.ML| file.%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   204
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   205
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   206
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   207
\isamarkupsubsubsection{Options%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   208
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   209
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   210
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   211
\begin{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   212
The \verb|-I| option specifies an alternative to \verb|IsaMakefile| for dependencies.  Note that ``\verb|-|'' refers
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   213
  to \emph{stdout}, i.e.\ ``\verb|-I-|'' provides an easy way
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   214
  to peek at \hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}}'s idea of \hyperlink{tool.make}{\mbox{\isa{\isatool{make}}}} setup required for
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   215
  some particular of Isabelle session.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   216
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   217
  \medskip The \verb|-P| option includes a target for the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   218
  parent \verb|LOGIC| session in the generated \verb|IsaMakefile|.  The corresponding sources are assumed to be located
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   219
  within the Isabelle distribution.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   220
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   221
  \medskip The \verb|-b| option sets up the current directory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   222
  as the base for a new session that provides an actual logic image,
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   223
  as opposed to one that only runs several theories based on an
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   224
  existing image.  Note that in the latter case, everything except
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   225
  \verb|IsaMakefile| would be placed into a separate directory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   226
  \verb|NAME|, rather than the current one.  See
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   227
  \secref{sec:tool-usedir} for further information on \emph{build
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   228
  mode} vs.\ \emph{example mode} of \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}}.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   229
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   230
  \medskip The \verb|-q| option enables quiet mode, suppressing
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   231
  further notes on how to proceed.%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   232
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   233
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   234
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   235
\isamarkupsubsubsection{Examples%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   236
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   237
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   238
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   239
\begin{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   240
The standard setup of a single ``example session'' based on the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   241
  default logic, with proper document generation is generated like
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   242
  this:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   243
\begin{ttbox}
28505
f98751bd715f updated generated file;
wenzelm
parents: 28238
diff changeset
   244
isabelle mkdir Foo && isabelle make
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   245
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   246
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   247
  \noindent The theory sources should be put into the \verb|Foo|
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   248
  directory, and its \verb|ROOT.ML| should be edited to load all
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   249
  required theories.  Invoking \hyperlink{tool.make}{\mbox{\isa{\isatool{make}}}} again would run the whole
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   250
  session, generating browser information and the document
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   251
  automatically.  The \verb|IsaMakefile| is typically tuned
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   252
  manually later, e.g.\ adding source dependencies, or changing the
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   253
  options passed to \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}}.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   254
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   255
  \medskip Large projects may demand further sessions, potentially
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   256
  with separate logic images being created.  This usually requires
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   257
  manual editing of the generated \verb|IsaMakefile|, which is
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   258
  meant to cover all of the sub-session directories at the same time
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   259
  (this is the deeper reasong why \verb|IsaMakefile| is not made
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   260
  part of the initial session directory created by \hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}}).
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   261
  See \verb|~~/src/HOL/IsaMakefile| for a full-blown example.%
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   262
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   263
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   264
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   265
\isamarkupsection{Running Isabelle sessions \label{sec:tool-usedir}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   266
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   267
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   268
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   269
\begin{isamarkuptext}%
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   270
The \indexdef{}{tool}{usedir}\hypertarget{tool.usedir}{\hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}}} tool builds object-logic images, or
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   271
  runs example sessions based on existing logics. Its usage is:
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   272
\begin{ttbox}
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   273
Usage: isabelle usedir [OPTIONS] LOGIC NAME
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   274
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   275
  Options are:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   276
    -C BOOL      copy existing document directory to -D PATH (default true)
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   277
    -D PATH      dump generated document sources into PATH
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   278
    -M MAX       multithreading: maximum number of worker threads (default 1)
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   279
    -P PATH      set path for remote theory browsing information
41819
2d84831dc1a0 scale parallel_proofs_threshold with max_threads_value to improve saturation of cores;
wenzelm
parents: 41703
diff changeset
   280
    -Q INT       set threshold for sub-proof parallelization (default 50)
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   281
    -T LEVEL     multithreading: trace level (default 0)
42004
e06351ffb475 tuned terminology for document variants;
wenzelm
parents: 41819
diff changeset
   282
    -V VARIANT   declare alternative document VARIANT
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   283
    -b           build mode (output heap image, using current dir)
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   284
    -d FORMAT    build document as FORMAT (default false)
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   285
    -f NAME      use ML file NAME (default ROOT.ML)
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   286
    -g BOOL      generate session graph image for document (default false)
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   287
    -i BOOL      generate theory browser information (default false)
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   288
    -m MODE      add print mode for output
32061
11f8ee55662d parallel_proofs: more fine-grained control with optional parallel checking of nested Isar proofs;
wenzelm
parents: 31688
diff changeset
   289
    -p LEVEL     set level of detail for proof objects (default 0)
11f8ee55662d parallel_proofs: more fine-grained control with optional parallel checking of nested Isar proofs;
wenzelm
parents: 31688
diff changeset
   290
    -q LEVEL     set level of parallel proof checking (default 1)
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   291
    -r           reset session path
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   292
    -s NAME      override session NAME
31688
f27cc190083b usedir: internal timing option;
wenzelm
parents: 31317
diff changeset
   293
    -t BOOL      internal session timing (default false)
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   294
    -v BOOL      be verbose (default false)
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   295
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   296
  Build object-logic or run examples. Also creates browsing
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   297
  information (HTML etc.) according to settings.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   298
47978
f8f503a1782a less specific sample usage;
wenzelm
parents: 43564
diff changeset
   299
  ISABELLE_USEDIR_OPTIONS=...
29435
a5f84ac14609 added parallel_proofs flag (default true, cf. usedir option -Q), which can be disabled in low-memory situations;
wenzelm
parents: 28914
diff changeset
   300
47978
f8f503a1782a less specific sample usage;
wenzelm
parents: 43564
diff changeset
   301
  ML_PLATFORM=...
f8f503a1782a less specific sample usage;
wenzelm
parents: 43564
diff changeset
   302
  ML_HOME=...
f8f503a1782a less specific sample usage;
wenzelm
parents: 43564
diff changeset
   303
  ML_SYSTEM=...
f8f503a1782a less specific sample usage;
wenzelm
parents: 43564
diff changeset
   304
  ML_OPTIONS=...
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   305
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   306
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   307
  Note that the value of the \indexref{}{setting}{ISABELLE\_USEDIR\_OPTIONS}\hyperlink{setting.ISABELLE-USEDIR-OPTIONS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}USEDIR{\isaliteral{5F}{\isacharunderscore}}OPTIONS}}}}
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   308
  setting is implicitly prefixed to \emph{any} \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}}
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   309
  call. Since the \verb|IsaMakefile|s of all object-logics
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   310
  distributed with Isabelle just invoke \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} for the real
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   311
  work, one may control compilation options globally via above
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   312
  variable. In particular, generation of \rmindex{HTML} browsing
34238
b28be884edda discontinued special HOL_USEDIR_OPTIONS;
wenzelm
parents: 32088
diff changeset
   313
  information and document preparation is controlled here.%
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   314
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   315
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   316
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   317
\isamarkupsubsubsection{Options%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   318
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   319
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   320
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   321
\begin{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   322
Basically, there are two different modes of operation: \emph{build
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   323
  mode} (enabled through the \verb|-b| option) and
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   324
  \emph{example mode} (default).
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   325
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   326
  Calling \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} with \verb|-b| runs \hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isaliteral{2D}{\isacharminus}}process}}}} with input image \verb|LOGIC| and output to
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   327
  \verb|NAME|, as provided on the command line. This will be a
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   328
  batch session, running \verb|ROOT.ML| from the current
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   329
  directory and then quitting.  It is assumed that \verb|ROOT.ML|
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   330
  contains all ML commands required to build the logic.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   331
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   332
  In example mode, \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} runs a read-only session of
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   333
  \verb|LOGIC| and automatically runs \verb|ROOT.ML| from
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   334
  within directory \verb|NAME|.  It assumes that this file
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   335
  contains appropriate ML commands to run the desired examples.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   336
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   337
  \medskip The \verb|-i| option controls theory browser data
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   338
  generation. It may be explicitly turned on or off --- as usual, the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   339
  last occurrence of \verb|-i| on the command line wins.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   340
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   341
  The \verb|-P| option specifies a path (or actual URL) to be
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   342
  prefixed to any \emph{non-local} reference of existing theories.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   343
  Thus user sessions may easily link to existing Isabelle libraries
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   344
  already present on the WWW.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   345
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   346
  The \verb|-m| options specifies additional print modes to be
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   347
  activated temporarily while the session is processed.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   348
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   349
  \medskip The \verb|-d| option controls document preparation.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   350
  Valid arguments are \verb|false| (do not prepare any document;
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   351
  this is default), or any of \verb|dvi|, \verb|dvi.gz|,
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   352
  \verb|ps|, \verb|ps.gz|, \verb|pdf|.  The logic
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   353
  session has to provide a properly setup \verb|document|
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   354
  directory.  See \secref{sec:tool-document} and
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   355
  \secref{sec:tool-latex} for more details.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   356
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   357
  \medskip The \verb|-V| option declares alternative document
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   358
  variants, consisting of name/tags pairs (cf.\ options \verb|-n| and \verb|-t| of \indexref{}{tool}{document}\hyperlink{tool.document}{\mbox{\isa{\isatool{document}}}}).  The standard
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   359
  document is equivalent to ``\verb|document=theory,proof,ML|'', which means that all theory begin/end
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   360
  commands, proof body texts, and ML code will be presented
48616
be8002ee43d8 document variant NAME may use different LaTeX entry point document/root_NAME.tex if that file exists;
wenzelm
parents: 48602
diff changeset
   361
  faithfully.
be8002ee43d8 document variant NAME may use different LaTeX entry point document/root_NAME.tex if that file exists;
wenzelm
parents: 48602
diff changeset
   362
be8002ee43d8 document variant NAME may use different LaTeX entry point document/root_NAME.tex if that file exists;
wenzelm
parents: 48602
diff changeset
   363
  An alternative variant ``\verb|outline=/proof/ML|'' would
be8002ee43d8 document variant NAME may use different LaTeX entry point document/root_NAME.tex if that file exists;
wenzelm
parents: 48602
diff changeset
   364
  fold proof and ML parts, replacing the original text by a short
be8002ee43d8 document variant NAME may use different LaTeX entry point document/root_NAME.tex if that file exists;
wenzelm
parents: 48602
diff changeset
   365
  place-holder.  The form ``\isa{name}\verb|=-|,'' means to
be8002ee43d8 document variant NAME may use different LaTeX entry point document/root_NAME.tex if that file exists;
wenzelm
parents: 48602
diff changeset
   366
  remove document \isa{name} from the list of variants to be
be8002ee43d8 document variant NAME may use different LaTeX entry point document/root_NAME.tex if that file exists;
wenzelm
parents: 48602
diff changeset
   367
  processed.  Any number of \verb|-V| options may be given;
be8002ee43d8 document variant NAME may use different LaTeX entry point document/root_NAME.tex if that file exists;
wenzelm
parents: 48602
diff changeset
   368
  later declarations have precedence over earlier ones.
be8002ee43d8 document variant NAME may use different LaTeX entry point document/root_NAME.tex if that file exists;
wenzelm
parents: 48602
diff changeset
   369
be8002ee43d8 document variant NAME may use different LaTeX entry point document/root_NAME.tex if that file exists;
wenzelm
parents: 48602
diff changeset
   370
  Some document variant \isa{name} may use an alternative {\LaTeX}
be8002ee43d8 document variant NAME may use different LaTeX entry point document/root_NAME.tex if that file exists;
wenzelm
parents: 48602
diff changeset
   371
  entry point called \verb|document/root_|\isa{{\isaliteral{22}{\isachardoublequote}}name{\isaliteral{22}{\isachardoublequote}}}\verb|.tex| if that file exists; otherwise the common
be8002ee43d8 document variant NAME may use different LaTeX entry point document/root_NAME.tex if that file exists;
wenzelm
parents: 48602
diff changeset
   372
  \verb|document/root.tex| is used.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   373
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   374
  \medskip The \verb|-g| option produces images of the theory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   375
  dependency graph (cf.\ \secref{sec:browse}) for inclusion in the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   376
  generated document, both as \verb|session_graph.eps| and
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   377
  \verb|session_graph.pdf| at the same time.  To include this in
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   378
  the final {\LaTeX} document one could say \verb|\includegraphics{session_graph}| in \verb|document/root.tex| (omitting the file-name extension enables
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   379
  {\LaTeX} to select to correct version, either for the DVI or PDF
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   380
  output path).
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   381
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   382
  \medskip The \verb|-D| option causes the generated document
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   383
  sources to be dumped at location \verb|PATH|; this path is
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   384
  relative to the session's main directory.  If the \verb|-C|
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   385
  option is true, this will include a copy of an existing \verb|document| directory as provided by the user.  For example, \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}}~\verb|-D generated HOL Foo| produces a complete set
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   386
  of document sources at \verb|Foo/generated|.  Subsequent
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   387
  invocation of \hyperlink{tool.document}{\mbox{\isa{\isatool{document}}}}~\verb|Foo/generated| (see also
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28225
diff changeset
   388
  \secref{sec:tool-document}) will process the final result
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28225
diff changeset
   389
  independently of an Isabelle job.  This decoupled mode of operation
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28225
diff changeset
   390
  facilitates debugging of serious {\LaTeX} errors, for example.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   391
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   392
  \medskip The \verb|-p| option determines the level of detail
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   393
  for internal proof objects, see also the \emph{Isabelle Reference
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   394
  Manual}~\cite{isabelle-ref}.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   395
32061
11f8ee55662d parallel_proofs: more fine-grained control with optional parallel checking of nested Isar proofs;
wenzelm
parents: 31688
diff changeset
   396
  \medskip The \verb|-q| option specifies the level of parallel
11f8ee55662d parallel_proofs: more fine-grained control with optional parallel checking of nested Isar proofs;
wenzelm
parents: 31688
diff changeset
   397
  proof checking: \verb|0| no proofs, \verb|1| toplevel
11f8ee55662d parallel_proofs: more fine-grained control with optional parallel checking of nested Isar proofs;
wenzelm
parents: 31688
diff changeset
   398
  proofs (default), \verb|2| toplevel and nested Isar proofs.
41703
d27950860514 parallelization of nested Isar proofs is subject to Goal.parallel_proofs_threshold;
wenzelm
parents: 40802
diff changeset
   399
  The option \verb|-Q| specifies a threshold for \verb|-q2|: nested proofs are only parallelized when the current number
41819
2d84831dc1a0 scale parallel_proofs_threshold with max_threads_value to improve saturation of cores;
wenzelm
parents: 41703
diff changeset
   400
  of forked proofs falls below the given value (default 50),
2d84831dc1a0 scale parallel_proofs_threshold with max_threads_value to improve saturation of cores;
wenzelm
parents: 41703
diff changeset
   401
  multiplied by the number of worker threads (see option \verb|-M|).
32061
11f8ee55662d parallel_proofs: more fine-grained control with optional parallel checking of nested Isar proofs;
wenzelm
parents: 31688
diff changeset
   402
31688
f27cc190083b usedir: internal timing option;
wenzelm
parents: 31317
diff changeset
   403
  \medskip The \verb|-t| option produces a more detailed
f27cc190083b usedir: internal timing option;
wenzelm
parents: 31317
diff changeset
   404
  internal timing report of the session.
f27cc190083b usedir: internal timing option;
wenzelm
parents: 31317
diff changeset
   405
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   406
  \medskip The \verb|-v| option causes additional information
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   407
  to be printed while running the session, notably the location of
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   408
  prepared documents.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   409
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   410
  \medskip The \verb|-M| option specifies the maximum number of
41819
2d84831dc1a0 scale parallel_proofs_threshold with max_threads_value to improve saturation of cores;
wenzelm
parents: 41703
diff changeset
   411
  parallel worker threads used for processing independent tasks when
2d84831dc1a0 scale parallel_proofs_threshold with max_threads_value to improve saturation of cores;
wenzelm
parents: 41703
diff changeset
   412
  checking theory sources (multithreading only works on suitable ML
2d84831dc1a0 scale parallel_proofs_threshold with max_threads_value to improve saturation of cores;
wenzelm
parents: 41703
diff changeset
   413
  platforms).  The special value of \verb|0| or \verb|max|
2d84831dc1a0 scale parallel_proofs_threshold with max_threads_value to improve saturation of cores;
wenzelm
parents: 41703
diff changeset
   414
  refers to the number of actual CPU cores of the underlying machine,
2d84831dc1a0 scale parallel_proofs_threshold with max_threads_value to improve saturation of cores;
wenzelm
parents: 41703
diff changeset
   415
  which is a good starting point for optimal performance tuning.  The
2d84831dc1a0 scale parallel_proofs_threshold with max_threads_value to improve saturation of cores;
wenzelm
parents: 41703
diff changeset
   416
  \verb|-T| option determines the level of detail in tracing
2d84831dc1a0 scale parallel_proofs_threshold with max_threads_value to improve saturation of cores;
wenzelm
parents: 41703
diff changeset
   417
  output concerning the internal locking and scheduling in
2d84831dc1a0 scale parallel_proofs_threshold with max_threads_value to improve saturation of cores;
wenzelm
parents: 41703
diff changeset
   418
  multithreaded operation.  This may be helpful in isolating
2d84831dc1a0 scale parallel_proofs_threshold with max_threads_value to improve saturation of cores;
wenzelm
parents: 41703
diff changeset
   419
  performance bottle-necks, e.g.\ due to excessive wait states when
2d84831dc1a0 scale parallel_proofs_threshold with max_threads_value to improve saturation of cores;
wenzelm
parents: 41703
diff changeset
   420
  locking critical code sections.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   421
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   422
  \medskip Any \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} session is named by some \emph{session
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   423
  identifier}. These accumulate, documenting the way sessions depend
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   424
  on others. For example, consider \verb|Pure/FOL/ex|, which
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   425
  refers to the examples of FOL, which in turn is built upon Pure.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   426
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   427
  The current session's identifier is by default just the base name of
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   428
  the \verb|LOGIC| argument (in build mode), or of the \verb|NAME| argument (in example mode). This may be overridden explicitly
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   429
  via the \verb|-s| option.%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   430
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   431
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   432
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   433
\isamarkupsubsubsection{Examples%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   434
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   435
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   436
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   437
\begin{isamarkuptext}%
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   438
Refer to the \verb|IsaMakefile|s of the Isabelle
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   439
  distribution's object-logics as a model for your own developments.
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   440
  For example, see \verb|~~/src/FOL/IsaMakefile|.  The \indexref{}{tool}{mkdir}\hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}} tool creates \verb|IsaMakefile|s with proper invocation
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   441
  of \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} as well.%
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   442
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   443
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   444
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   445
\isamarkupsection{Preparing Isabelle session documents
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   446
  \label{sec:tool-document}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   447
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   448
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   449
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   450
\begin{isamarkuptext}%
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   451
The \indexdef{}{tool}{document}\hypertarget{tool.document}{\hyperlink{tool.document}{\mbox{\isa{\isatool{document}}}}} tool prepares logic session
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   452
  documents, processing the sources both as provided by the user and
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   453
  generated by Isabelle.  Its usage is:
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   454
\begin{ttbox}
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   455
Usage: isabelle document [OPTIONS] [DIR]
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   456
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   457
  Options are:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   458
    -c           cleanup -- be aggressive in removing old stuff
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   459
    -n NAME      specify document name (default 'document')
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   460
    -o FORMAT    specify output format: dvi (default), dvi.gz, ps,
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   461
                 ps.gz, pdf
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   462
    -t TAGS      specify tagged region markup
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   463
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   464
  Prepare the theory session document in DIR (default 'document')
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   465
  producing the specified output format.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   466
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   467
  This tool is usually run automatically as part of the corresponding
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   468
  Isabelle batch process, provided document preparation has been
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   469
  enabled (cf.\ the \verb|-d| option of \indexref{}{tool}{usedir}\hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}}).
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   470
  It may be manually invoked on the generated browser information
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   471
  document output as well, e.g.\ in case of errors encountered in the
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   472
  batch run.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   473
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   474
  \medskip The \verb|-c| option tells \hyperlink{tool.document}{\mbox{\isa{\isatool{document}}}} to
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   475
  dispose the document sources after successful operation.  This is
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   476
  the right thing to do for sources generated by an Isabelle process,
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   477
  but take care of your files in manual document preparation!
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   478
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   479
  \medskip The \verb|-n| and \verb|-o| option specify
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   480
  the final output file name and format, the default is ``\verb|document.dvi|''.  Note that the result will appear in the parent of
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   481
  the target \verb|DIR|.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   482
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   483
  \medskip The \verb|-t| option tells {\LaTeX} how to interpret
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   484
  tagged Isabelle command regions.  Tags are specified as a comma
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   485
  separated list of modifier/name pairs: ``\verb|+|\isa{foo}'' (or just ``\isa{foo}'') means to keep, ``\verb|-|\isa{foo}'' to drop, and ``\verb|/|\isa{foo}'' to
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   486
  fold text tagged as \isa{foo}.  The builtin default is equivalent
30114
0726792e1726 updated generated files;
wenzelm
parents: 29435
diff changeset
   487
  to the tag specification ``\verb|+theory,+proof,+ML,+visible,-invisible|''; see also the {\LaTeX}
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   488
  macros \verb|\isakeeptag|, \verb|\isadroptag|, and
40802
3cd23f676c5b updated generated files;
wenzelm
parents: 40406
diff changeset
   489
  \verb|\isafoldtag|, in \verb|~~/lib/texinputs/isabelle.sty|.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   490
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   491
  \medskip Document preparation requires a properly setup ``\verb|document|'' directory within the logic session sources.  This
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   492
  directory is supposed to contain all the files needed to produce the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   493
  final document --- apart from the actual theories which are
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   494
  generated by Isabelle.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   495
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   496
  \medskip For most practical purposes, \hyperlink{tool.document}{\mbox{\isa{\isatool{document}}}} is smart
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   497
  enough to create any of the specified output formats, taking
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   498
  \verb|root.tex| supplied by the user as a starting point.  This
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   499
  even includes multiple runs of {\LaTeX} to accommodate references
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   500
  and bibliographies (the latter assumes \verb|root.bib| within
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   501
  the same directory).
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   502
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   503
  In more complex situations, a separate \verb|IsaMakefile| for
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   504
  the document sources may be given instead.  This should provide
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   505
  targets for any admissible document format; these have to produce
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   506
  corresponding output files named after \verb|root| as well,
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   507
  e.g.\ \verb|root.dvi| for target format \verb|dvi|.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   508
42009
b008525c4399 parallel preparation of document variants, within separate directories;
wenzelm
parents: 42004
diff changeset
   509
  \medskip When running the session, Isabelle copies the content of
b008525c4399 parallel preparation of document variants, within separate directories;
wenzelm
parents: 42004
diff changeset
   510
  the original \verb|document| directory into its proper place
b008525c4399 parallel preparation of document variants, within separate directories;
wenzelm
parents: 42004
diff changeset
   511
  within \hyperlink{setting.ISABELLE-BROWSER-INFO}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}BROWSER{\isaliteral{5F}{\isacharunderscore}}INFO}}}}, according to the session
b008525c4399 parallel preparation of document variants, within separate directories;
wenzelm
parents: 42004
diff changeset
   512
  path and document variant.  Then, for any processed theory \isa{A}
b008525c4399 parallel preparation of document variants, within separate directories;
wenzelm
parents: 42004
diff changeset
   513
  some {\LaTeX} source is generated and put there as \isa{A}\verb|.tex|.  Furthermore, a list of all generated theory
b008525c4399 parallel preparation of document variants, within separate directories;
wenzelm
parents: 42004
diff changeset
   514
  files is put into \verb|session.tex|.  Typically, the root
b008525c4399 parallel preparation of document variants, within separate directories;
wenzelm
parents: 42004
diff changeset
   515
  {\LaTeX} file provided by the user would include \verb|session.tex| to get a document containing all the theories.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   516
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   517
  The {\LaTeX} versions of the theories require some macros defined in
40802
3cd23f676c5b updated generated files;
wenzelm
parents: 40406
diff changeset
   518
  \verb|~~/lib/texinputs/isabelle.sty|.  Doing \verb|\usepackage{isabelle}| in \verb|root.tex| should be fine;
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   519
  the underlying \hyperlink{tool.latex}{\mbox{\isa{\isatool{latex}}}} already includes an appropriate path
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   520
  specification for {\TeX} inputs.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   521
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   522
  If the text contains any references to Isabelle symbols (such as
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28225
diff changeset
   523
  \verb|\|\verb|<forall>|) then \verb|isabellesym.sty| should be included as well.  This package
28838
d5db6dfcb34a moved table of standard Isabelle symbols to isar-ref manual;
wenzelm
parents: 28505
diff changeset
   524
  contains a standard set of {\LaTeX} macro definitions \verb|\isasym|\isa{foo} corresponding to \verb|\|\verb|<|\isa{foo}\verb|>|, see \cite{isabelle-implementation} for a
d5db6dfcb34a moved table of standard Isabelle symbols to isar-ref manual;
wenzelm
parents: 28505
diff changeset
   525
  complete list of predefined Isabelle symbols.  Users may invent
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   526
  further symbols as well, just by providing {\LaTeX} macros in a
40802
3cd23f676c5b updated generated files;
wenzelm
parents: 40406
diff changeset
   527
  similar fashion as in \verb|~~/lib/texinputs/isabellesym.sty| of
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28225
diff changeset
   528
  the distribution.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   529
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   530
  For proper setup of DVI and PDF documents (with hyperlinks and
40802
3cd23f676c5b updated generated files;
wenzelm
parents: 40406
diff changeset
   531
  bookmarks), we recommend to include \verb|~~/lib/texinputs/pdfsetup.sty| as well.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   532
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   533
  \medskip As a final step of document preparation within Isabelle,
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   534
  \hyperlink{tool.document}{\mbox{\isa{\isatool{document}}}}~\verb|-c| is run on the resulting \verb|document| directory.  Thus the actual output document is built and
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   535
  installed in its proper place (as linked by the session's \verb|index.html| if option \verb|-i| of \indexref{}{tool}{usedir}\hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} has
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   536
  been enabled, cf.\ \secref{sec:info}).  The generated sources are
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   537
  deleted after successful run of {\LaTeX} and friends.  Note that a
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   538
  separate copy of the sources may be retained by passing an option
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   539
  \verb|-D| to \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} when running the session.%
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   540
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   541
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   542
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   543
\isamarkupsection{Running {\LaTeX} within the Isabelle environment
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   544
  \label{sec:tool-latex}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   545
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   546
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   547
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   548
\begin{isamarkuptext}%
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   549
The \indexdef{}{tool}{latex}\hypertarget{tool.latex}{\hyperlink{tool.latex}{\mbox{\isa{\isatool{latex}}}}} tool provides the basic interface for
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   550
  Isabelle document preparation.  Its usage is:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   551
\begin{ttbox}
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   552
Usage: isabelle latex [OPTIONS] [FILE]
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   553
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   554
  Options are:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   555
    -o FORMAT    specify output format: dvi (default), dvi.gz, ps,
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   556
                 ps.gz, pdf, bbl, idx, sty, syms
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   557
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   558
  Run LaTeX (and related tools) on FILE (default root.tex),
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   559
  producing the specified output format.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   560
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   561
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   562
  Appropriate {\LaTeX}-related programs are run on the input file,
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   563
  according to the given output format: \hyperlink{executable.latex}{\mbox{\isa{\isatt{latex}}}},
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   564
  \hyperlink{executable.pdflatex}{\mbox{\isa{\isatt{pdflatex}}}}, \hyperlink{executable.dvips}{\mbox{\isa{\isatt{dvips}}}}, \hyperlink{executable.bibtex}{\mbox{\isa{\isatt{bibtex}}}}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   565
  (for \verb|bbl|), and \hyperlink{executable.makeindex}{\mbox{\isa{\isatt{makeindex}}}} (for \verb|idx|).  The actual commands are determined from the settings
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   566
  environment (\hyperlink{setting.ISABELLE-LATEX}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}LATEX}}}} etc.).
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   567
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   568
  The \verb|sty| output format causes the Isabelle style files to
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   569
  be updated from the distribution.  This is useful in special
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   570
  situations where the document sources are to be processed another
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   571
  time by separate tools (cf.\ option \verb|-D| of \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}}).
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   572
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   573
  The \verb|syms| output is for internal use; it generates lists
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   574
  of symbols that are available without loading additional {\LaTeX}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   575
  packages.%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   576
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   577
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   578
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   579
\isamarkupsubsubsection{Examples%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   580
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   581
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   582
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   583
\begin{isamarkuptext}%
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   584
Invoking \hyperlink{tool.latex}{\mbox{\isa{\isatool{latex}}}} by hand may be occasionally useful when
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   585
  debugging failed attempts of the automatic document preparation
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   586
  stage of batch-mode Isabelle.  The abortive process leaves the
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   587
  sources at a certain place within \hyperlink{setting.ISABELLE-BROWSER-INFO}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}BROWSER{\isaliteral{5F}{\isacharunderscore}}INFO}}}},
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   588
  see the runtime error message for details.  This enables users to
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   589
  inspect {\LaTeX} runs in further detail, e.g.\ like this:
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48590
diff changeset
   590
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   591
\begin{ttbox}
40387
e4c9e0dad473 moved ISABELLE_IDENTIFIER from ISABELLE_OUTPUT further up to ISABELLE_HOME_USER;
wenzelm
parents: 35587
diff changeset
   592
  cd ~/.isabelle/IsabelleXXXX/browser_info/HOL/Test/document
28505
f98751bd715f updated generated file;
wenzelm
parents: 28238
diff changeset
   593
  isabelle latex -o pdf
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   594
\end{ttbox}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   595
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   596
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   597
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   598
\isadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   599
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   600
\endisadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   601
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   602
\isatagtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   603
\isacommand{end}\isamarkupfalse%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   604
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   605
\endisatagtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   606
{\isafoldtheory}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   607
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   608
\isadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   609
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   610
\endisadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   611
\end{isabellebody}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   612
%%% Local Variables:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   613
%%% mode: latex
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   614
%%% TeX-master: "root"
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   615
%%% End: