doc-src/System/Thy/document/Misc.tex
author wenzelm
Fri, 24 Aug 2012 13:05:14 +0200
changeset 48919 aaca64a7390c
parent 48844 6408fb6f7d81
child 48936 e6d9e46ff7bc
permissions -rw-r--r--
some markup for inlined files;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     1
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     2
\begin{isabellebody}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     3
\def\isabellecontext{Misc}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     4
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     5
\isadelimtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     6
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     7
\endisadelimtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     8
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     9
\isatagtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    10
\isacommand{theory}\isamarkupfalse%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    11
\ Misc\isanewline
43564
9864182c6bad document antiquotations are managed as theory data, with proper name space and entity markup;
wenzelm
parents: 41512
diff changeset
    12
\isakeyword{imports}\ Base\isanewline
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    13
\isakeyword{begin}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    14
\endisatagtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    15
{\isafoldtheory}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    16
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    17
\isadelimtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    18
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    19
\endisadelimtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    20
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    21
\isamarkupchapter{Miscellaneous tools \label{ch:tools}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    22
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    23
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    24
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    25
\begin{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    26
Subsequently we describe various Isabelle related utilities, given
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    27
  in alphabetical order.%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    28
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    29
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    30
%
48844
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    31
\isamarkupsection{Resolving Isabelle components \label{sec:tool-components}%
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    32
}
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    33
\isamarkuptrue%
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    34
%
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    35
\begin{isamarkuptext}%
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    36
The \indexdef{}{tool}{components}\hypertarget{tool.components}{\hyperlink{tool.components}{\mbox{\isa{\isatool{components}}}}} tool resolves Isabelle components:
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    37
\begin{ttbox}
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    38
Usage: isabelle components [OPTIONS] [COMPONENTS ...]
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    39
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    40
  Options are:
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    41
    -R URL       component repository
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    42
                 (default $ISABELLE_COMPONENT_REPOSITORY)
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    43
    -a           all missing components
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    44
    -l           list status
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    45
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    46
  Resolve Isabelle components via download and installation.
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    47
  COMPONENTS are identified via base name.
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    48
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    49
  ISABELLE_COMPONENT_REPOSITORY="http://isabelle.in.tum.de/components"
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    50
\end{ttbox}
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    51
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    52
  Components are initialized as described in \secref{sec:components}
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    53
  in a permissive manner, which can mark components as ``missing''.
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    54
  This state is amended by letting \hyperlink{tool.components}{\mbox{\isa{\isatool{components}}}} download and
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    55
  unpack components that are published on the default component
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    56
  repository \url{http://isabelle.in.tum.de/components/} in
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    57
  particular.
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    58
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    59
  Option \verb|-R| specifies an alternative component
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    60
  repository.  Note that \verb|file:///| URLs can be used for
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    61
  local directories.
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    62
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    63
  Option \verb|-a| selects all missing components to be
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    64
  installed.  Explicit components may be named as command
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    65
  line-arguments as well.  Note that components are uniquely
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    66
  identified by their base name, while the installation takes place in
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    67
  the location that was specified in the attempt to initialize the
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    68
  component before.
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    69
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    70
  Option \verb|-l| lists the current state of available and
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    71
  missing components with their location (full name) within the
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    72
  file-system.%
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    73
\end{isamarkuptext}%
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    74
\isamarkuptrue%
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
    75
%
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    76
\isamarkupsection{Displaying documents%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    77
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    78
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    79
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    80
\begin{isamarkuptext}%
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
    81
The \indexdef{}{tool}{display}\hypertarget{tool.display}{\hyperlink{tool.display}{\mbox{\isa{\isatool{display}}}}} tool displays documents in DVI or PDF
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    82
  format:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    83
\begin{ttbox}
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
    84
Usage: isabelle display [OPTIONS] FILE
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    85
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    86
  Options are:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    87
    -c           cleanup -- remove FILE after use
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    88
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    89
  Display document FILE (in DVI format).
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    90
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    91
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    92
  \medskip The \verb|-c| option causes the input file to be
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    93
  removed after use.  The program for viewing \verb|dvi| files is
40406
313a24b66a8d updated generated files;
wenzelm
parents: 32325
diff changeset
    94
  determined by the \hyperlink{setting.DVI-VIEWER}{\mbox{\isa{\isatt{DVI{\isaliteral{5F}{\isacharunderscore}}VIEWER}}}} setting.%
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    95
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    96
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    97
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    98
\isamarkupsection{Viewing documentation \label{sec:tool-doc}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    99
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   100
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   101
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   102
\begin{isamarkuptext}%
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   103
The \indexdef{}{tool}{doc}\hypertarget{tool.doc}{\hyperlink{tool.doc}{\mbox{\isa{\isatool{doc}}}}} tool displays online documentation:
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   104
\begin{ttbox}
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   105
Usage: isabelle doc [DOC]
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   106
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   107
  View Isabelle documentation DOC, or show list of available documents.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   108
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   109
  If called without arguments, it lists all available documents. Each
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   110
  line starts with an identifier, followed by a short description. Any
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   111
  of these identifiers may be specified as the first argument in order
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   112
  to have the corresponding document displayed.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   113
40406
313a24b66a8d updated generated files;
wenzelm
parents: 32325
diff changeset
   114
  \medskip The \hyperlink{setting.ISABELLE-DOCS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}DOCS}}}} setting specifies the list of
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   115
  directories (separated by colons) to be scanned for documentations.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   116
  The program for viewing \verb|dvi| files is determined by the
40406
313a24b66a8d updated generated files;
wenzelm
parents: 32325
diff changeset
   117
  \hyperlink{setting.DVI-VIEWER}{\mbox{\isa{\isatt{DVI{\isaliteral{5F}{\isacharunderscore}}VIEWER}}}} setting.%
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   118
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   119
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   120
%
47828
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   121
\isamarkupsection{Shell commands within the settings environment \label{sec:tool-env}%
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   122
}
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   123
\isamarkuptrue%
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   124
%
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   125
\begin{isamarkuptext}%
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   126
The \indexdef{}{tool}{env}\hypertarget{tool.env}{\hyperlink{tool.env}{\mbox{\isa{\isatool{env}}}}} tool is a direct wrapper for the standard
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   127
  \verb|/usr/bin/env| command on POSIX systems, running within
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   128
  the Isabelle settings environment (\secref{sec:settings}).
47828
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   129
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   130
  The command-line arguments are that of the underlying version of
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   131
  \verb|env|.  For example, the following invokes an instance of
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   132
  the GNU Bash shell within the Isabelle environment:
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   133
\begin{alltt}
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   134
  isabelle env bash
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   135
\end{alltt}%
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   136
\end{isamarkuptext}%
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   137
\isamarkuptrue%
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   138
%
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   139
\isamarkupsection{Getting logic images%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   140
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   141
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   142
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   143
\begin{isamarkuptext}%
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   144
The \indexdef{}{tool}{findlogics}\hypertarget{tool.findlogics}{\hyperlink{tool.findlogics}{\mbox{\isa{\isatool{findlogics}}}}} tool traverses all directories
40406
313a24b66a8d updated generated files;
wenzelm
parents: 32325
diff changeset
   145
  specified in \hyperlink{setting.ISABELLE-PATH}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}PATH}}}}, looking for Isabelle logic
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   146
  images. Its usage is:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   147
\begin{ttbox}
48577
wenzelm
parents: 47828
diff changeset
   148
Usage: isabelle findlogics
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   149
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   150
  Collect heap file names from ISABELLE_PATH.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   151
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   152
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   153
  The base names of all files found on the path are printed --- sorted
40406
313a24b66a8d updated generated files;
wenzelm
parents: 32325
diff changeset
   154
  and with duplicates removed. Also note that lookup in \hyperlink{setting.ISABELLE-PATH}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}PATH}}}} includes the current values of \hyperlink{setting.ML-SYSTEM}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}SYSTEM}}}}
313a24b66a8d updated generated files;
wenzelm
parents: 32325
diff changeset
   155
  and \hyperlink{setting.ML-PLATFORM}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}PLATFORM}}}}. Thus switching to another ML compiler
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   156
  may change the set of logic images available.%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   157
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   158
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   159
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   160
\isamarkupsection{Inspecting the settings environment \label{sec:tool-getenv}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   161
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   162
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   163
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   164
\begin{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   165
The Isabelle settings environment --- as provided by the
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   166
  site-default and user-specific settings files --- can be inspected
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   167
  with the \indexdef{}{tool}{getenv}\hypertarget{tool.getenv}{\hyperlink{tool.getenv}{\mbox{\isa{\isatool{getenv}}}}} tool:
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   168
\begin{ttbox}
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   169
Usage: isabelle getenv [OPTIONS] [VARNAMES ...]
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   170
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   171
  Options are:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   172
    -a           display complete environment
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   173
    -b           print values only (doesn't work for -a)
31497
5333aa739082 isabelle getenv: option -d;
wenzelm
parents: 28916
diff changeset
   174
    -d FILE      dump complete environment to FILE
5333aa739082 isabelle getenv: option -d;
wenzelm
parents: 28916
diff changeset
   175
                 (null terminated entries)
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   176
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   177
  Get value of VARNAMES from the Isabelle settings.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   178
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   179
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   180
  With the \verb|-a| option, one may inspect the full process
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   181
  environment that Isabelle related programs are run in. This usually
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   182
  contains much more variables than are actually Isabelle settings.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   183
  Normally, output is a list of lines of the form \isa{name}\verb|=|\isa{value}. The \verb|-b| option
31497
5333aa739082 isabelle getenv: option -d;
wenzelm
parents: 28916
diff changeset
   184
  causes only the values to be printed.
5333aa739082 isabelle getenv: option -d;
wenzelm
parents: 28916
diff changeset
   185
5333aa739082 isabelle getenv: option -d;
wenzelm
parents: 28916
diff changeset
   186
  Option \verb|-d| produces a dump of the complete environment
5333aa739082 isabelle getenv: option -d;
wenzelm
parents: 28916
diff changeset
   187
  to the specified file.  Entries are terminated by the ASCII null
5333aa739082 isabelle getenv: option -d;
wenzelm
parents: 28916
diff changeset
   188
  character, i.e.\ the C string terminator.%
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   189
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   190
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   191
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   192
\isamarkupsubsubsection{Examples%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   193
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   194
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   195
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   196
\begin{isamarkuptext}%
48815
wenzelm
parents: 48814
diff changeset
   197
Get the location of \hyperlink{setting.ISABELLE-HOME-USER}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME{\isaliteral{5F}{\isacharunderscore}}USER}}}} where
wenzelm
parents: 48814
diff changeset
   198
  user-specific information is stored:
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   199
\begin{ttbox}
48815
wenzelm
parents: 48814
diff changeset
   200
isabelle getenv ISABELLE_HOME_USER
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   201
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   202
48815
wenzelm
parents: 48814
diff changeset
   203
  \medskip Get the value only of the same settings variable, which is
wenzelm
parents: 48814
diff changeset
   204
particularly useful in shell scripts:
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   205
\begin{ttbox}
28505
f98751bd715f updated generated file;
wenzelm
parents: 28253
diff changeset
   206
isabelle getenv -b ISABELLE_OUTPUT
48815
wenzelm
parents: 48814
diff changeset
   207
\end{ttbox}%
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   208
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   209
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   210
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   211
\isamarkupsection{Installing standalone Isabelle executables \label{sec:tool-install}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   212
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   213
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   214
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   215
\begin{isamarkuptext}%
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   216
By default, the main Isabelle binaries (\hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}} etc.)  are just run from their location within the
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   217
  distribution directory, probably indirectly by the shell through its
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   218
  \hyperlink{setting.PATH}{\mbox{\isa{\isatt{PATH}}}}.  Other schemes of installation are supported by the
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   219
  \indexdef{}{tool}{install}\hypertarget{tool.install}{\hyperlink{tool.install}{\mbox{\isa{\isatool{install}}}}} tool:
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   220
\begin{ttbox}
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   221
Usage: isabelle install [OPTIONS]
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   222
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   223
  Options are:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   224
    -d DISTDIR   use DISTDIR as Isabelle distribution
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   225
                 (default ISABELLE_HOME)
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   226
    -p DIR       install standalone binaries in DIR
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   227
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   228
  Install Isabelle executables with absolute references to the current
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   229
  distribution directory.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   230
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   231
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   232
  The \verb|-d| option overrides the current Isabelle
40406
313a24b66a8d updated generated files;
wenzelm
parents: 32325
diff changeset
   233
  distribution directory as determined by \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME}}}}.
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   234
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   235
  The \verb|-p| option installs executable wrapper scripts for
48815
wenzelm
parents: 48814
diff changeset
   236
  \hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isaliteral{2D}{\isacharminus}}process}}}}, \hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}}, containing
wenzelm
parents: 48814
diff changeset
   237
  proper absolute references to the Isabelle distribution directory.
wenzelm
parents: 48814
diff changeset
   238
  A typical \verb|DIR| specification would be some directory
wenzelm
parents: 48814
diff changeset
   239
  expected to be in the shell's \hyperlink{setting.PATH}{\mbox{\isa{\isatt{PATH}}}}, such as \verb|$HOME/bin|.
wenzelm
parents: 48814
diff changeset
   240
wenzelm
parents: 48814
diff changeset
   241
  It is possible to make symbolic links of the main Isabelle
wenzelm
parents: 48814
diff changeset
   242
  executables, but making separate copies outside the Isabelle
wenzelm
parents: 48814
diff changeset
   243
  distribution directory will not work.%
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   244
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   245
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   246
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   247
\isamarkupsection{Creating instances of the Isabelle logo%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   248
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   249
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   250
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   251
\begin{isamarkuptext}%
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   252
The \indexdef{}{tool}{logo}\hypertarget{tool.logo}{\hyperlink{tool.logo}{\mbox{\isa{\isatool{logo}}}}} tool creates any instance of the generic
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   253
  Isabelle logo as an Encapsuled Postscript file (EPS):
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   254
\begin{ttbox}
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   255
Usage: isabelle logo [OPTIONS] NAME
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   256
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   257
  Create instance NAME of the Isabelle logo (as EPS).
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   258
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   259
  Options are:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   260
    -o OUTFILE   set output file (default determined from NAME)
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   261
    -q           quiet mode
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   262
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   263
  You are encouraged to use this to create a derived logo for your
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   264
  Isabelle project.  For example, \hyperlink{tool.logo}{\mbox{\isa{\isatool{logo}}}}~\verb|Bali|
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   265
  creates \verb|isabelle_bali.eps|.%
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   266
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   267
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   268
%
48814
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   269
\isamarkupsection{Isabelle wrapper for make \label{sec:tool-make}%
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   270
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   271
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   272
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   273
\begin{isamarkuptext}%
48814
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   274
The old \indexdef{}{tool}{make}\hypertarget{tool.make}{\hyperlink{tool.make}{\mbox{\isa{\isatool{make}}}}} tool is a very simple wrapper for
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   275
  ordinary Unix \hyperlink{executable.make}{\mbox{\isa{\isatt{make}}}}:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   276
\begin{ttbox}
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   277
Usage: isabelle make [ARGS ...]
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   278
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   279
  Compile the logic in current directory using IsaMakefile.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   280
  ARGS are directly passed to the system make program.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   281
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   282
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   283
  Note that the Isabelle settings environment is also active. Thus one
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   284
  may refer to its values within the \verb|IsaMakefile|, e.g.\
48814
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   285
  \verb|$(ISABELLE_HOME)|. Furthermore, programs started from
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   286
  the make file also inherit this environment.%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   287
\end{isamarkuptext}%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   288
\isamarkuptrue%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   289
%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   290
\isamarkupsection{Creating Isabelle session directories
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   291
  \label{sec:tool-mkdir}%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   292
}
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   293
\isamarkuptrue%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   294
%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   295
\begin{isamarkuptext}%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   296
The old \indexdef{}{tool}{mkdir}\hypertarget{tool.mkdir}{\hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}}} tool prepares Isabelle session
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   297
  source directories, including a sensible default setup of \verb|IsaMakefile|, \verb|ROOT.ML|, and a \verb|document|
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   298
  directory with a minimal \verb|root.tex| that is sufficient to
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   299
  print all theories of the session (in the order of appearance); see
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   300
  \secref{sec:tool-document} for further information on Isabelle
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   301
  document preparation.  The usage of \hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}} is:
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   302
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   303
\begin{ttbox}
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   304
Usage: isabelle mkdir [OPTIONS] [LOGIC] NAME
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   305
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   306
  Options are:
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   307
    -I FILE      alternative IsaMakefile output
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   308
    -P           include parent logic target
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   309
    -b           setup build mode (session outputs heap image)
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   310
    -q           quiet mode
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   311
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   312
  Prepare session directory, including IsaMakefile and document source,
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   313
  with parent LOGIC (default ISABELLE_LOGIC=\$ISABELLE_LOGIC)
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   314
\end{ttbox}
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   315
48814
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   316
  The \hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}} tool is conservative in the sense that any
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   317
  existing \verb|IsaMakefile| etc.\ is left unchanged.  Thus it
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   318
  is safe to invoke it multiple times, although later runs may not
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   319
  have the desired effect.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   320
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   321
  Note that \hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}} is unable to change \verb|IsaMakefile|
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   322
  incrementally --- manual changes are required for multiple
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   323
  sub-sessions.  On order to get an initial working session, the only
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   324
  editing needed is to add appropriate \verb|use_thy| calls to the
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   325
  generated \verb|ROOT.ML| file.%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   326
\end{isamarkuptext}%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   327
\isamarkuptrue%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   328
%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   329
\isamarkupsubsubsection{Options%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   330
}
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   331
\isamarkuptrue%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   332
%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   333
\begin{isamarkuptext}%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   334
The \verb|-I| option specifies an alternative to \verb|IsaMakefile| for dependencies.  Note that ``\verb|-|'' refers
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   335
  to \emph{stdout}, i.e.\ ``\verb|-I-|'' provides an easy way
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   336
  to peek at \hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}}'s idea of \hyperlink{tool.make}{\mbox{\isa{\isatool{make}}}} setup required for
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   337
  some particular of Isabelle session.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   338
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   339
  \medskip The \verb|-P| option includes a target for the
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   340
  parent \verb|LOGIC| session in the generated \verb|IsaMakefile|.  The corresponding sources are assumed to be located
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   341
  within the Isabelle distribution.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   342
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   343
  \medskip The \verb|-b| option sets up the current directory
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   344
  as the base for a new session that provides an actual logic image,
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   345
  as opposed to one that only runs several theories based on an
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   346
  existing image.  Note that in the latter case, everything except
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   347
  \verb|IsaMakefile| would be placed into a separate directory
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   348
  \verb|NAME|, rather than the current one.  See
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   349
  \secref{sec:tool-usedir} for further information on \emph{build
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   350
  mode} vs.\ \emph{example mode} of \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}}.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   351
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   352
  \medskip The \verb|-q| option enables quiet mode, suppressing
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   353
  further notes on how to proceed.%
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   354
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   355
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   356
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   357
\isamarkupsection{Printing documents%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   358
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   359
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   360
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   361
\begin{isamarkuptext}%
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   362
The \indexdef{}{tool}{print}\hypertarget{tool.print}{\hyperlink{tool.print}{\mbox{\isa{\isatool{print}}}}} tool prints documents:
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   363
\begin{ttbox}
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   364
Usage: isabelle print [OPTIONS] FILE
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   365
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   366
  Options are:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   367
    -c           cleanup -- remove FILE after use
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   368
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   369
  Print document FILE.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   370
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   371
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   372
  The \verb|-c| option causes the input file to be removed
40406
313a24b66a8d updated generated files;
wenzelm
parents: 32325
diff changeset
   373
  after use.  The printer spool command is determined by the \hyperlink{setting.PRINT-COMMAND}{\mbox{\isa{\isatt{PRINT{\isaliteral{5F}{\isacharunderscore}}COMMAND}}}} setting.%
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   374
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   375
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   376
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   377
\isamarkupsection{Remove awkward symbol names from theory sources%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   378
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   379
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   380
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   381
\begin{isamarkuptext}%
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   382
The \indexdef{}{tool}{unsymbolize}\hypertarget{tool.unsymbolize}{\hyperlink{tool.unsymbolize}{\mbox{\isa{\isatool{unsymbolize}}}}} tool tunes Isabelle theory sources to
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   383
  improve readability for plain ASCII output (e.g.\ in email
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   384
  communication).  Most notably, \hyperlink{tool.unsymbolize}{\mbox{\isa{\isatool{unsymbolize}}}} replaces awkward
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   385
  arrow symbols such as \verb|\|\verb|<Longrightarrow>|
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   386
  by \verb|==>|.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   387
\begin{ttbox}
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   388
Usage: isabelle unsymbolize [FILES|DIRS...]
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   389
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   390
  Recursively find .thy/.ML files, removing unreadable symbol names.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   391
  Note: this is an ad-hoc script; there is no systematic way to replace
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   392
  symbols independently of the inner syntax of a theory!
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   393
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   394
  Renames old versions of FILES by appending "~~".
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   395
\end{ttbox}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   396
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   397
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   398
%
48814
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   399
\isamarkupsection{Running Isabelle sessions \label{sec:tool-usedir}%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   400
}
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   401
\isamarkuptrue%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   402
%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   403
\begin{isamarkuptext}%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   404
The old \indexdef{}{tool}{usedir}\hypertarget{tool.usedir}{\hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}}} tool builds object-logic images, or
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   405
  runs example sessions based on existing logics. Its usage is:
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   406
\begin{ttbox}
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   407
Usage: isabelle usedir [OPTIONS] LOGIC NAME
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   408
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   409
  Options are:
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   410
    -C BOOL      copy existing document directory to -D PATH (default true)
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   411
    -D PATH      dump generated document sources into PATH
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   412
    -M MAX       multithreading: maximum number of worker threads (default 1)
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   413
    -P PATH      set path for remote theory browsing information
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   414
    -Q INT       set threshold for sub-proof parallelization (default 50)
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   415
    -T LEVEL     multithreading: trace level (default 0)
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   416
    -V VARIANT   declare alternative document VARIANT
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   417
    -b           build mode (output heap image, using current dir)
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   418
    -d FORMAT    build document as FORMAT (default false)
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   419
    -f NAME      use ML file NAME (default ROOT.ML)
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   420
    -g BOOL      generate session graph image for document (default false)
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   421
    -i BOOL      generate theory browser information (default false)
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   422
    -m MODE      add print mode for output
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   423
    -p LEVEL     set level of detail for proof objects (default 0)
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   424
    -q LEVEL     set level of parallel proof checking (default 1)
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   425
    -r           reset session path
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   426
    -s NAME      override session NAME
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   427
    -t BOOL      internal session timing (default false)
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   428
    -v BOOL      be verbose (default false)
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   429
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   430
  Build object-logic or run examples. Also creates browsing
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   431
  information (HTML etc.) according to settings.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   432
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   433
  ISABELLE_USEDIR_OPTIONS=...
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   434
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   435
  ML_PLATFORM=...
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   436
  ML_HOME=...
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   437
  ML_SYSTEM=...
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   438
  ML_OPTIONS=...
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   439
\end{ttbox}
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   440
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   441
  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}}}}
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   442
  setting is implicitly prefixed to \emph{any} \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}}
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   443
  call. Since the \verb|IsaMakefile|s of all object-logics
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   444
  distributed with Isabelle just invoke \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} for the real
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   445
  work, one may control compilation options globally via above
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   446
  variable. In particular, generation of \rmindex{HTML} browsing
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   447
  information and document preparation is controlled here.%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   448
\end{isamarkuptext}%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   449
\isamarkuptrue%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   450
%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   451
\isamarkupsubsubsection{Options%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   452
}
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   453
\isamarkuptrue%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   454
%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   455
\begin{isamarkuptext}%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   456
Basically, there are two different modes of operation: \emph{build
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   457
  mode} (enabled through the \verb|-b| option) and
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   458
  \emph{example mode} (default).
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   459
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   460
  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
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   461
  \verb|NAME|, as provided on the command line. This will be a
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   462
  batch session, running \verb|ROOT.ML| from the current
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   463
  directory and then quitting.  It is assumed that \verb|ROOT.ML|
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   464
  contains all ML commands required to build the logic.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   465
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   466
  In example mode, \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} runs a read-only session of
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   467
  \verb|LOGIC| and automatically runs \verb|ROOT.ML| from
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   468
  within directory \verb|NAME|.  It assumes that this file
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   469
  contains appropriate ML commands to run the desired examples.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   470
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   471
  \medskip The \verb|-i| option controls theory browser data
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   472
  generation. It may be explicitly turned on or off --- as usual, the
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   473
  last occurrence of \verb|-i| on the command line wins.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   474
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   475
  The \verb|-P| option specifies a path (or actual URL) to be
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   476
  prefixed to any \emph{non-local} reference of existing theories.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   477
  Thus user sessions may easily link to existing Isabelle libraries
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   478
  already present on the WWW.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   479
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   480
  The \verb|-m| options specifies additional print modes to be
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   481
  activated temporarily while the session is processed.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   482
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   483
  \medskip The \verb|-d| option controls document preparation.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   484
  Valid arguments are \verb|false| (do not prepare any document;
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   485
  this is default), or any of \verb|dvi|, \verb|dvi.gz|,
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   486
  \verb|ps|, \verb|ps.gz|, \verb|pdf|.  The logic
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   487
  session has to provide a properly setup \verb|document|
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   488
  directory.  See \secref{sec:tool-document} and
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   489
  \secref{sec:tool-latex} for more details.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   490
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   491
  \medskip The \verb|-V| option declares alternative document
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   492
  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
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   493
  document is equivalent to ``\verb|document=theory,proof,ML|'', which means that all theory begin/end
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   494
  commands, proof body texts, and ML code will be presented
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   495
  faithfully.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   496
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   497
  An alternative variant ``\verb|outline=/proof/ML|'' would
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   498
  fold proof and ML parts, replacing the original text by a short
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   499
  place-holder.  The form ``\isa{name}\verb|=-|,'' means to
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   500
  remove document \isa{name} from the list of variants to be
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   501
  processed.  Any number of \verb|-V| options may be given;
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   502
  later declarations have precedence over earlier ones.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   503
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   504
  Some document variant \isa{name} may use an alternative {\LaTeX}
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   505
  entry point called \verb|document/root_|\isa{{\isaliteral{22}{\isachardoublequote}}name{\isaliteral{22}{\isachardoublequote}}}\verb|.tex| if that file exists; otherwise the common
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   506
  \verb|document/root.tex| is used.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   507
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   508
  \medskip The \verb|-g| option produces images of the theory
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   509
  dependency graph (cf.\ \secref{sec:browse}) for inclusion in the
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   510
  generated document, both as \verb|session_graph.eps| and
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   511
  \verb|session_graph.pdf| at the same time.  To include this in
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   512
  the final {\LaTeX} document one could say \verb|\includegraphics{session_graph}| in \verb|document/root.tex| (omitting the file-name extension enables
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   513
  {\LaTeX} to select to correct version, either for the DVI or PDF
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   514
  output path).
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   515
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   516
  \medskip The \verb|-D| option causes the generated document
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   517
  sources to be dumped at location \verb|PATH|; this path is
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   518
  relative to the session's main directory.  If the \verb|-C|
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   519
  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
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   520
  of document sources at \verb|Foo/generated|.  Subsequent
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   521
  invocation of \hyperlink{tool.document}{\mbox{\isa{\isatool{document}}}}~\verb|Foo/generated| (see also
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   522
  \secref{sec:tool-document}) will process the final result
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   523
  independently of an Isabelle job.  This decoupled mode of operation
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   524
  facilitates debugging of serious {\LaTeX} errors, for example.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   525
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   526
  \medskip The \verb|-p| option determines the level of detail
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   527
  for internal proof objects, see also the \emph{Isabelle Reference
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   528
  Manual}~\cite{isabelle-ref}.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   529
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   530
  \medskip The \verb|-q| option specifies the level of parallel
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   531
  proof checking: \verb|0| no proofs, \verb|1| toplevel
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   532
  proofs (default), \verb|2| toplevel and nested Isar proofs.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   533
  The option \verb|-Q| specifies a threshold for \verb|-q2|: nested proofs are only parallelized when the current number
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   534
  of forked proofs falls below the given value (default 50),
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   535
  multiplied by the number of worker threads (see option \verb|-M|).
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   536
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   537
  \medskip The \verb|-t| option produces a more detailed
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   538
  internal timing report of the session.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   539
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   540
  \medskip The \verb|-v| option causes additional information
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   541
  to be printed while running the session, notably the location of
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   542
  prepared documents.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   543
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   544
  \medskip The \verb|-M| option specifies the maximum number of
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   545
  parallel worker threads used for processing independent tasks when
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   546
  checking theory sources (multithreading only works on suitable ML
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   547
  platforms).  The special value of \verb|0| or \verb|max|
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   548
  refers to the number of actual CPU cores of the underlying machine,
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   549
  which is a good starting point for optimal performance tuning.  The
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   550
  \verb|-T| option determines the level of detail in tracing
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   551
  output concerning the internal locking and scheduling in
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   552
  multithreaded operation.  This may be helpful in isolating
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   553
  performance bottle-necks, e.g.\ due to excessive wait states when
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   554
  locking critical code sections.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   555
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   556
  \medskip Any \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} session is named by some \emph{session
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   557
  identifier}. These accumulate, documenting the way sessions depend
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   558
  on others. For example, consider \verb|Pure/FOL/ex|, which
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   559
  refers to the examples of FOL, which in turn is built upon Pure.
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   560
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   561
  The current session's identifier is by default just the base name of
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   562
  the \verb|LOGIC| argument (in build mode), or of the \verb|NAME| argument (in example mode). This may be overridden explicitly
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   563
  via the \verb|-s| option.%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   564
\end{isamarkuptext}%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   565
\isamarkuptrue%
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48736
diff changeset
   566
%
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   567
\isamarkupsection{Output the version identifier of the Isabelle distribution%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   568
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   569
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   570
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   571
\begin{isamarkuptext}%
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   572
The \indexdef{}{tool}{version}\hypertarget{tool.version}{\hyperlink{tool.version}{\mbox{\isa{\isatool{version}}}}} tool displays Isabelle version information:
41511
2fe62d602681 isabelle version -i;
wenzelm
parents: 40802
diff changeset
   573
\begin{ttbox}
2fe62d602681 isabelle version -i;
wenzelm
parents: 40802
diff changeset
   574
Usage: isabelle version [OPTIONS]
2fe62d602681 isabelle version -i;
wenzelm
parents: 40802
diff changeset
   575
2fe62d602681 isabelle version -i;
wenzelm
parents: 40802
diff changeset
   576
  Options are:
2fe62d602681 isabelle version -i;
wenzelm
parents: 40802
diff changeset
   577
    -i           short identification (derived from Mercurial id)
2fe62d602681 isabelle version -i;
wenzelm
parents: 40802
diff changeset
   578
2fe62d602681 isabelle version -i;
wenzelm
parents: 40802
diff changeset
   579
  Display Isabelle version information.
2fe62d602681 isabelle version -i;
wenzelm
parents: 40802
diff changeset
   580
\end{ttbox}
2fe62d602681 isabelle version -i;
wenzelm
parents: 40802
diff changeset
   581
2fe62d602681 isabelle version -i;
wenzelm
parents: 40802
diff changeset
   582
  \medskip The default is to output the full version string of the
47827
13530d774a21 updated system manual for release;
wenzelm
parents: 44799
diff changeset
   583
  Isabelle distribution, e.g.\ ``\verb|Isabelle2012: May 2012|.
41511
2fe62d602681 isabelle version -i;
wenzelm
parents: 40802
diff changeset
   584
2fe62d602681 isabelle version -i;
wenzelm
parents: 40802
diff changeset
   585
  The \verb|-i| option produces a short identification derived
2fe62d602681 isabelle version -i;
wenzelm
parents: 40802
diff changeset
   586
  from the Mercurial id of the \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME}}}} directory.%
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   587
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   588
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   589
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   590
\isamarkupsection{Convert XML to YXML%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   591
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   592
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   593
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   594
\begin{isamarkuptext}%
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   595
The \indexdef{}{tool}{yxml}\hypertarget{tool.yxml}{\hyperlink{tool.yxml}{\mbox{\isa{\isatool{yxml}}}}} tool converts a standard XML document (stdin)
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   596
  to the much simpler and more efficient YXML format of Isabelle
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   597
  (stdout).  The YXML format is defined as follows.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   598
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   599
  \begin{enumerate}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   600
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   601
  \item The encoding is always UTF-8.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   602
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   603
  \item Body text is represented verbatim (no escaping, no special
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   604
  treatment of white space, no named entities, no CDATA chunks, no
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   605
  comments).
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   606
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   607
  \item Markup elements are represented via ASCII control characters
40406
313a24b66a8d updated generated files;
wenzelm
parents: 32325
diff changeset
   608
  \isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E626F6C643E}{}\isactrlbold X\ {\isaliteral{3D}{\isacharequal}}\ {\isadigit{5}}{\isaliteral{22}{\isachardoublequote}}} and \isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E626F6C643E}{}\isactrlbold Y\ {\isaliteral{3D}{\isacharequal}}\ {\isadigit{6}}{\isaliteral{22}{\isachardoublequote}}} as follows:
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   609
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   610
  \begin{tabular}{ll}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   611
    XML & YXML \\\hline
40406
313a24b66a8d updated generated files;
wenzelm
parents: 32325
diff changeset
   612
    \verb|<|\isa{{\isaliteral{22}{\isachardoublequote}}name\ attribute{\isaliteral{22}{\isachardoublequote}}}\verb|=|\isa{{\isaliteral{22}{\isachardoublequote}}value\ {\isaliteral{5C3C646F74733E}{\isasymdots}}{\isaliteral{22}{\isachardoublequote}}}\verb|>| &
313a24b66a8d updated generated files;
wenzelm
parents: 32325
diff changeset
   613
    \isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E626F6C643E}{}\isactrlbold X\isaliteral{5C3C5E626F6C643E}{}\isactrlbold Yname\isaliteral{5C3C5E626F6C643E}{}\isactrlbold Yattribute{\isaliteral{22}{\isachardoublequote}}}\verb|=|\isa{{\isaliteral{22}{\isachardoublequote}}value{\isaliteral{5C3C646F74733E}{\isasymdots}}\isaliteral{5C3C5E626F6C643E}{}\isactrlbold X{\isaliteral{22}{\isachardoublequote}}} \\
313a24b66a8d updated generated files;
wenzelm
parents: 32325
diff changeset
   614
    \verb|</|\isa{name}\verb|>| & \isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E626F6C643E}{}\isactrlbold X\isaliteral{5C3C5E626F6C643E}{}\isactrlbold Y\isaliteral{5C3C5E626F6C643E}{}\isactrlbold X{\isaliteral{22}{\isachardoublequote}}} \\
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   615
  \end{tabular}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   616
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   617
  There is no special case for empty body text, i.e.\ \verb|<foo/>| is treated like \verb|<foo></foo>|.  Also note that
40406
313a24b66a8d updated generated files;
wenzelm
parents: 32325
diff changeset
   618
  \isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E626F6C643E}{}\isactrlbold X{\isaliteral{22}{\isachardoublequote}}} and \isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E626F6C643E}{}\isactrlbold Y{\isaliteral{22}{\isachardoublequote}}} may never occur in
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   619
  well-formed XML documents.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   620
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   621
  \end{enumerate}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   622
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   623
  Parsing YXML is pretty straight-forward: split the text into chunks
40406
313a24b66a8d updated generated files;
wenzelm
parents: 32325
diff changeset
   624
  separated by \isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E626F6C643E}{}\isactrlbold X{\isaliteral{22}{\isachardoublequote}}}, then split each chunk into
313a24b66a8d updated generated files;
wenzelm
parents: 32325
diff changeset
   625
  sub-chunks separated by \isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E626F6C643E}{}\isactrlbold Y{\isaliteral{22}{\isachardoublequote}}}.  Markup chunks start
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   626
  with an empty sub-chunk, and a second empty sub-chunk indicates
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   627
  close of an element.  Any other non-empty chunk consists of plain
44799
1fd0a1276a09 updated file locations;
wenzelm
parents: 43564
diff changeset
   628
  text.  For example, see \verb|~~/src/Pure/PIDE/yxml.ML| or
1fd0a1276a09 updated file locations;
wenzelm
parents: 43564
diff changeset
   629
  \verb|~~/src/Pure/PIDE/yxml.scala|.
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   630
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   631
  YXML documents may be detected quickly by checking that the first
40406
313a24b66a8d updated generated files;
wenzelm
parents: 32325
diff changeset
   632
  two characters are \isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E626F6C643E}{}\isactrlbold X\isaliteral{5C3C5E626F6C643E}{}\isactrlbold Y{\isaliteral{22}{\isachardoublequote}}}.%
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   633
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   634
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   635
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   636
\isadelimtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   637
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   638
\endisadelimtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   639
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   640
\isatagtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   641
\isacommand{end}\isamarkupfalse%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   642
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   643
\endisatagtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   644
{\isafoldtheory}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   645
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   646
\isadelimtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   647
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   648
\endisadelimtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   649
\end{isabellebody}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   650
%%% Local Variables:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   651
%%% mode: latex
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   652
%%% TeX-master: "root"
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   653
%%% End: