doc-src/System/Thy/document/Basics.tex
author wenzelm
Fri, 17 Aug 2012 17:35:07 +0200
changeset 48844 6408fb6f7d81
parent 48838 623ba165d059
child 48858 86816c61b5ca
permissions -rw-r--r--
some explanations on isabelle components;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     1
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     2
\begin{isabellebody}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     3
\def\isabellecontext{Basics}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     4
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     5
\isadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     6
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     7
\endisadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     8
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     9
\isatagtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    10
\isacommand{theory}\isamarkupfalse%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    11
\ Basics\isanewline
43564
9864182c6bad document antiquotations are managed as theory data, with proper name space and entity markup;
wenzelm
parents: 41955
diff changeset
    12
\isakeyword{imports}\ Base\isanewline
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    13
\isakeyword{begin}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    14
\endisatagtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    15
{\isafoldtheory}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    16
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    17
\isadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    18
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    19
\endisadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    20
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    21
\isamarkupchapter{The Isabelle system environment%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    22
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    23
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    24
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    25
\begin{isamarkuptext}%
47823
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
    26
This manual describes Isabelle together with related tools and
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
    27
  user interfaces as seen from a system oriented view.  See also the
28916
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents: 28914
diff changeset
    28
  \emph{Isabelle/Isar Reference Manual}~\cite{isabelle-isar-ref} for
47823
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
    29
  the actual Isabelle input language and related concepts, and
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
    30
  \emph{The Isabelle/Isar Implementation
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
    31
  Manual}~\cite{isabelle-implementation} for the main concepts of the
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
    32
  underlying implementation in Isabelle/ML.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    33
28916
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents: 28914
diff changeset
    34
  \medskip The Isabelle system environment provides the following
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents: 28914
diff changeset
    35
  basic infrastructure to integrate tools smoothly.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    36
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
    37
  \begin{enumerate}
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    38
28916
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents: 28914
diff changeset
    39
  \item The \emph{Isabelle settings} mechanism provides process
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents: 28914
diff changeset
    40
  environment variables to all Isabelle executables (including tools
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents: 28914
diff changeset
    41
  and user interfaces).
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    42
47823
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
    43
  \item The raw \emph{Isabelle process} (\indexref{}{executable}{isabelle-process}\hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isaliteral{2D}{\isacharminus}}process}}}}) runs logic sessions either interactively or in
28505
f98751bd715f updated generated file;
wenzelm
parents: 28503
diff changeset
    44
  batch mode.  In particular, this view abstracts over the invocation
f98751bd715f updated generated file;
wenzelm
parents: 28503
diff changeset
    45
  of the actual ML system to be used.  Regular users rarely need to
f98751bd715f updated generated file;
wenzelm
parents: 28503
diff changeset
    46
  care about the low-level process.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    47
48813
wenzelm
parents: 48602
diff changeset
    48
  \item The main \emph{Isabelle tool wrapper} (\indexref{}{executable}{isabelle}\hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}}) provides a generic startup environment Isabelle related
47823
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
    49
  utilities, user interfaces etc.  Such tools automatically benefit
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
    50
  from the settings mechanism.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    51
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
    52
  \end{enumerate}%
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    53
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    54
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    55
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    56
\isamarkupsection{Isabelle settings \label{sec:settings}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    57
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    58
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    59
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    60
\begin{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    61
The Isabelle system heavily depends on the \emph{settings
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    62
  mechanism}\indexbold{settings}.  Essentially, this is a statically
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
    63
  scoped collection of environment variables, such as \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME}}}}, \hyperlink{setting.ML-SYSTEM}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}SYSTEM}}}}, \hyperlink{setting.ML-HOME}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}HOME}}}}.  These
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    64
  variables are \emph{not} intended to be set directly from the shell,
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    65
  though.  Isabelle employs a somewhat more sophisticated scheme of
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    66
  \emph{settings files} --- one for site-wide defaults, another for
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    67
  additional user-specific modifications.  With all configuration
47823
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
    68
  variables in clearly defined places, this scheme is more
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
    69
  maintainable and user-friendly than global shell environment
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
    70
  variables.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    71
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    72
  In particular, we avoid the typical situation where prospective
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    73
  users of a software package are told to put several things into
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    74
  their shell startup scripts, before being able to actually run the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    75
  program. Isabelle requires none such administrative chores of its
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    76
  end-users --- the executables can be invoked straight away.
40802
3cd23f676c5b updated generated files;
wenzelm
parents: 40569
diff changeset
    77
  Occasionally, users would still want to put the \verb|$ISABELLE_HOME/bin| directory into their shell's search path, but
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
    78
  this is not required.%
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    79
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    80
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    81
%
32323
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
    82
\isamarkupsubsection{Bootstrapping the environment \label{sec:boot}%
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    83
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    84
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    85
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    86
\begin{isamarkuptext}%
32323
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
    87
Isabelle executables need to be run within a proper settings
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
    88
  environment.  This is bootstrapped as described below, on the first
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
    89
  invocation of one of the outer wrapper scripts (such as
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
    90
  \indexref{}{executable}{isabelle}\hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}}).  This happens only once for each
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
    91
  process tree, i.e.\ the environment is passed to subprocesses
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
    92
  according to regular Unix conventions.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    93
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    94
  \begin{enumerate}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    95
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
    96
  \item The special variable \indexdef{}{setting}{ISABELLE\_HOME}\hypertarget{setting.ISABELLE-HOME}{\hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME}}}}} is
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    97
  determined automatically from the location of the binary that has
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    98
  been run.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    99
  
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   100
  You should not try to set \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME}}}} manually. Also
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   101
  note that the Isabelle executables either have to be run from their
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   102
  original location in the distribution directory, or via the
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 47823
diff changeset
   103
  executable objects created by the \hyperlink{tool.install}{\mbox{\isa{\isatool{install}}}} tool.  Symbolic
40802
3cd23f676c5b updated generated files;
wenzelm
parents: 40569
diff changeset
   104
  links are admissible, but a plain copy of the \verb|$ISABELLE_HOME/bin| files will not work!
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   105
40802
3cd23f676c5b updated generated files;
wenzelm
parents: 40569
diff changeset
   106
  \item The file \verb|$ISABELLE_HOME/etc/settings| is run as a
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   107
  \indexref{}{executable}{bash}\hyperlink{executable.bash}{\mbox{\isa{\isatt{bash}}}} shell script with the auto-export option for
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   108
  variables enabled.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   109
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   110
  This file holds a rather long list of shell variable assigments,
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   111
  thus providing the site-wide default settings.  The Isabelle
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   112
  distribution already contains a global settings file with sensible
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   113
  defaults for most variables.  When installing the system, only a few
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   114
  of these may have to be adapted (probably \hyperlink{setting.ML-SYSTEM}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}SYSTEM}}}}
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   115
  etc.).
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   116
  
28286
bed3865290b4 updated generated file;
wenzelm
parents: 28250
diff changeset
   117
  \item The file \verb|$ISABELLE_HOME_USER/etc/settings| (if it
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   118
  exists) is run in the same way as the site default settings. Note
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   119
  that the variable \hyperlink{setting.ISABELLE-HOME-USER}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME{\isaliteral{5F}{\isacharunderscore}}USER}}}} has already been set
47661
012a887997f3 USER_HOME settings variable points to cross-platform user home directory;
wenzelm
parents: 45028
diff changeset
   120
  before --- usually to something like \verb|$USER_HOME/.isabelle/IsabelleXXXX|.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   121
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   122
  Thus individual users may override the site-wide defaults.  See also
40802
3cd23f676c5b updated generated files;
wenzelm
parents: 40569
diff changeset
   123
  file \verb|$ISABELLE_HOME/etc/user-settings.sample| in the
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   124
  distribution.  Typically, a user settings file would contain only a
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   125
  few lines, just the assigments that are really changed.  One should
40802
3cd23f676c5b updated generated files;
wenzelm
parents: 40569
diff changeset
   126
  definitely \emph{not} start with a full copy the basic \verb|$ISABELLE_HOME/etc/settings|. This could cause very annoying
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   127
  maintainance problems later, when the Isabelle installation is
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   128
  updated or changed otherwise.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   129
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   130
  \end{enumerate}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   131
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   132
  Since settings files are regular GNU \indexdef{}{executable}{bash}\hypertarget{executable.bash}{\hyperlink{executable.bash}{\mbox{\isa{\isatt{bash}}}}} scripts,
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   133
  one may use complex shell commands, such as \verb|if| or
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   134
  \verb|case| statements to set variables depending on the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   135
  system architecture or other environment variables.  Such advanced
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   136
  features should be added only with great care, though. In
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   137
  particular, external environment references should be kept at a
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   138
  minimum.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   139
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   140
  \medskip A few variables are somewhat special:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   141
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   142
  \begin{itemize}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   143
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   144
  \item \indexdef{}{setting}{ISABELLE\_PROCESS}\hypertarget{setting.ISABELLE-PROCESS}{\hyperlink{setting.ISABELLE-PROCESS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}PROCESS}}}}} and \indexdef{}{setting}{ISABELLE\_TOOL}\hypertarget{setting.ISABELLE-TOOL}{\hyperlink{setting.ISABELLE-TOOL}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}TOOL}}}}} are set
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   145
  automatically to the absolute path names of the \hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isaliteral{2D}{\isacharminus}}process}}}} and \hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}} executables,
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   146
  respectively.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   147
  
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   148
  \item \indexref{}{setting}{ISABELLE\_OUTPUT}\hyperlink{setting.ISABELLE-OUTPUT}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}OUTPUT}}}} will have the identifiers of
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   149
  the Isabelle distribution (cf.\ \hyperlink{setting.ISABELLE-IDENTIFIER}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}IDENTIFIER}}}}) and
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   150
  the ML system (cf.\ \hyperlink{setting.ML-IDENTIFIER}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}IDENTIFIER}}}}) appended automatically
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   151
  to its value.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   152
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   153
  \end{itemize}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   154
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   155
  \medskip Note that the settings environment may be inspected with
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 47823
diff changeset
   156
  the \hyperlink{tool.getenv}{\mbox{\isa{\isatool{getenv}}}} tool.  This might help to figure out the effect
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 47823
diff changeset
   157
  of complex settings scripts.%
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   158
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   159
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   160
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   161
\isamarkupsubsection{Common variables%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   162
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   163
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   164
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   165
\begin{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   166
This is a reference of common Isabelle settings variables. Note that
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   167
  the list is somewhat open-ended. Third-party utilities or interfaces
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   168
  may add their own selection. Variables that are special in some
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   169
  sense are marked with \isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   170
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   171
  \begin{description}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   172
47823
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   173
  \item[\indexdef{}{setting}{USER\_HOME}\hypertarget{setting.USER-HOME}{\hyperlink{setting.USER-HOME}{\mbox{\isa{\isatt{USER{\isaliteral{5F}{\isacharunderscore}}HOME}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}] Is the cross-platform
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   174
  user home directory.  On Unix systems this is usually the same as
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   175
  \hyperlink{setting.HOME}{\mbox{\isa{\isatt{HOME}}}}, but on Windows it is the regular home directory of
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   176
  the user, not the one of within the Cygwin root
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   177
  file-system.\footnote{Cygwin itself offers another choice whether
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   178
  its HOME should point to the \texttt{/home} directory tree or the
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   179
  Windows user home.}
47661
012a887997f3 USER_HOME settings variable points to cross-platform user home directory;
wenzelm
parents: 45028
diff changeset
   180
012a887997f3 USER_HOME settings variable points to cross-platform user home directory;
wenzelm
parents: 45028
diff changeset
   181
 \item[\indexdef{}{setting}{ISABELLE\_HOME}\hypertarget{setting.ISABELLE-HOME}{\hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}] is the location of the
012a887997f3 USER_HOME settings variable points to cross-platform user home directory;
wenzelm
parents: 45028
diff changeset
   182
  top-level Isabelle distribution directory. This is automatically
012a887997f3 USER_HOME settings variable points to cross-platform user home directory;
wenzelm
parents: 45028
diff changeset
   183
  determined from the Isabelle executable that has been invoked.  Do
012a887997f3 USER_HOME settings variable points to cross-platform user home directory;
wenzelm
parents: 45028
diff changeset
   184
  not attempt to set \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME}}}} yourself from the shell!
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   185
  
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   186
  \item[\indexdef{}{setting}{ISABELLE\_HOME\_USER}\hypertarget{setting.ISABELLE-HOME-USER}{\hyperlink{setting.ISABELLE-HOME-USER}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME{\isaliteral{5F}{\isacharunderscore}}USER}}}}}] is the user-specific
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   187
  counterpart of \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME}}}}. The default value is
47661
012a887997f3 USER_HOME settings variable points to cross-platform user home directory;
wenzelm
parents: 45028
diff changeset
   188
  relative to \verb|$USER_HOME/.isabelle|, under rare
012a887997f3 USER_HOME settings variable points to cross-platform user home directory;
wenzelm
parents: 45028
diff changeset
   189
  circumstances this may be changed in the global setting file.
012a887997f3 USER_HOME settings variable points to cross-platform user home directory;
wenzelm
parents: 45028
diff changeset
   190
  Typically, the \hyperlink{setting.ISABELLE-HOME-USER}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME{\isaliteral{5F}{\isacharunderscore}}USER}}}} directory mimics
012a887997f3 USER_HOME settings variable points to cross-platform user home directory;
wenzelm
parents: 45028
diff changeset
   191
  \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME}}}} to some extend. In particular, site-wide
012a887997f3 USER_HOME settings variable points to cross-platform user home directory;
wenzelm
parents: 45028
diff changeset
   192
  defaults may be overridden by a private \verb|$ISABELLE_HOME_USER/etc/settings|.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   193
  
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   194
  \item[\indexdef{}{setting}{ISABELLE\_PLATFORM}\hypertarget{setting.ISABELLE-PLATFORM}{\hyperlink{setting.ISABELLE-PLATFORM}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}PLATFORM}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}] is automatically
36196
cbb9ee265cdd added ISABELLE_PLATFORM and ISABELLE_PLATFORM64 -- NB: ML and JVM may have a different idea;
wenzelm
parents: 33952
diff changeset
   195
  set to a symbolic identifier for the underlying hardware and
cbb9ee265cdd added ISABELLE_PLATFORM and ISABELLE_PLATFORM64 -- NB: ML and JVM may have a different idea;
wenzelm
parents: 33952
diff changeset
   196
  operating system.  The Isabelle platform identification always
cbb9ee265cdd added ISABELLE_PLATFORM and ISABELLE_PLATFORM64 -- NB: ML and JVM may have a different idea;
wenzelm
parents: 33952
diff changeset
   197
  refers to the 32 bit variant, even this is a 64 bit machine.  Note
cbb9ee265cdd added ISABELLE_PLATFORM and ISABELLE_PLATFORM64 -- NB: ML and JVM may have a different idea;
wenzelm
parents: 33952
diff changeset
   198
  that the ML or Java runtime may have a different idea, depending on
cbb9ee265cdd added ISABELLE_PLATFORM and ISABELLE_PLATFORM64 -- NB: ML and JVM may have a different idea;
wenzelm
parents: 33952
diff changeset
   199
  which binaries are actually run.
cbb9ee265cdd added ISABELLE_PLATFORM and ISABELLE_PLATFORM64 -- NB: ML and JVM may have a different idea;
wenzelm
parents: 33952
diff changeset
   200
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   201
  \item[\indexdef{}{setting}{ISABELLE\_PLATFORM64}\hypertarget{setting.ISABELLE-PLATFORM64}{\hyperlink{setting.ISABELLE-PLATFORM64}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}PLATFORM{\isadigit{6}}{\isadigit{4}}}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}] is similar to
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   202
  \hyperlink{setting.ISABELLE-PLATFORM}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}PLATFORM}}}} but refers to the proper 64 bit variant
36196
cbb9ee265cdd added ISABELLE_PLATFORM and ISABELLE_PLATFORM64 -- NB: ML and JVM may have a different idea;
wenzelm
parents: 33952
diff changeset
   203
  on a platform that supports this; the value is empty for 32 bit.
47823
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   204
  Note that the following bash expression (including the quotes)
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   205
  prefers the 64 bit platform, if that is available:
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   206
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   207
  \verb|"${ISABELLE_PLATFORM64:-$ISABELLE_PLATFORM}"|
36196
cbb9ee265cdd added ISABELLE_PLATFORM and ISABELLE_PLATFORM64 -- NB: ML and JVM may have a different idea;
wenzelm
parents: 33952
diff changeset
   208
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   209
  \item[\indexdef{}{setting}{ISABELLE\_PROCESS}\hypertarget{setting.ISABELLE-PROCESS}{\hyperlink{setting.ISABELLE-PROCESS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}PROCESS}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}, \hyperlink{setting.ISABELLE-TOOL}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}TOOL}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}] are automatically set to the full path
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   210
  names of the \hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isaliteral{2D}{\isacharminus}}process}}}} and \hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}} executables, respectively.  Thus other tools and scripts
40802
3cd23f676c5b updated generated files;
wenzelm
parents: 40569
diff changeset
   211
  need not assume that the \verb|$ISABELLE_HOME/bin| directory is
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   212
  on the current search path of the shell.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   213
  
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   214
  \item[\indexdef{}{setting}{ISABELLE\_IDENTIFIER}\hypertarget{setting.ISABELLE-IDENTIFIER}{\hyperlink{setting.ISABELLE-IDENTIFIER}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}IDENTIFIER}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}] refers
47823
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   215
  to the name of this Isabelle distribution, e.g.\ ``\verb|Isabelle2012|''.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   216
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   217
  \item[\indexdef{}{setting}{ML\_SYSTEM}\hypertarget{setting.ML-SYSTEM}{\hyperlink{setting.ML-SYSTEM}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}SYSTEM}}}}}, \indexdef{}{setting}{ML\_HOME}\hypertarget{setting.ML-HOME}{\hyperlink{setting.ML-HOME}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}HOME}}}}},
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   218
  \indexdef{}{setting}{ML\_OPTIONS}\hypertarget{setting.ML-OPTIONS}{\hyperlink{setting.ML-OPTIONS}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}OPTIONS}}}}}, \indexdef{}{setting}{ML\_PLATFORM}\hypertarget{setting.ML-PLATFORM}{\hyperlink{setting.ML-PLATFORM}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}PLATFORM}}}}}, \indexdef{}{setting}{ML\_IDENTIFIER}\hypertarget{setting.ML-IDENTIFIER}{\hyperlink{setting.ML-IDENTIFIER}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}IDENTIFIER}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}] specify the underlying ML system
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   219
  to be used for Isabelle.  There is only a fixed set of admissable
40802
3cd23f676c5b updated generated files;
wenzelm
parents: 40569
diff changeset
   220
  \hyperlink{setting.ML-SYSTEM}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}SYSTEM}}}} names (see the \verb|$ISABELLE_HOME/etc/settings| file of the distribution).
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   221
  
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   222
  The actual compiler binary will be run from the directory \hyperlink{setting.ML-HOME}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}HOME}}}}, with \hyperlink{setting.ML-OPTIONS}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}OPTIONS}}}} as first arguments on the
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   223
  command line.  The optional \hyperlink{setting.ML-PLATFORM}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}PLATFORM}}}} may specify the
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   224
  binary format of ML heap images, which is useful for cross-platform
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   225
  installations.  The value of \hyperlink{setting.ML-IDENTIFIER}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}IDENTIFIER}}}} is
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   226
  automatically obtained by composing the values of \hyperlink{setting.ML-SYSTEM}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}SYSTEM}}}}, \hyperlink{setting.ML-PLATFORM}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}PLATFORM}}}} and the Isabelle version values.
47823
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   227
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   228
  \item[\indexdef{}{setting}{ISABELLE\_JDK\_HOME}\hypertarget{setting.ISABELLE-JDK-HOME}{\hyperlink{setting.ISABELLE-JDK-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}JDK{\isaliteral{5F}{\isacharunderscore}}HOME}}}}}] needs to point to a full JDK
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   229
  (Java Development Kit) installation with \verb|javac| and
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   230
  \verb|jar| executables.  This is essential for Isabelle/Scala
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   231
  and other JVM-based tools to work properly.  Note that conventional
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   232
  \verb|JAVA_HOME| usually points to the JRE (Java Runtime
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   233
  Environment), not JDK.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   234
  
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   235
  \item[\indexdef{}{setting}{ISABELLE\_PATH}\hypertarget{setting.ISABELLE-PATH}{\hyperlink{setting.ISABELLE-PATH}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}PATH}}}}}] is a list of directories
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   236
  (separated by colons) where Isabelle logic images may reside.  When
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   237
  looking up heaps files, the value of \hyperlink{setting.ML-IDENTIFIER}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}IDENTIFIER}}}} is
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   238
  appended to each component internally.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   239
  
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   240
  \item[\indexdef{}{setting}{ISABELLE\_OUTPUT}\hypertarget{setting.ISABELLE-OUTPUT}{\hyperlink{setting.ISABELLE-OUTPUT}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}OUTPUT}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}] is a
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   241
  directory where output heap files should be stored by default. The
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   242
  ML system and Isabelle version identifier is appended here, too.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   243
  
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   244
  \item[\indexdef{}{setting}{ISABELLE\_BROWSER\_INFO}\hypertarget{setting.ISABELLE-BROWSER-INFO}{\hyperlink{setting.ISABELLE-BROWSER-INFO}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}BROWSER{\isaliteral{5F}{\isacharunderscore}}INFO}}}}}] is the directory where
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   245
  theory browser information (HTML text, graph data, and printable
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   246
  documents) is stored (see also \secref{sec:info}).  The default
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   247
  value is \verb|$ISABELLE_HOME_USER/browser_info|.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   248
  
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   249
  \item[\indexdef{}{setting}{ISABELLE\_LOGIC}\hypertarget{setting.ISABELLE-LOGIC}{\hyperlink{setting.ISABELLE-LOGIC}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}LOGIC}}}}}] specifies the default logic to
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   250
  load if none is given explicitely by the user.  The default value is
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   251
  \verb|HOL|.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   252
  
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   253
  \item[\indexdef{}{setting}{ISABELLE\_LINE\_EDITOR}\hypertarget{setting.ISABELLE-LINE-EDITOR}{\hyperlink{setting.ISABELLE-LINE-EDITOR}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}LINE{\isaliteral{5F}{\isacharunderscore}}EDITOR}}}}}] specifies the default
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 47823
diff changeset
   254
  line editor for the \indexref{}{tool}{tty}\hyperlink{tool.tty}{\mbox{\isa{\isatool{tty}}}} interface.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   255
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   256
  \item[\indexdef{}{setting}{ISABELLE\_USEDIR\_OPTIONS}\hypertarget{setting.ISABELLE-USEDIR-OPTIONS}{\hyperlink{setting.ISABELLE-USEDIR-OPTIONS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}USEDIR{\isaliteral{5F}{\isacharunderscore}}OPTIONS}}}}}] is implicitly prefixed
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 47823
diff changeset
   257
  to the command line of any \indexref{}{tool}{usedir}\hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} invocation. This
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 47823
diff changeset
   258
  typically contains compilation options for object-logics --- \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} is the basic tool for managing logic sessions (cf.\ the
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   259
  \verb|IsaMakefile|s in the distribution).
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   260
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   261
  \item[\indexdef{}{setting}{ISABELLE\_LATEX}\hypertarget{setting.ISABELLE-LATEX}{\hyperlink{setting.ISABELLE-LATEX}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}LATEX}}}}}, \indexdef{}{setting}{ISABELLE\_PDFLATEX}\hypertarget{setting.ISABELLE-PDFLATEX}{\hyperlink{setting.ISABELLE-PDFLATEX}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}PDFLATEX}}}}}, \indexdef{}{setting}{ISABELLE\_BIBTEX}\hypertarget{setting.ISABELLE-BIBTEX}{\hyperlink{setting.ISABELLE-BIBTEX}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}BIBTEX}}}}}, \indexdef{}{setting}{ISABELLE\_DVIPS}\hypertarget{setting.ISABELLE-DVIPS}{\hyperlink{setting.ISABELLE-DVIPS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}DVIPS}}}}}] refer to {\LaTeX} related tools for Isabelle
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   262
  document preparation (see also \secref{sec:tool-latex}).
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   263
  
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   264
  \item[\indexdef{}{setting}{ISABELLE\_TOOLS}\hypertarget{setting.ISABELLE-TOOLS}{\hyperlink{setting.ISABELLE-TOOLS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}TOOLS}}}}}] is a colon separated list of
28505
f98751bd715f updated generated file;
wenzelm
parents: 28503
diff changeset
   265
  directories that are scanned by \hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}} for external
f98751bd715f updated generated file;
wenzelm
parents: 28503
diff changeset
   266
  utility programs (see also \secref{sec:isabelle-tool}).
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   267
  
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   268
  \item[\indexdef{}{setting}{ISABELLE\_DOCS}\hypertarget{setting.ISABELLE-DOCS}{\hyperlink{setting.ISABELLE-DOCS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}DOCS}}}}}] is a colon separated list of
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   269
  directories with documentation files.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   270
  
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   271
  \item[\indexdef{}{setting}{ISABELLE\_DOC\_FORMAT}\hypertarget{setting.ISABELLE-DOC-FORMAT}{\hyperlink{setting.ISABELLE-DOC-FORMAT}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}DOC{\isaliteral{5F}{\isacharunderscore}}FORMAT}}}}}] specifies the preferred
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   272
  document format, typically \verb|dvi| or \verb|pdf|.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   273
  
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   274
  \item[\indexdef{}{setting}{DVI\_VIEWER}\hypertarget{setting.DVI-VIEWER}{\hyperlink{setting.DVI-VIEWER}{\mbox{\isa{\isatt{DVI{\isaliteral{5F}{\isacharunderscore}}VIEWER}}}}}] specifies the command to be used
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   275
  for displaying \verb|dvi| files.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   276
  
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   277
  \item[\indexdef{}{setting}{PDF\_VIEWER}\hypertarget{setting.PDF-VIEWER}{\hyperlink{setting.PDF-VIEWER}{\mbox{\isa{\isatt{PDF{\isaliteral{5F}{\isacharunderscore}}VIEWER}}}}}] specifies the command to be used
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   278
  for displaying \verb|pdf| files.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   279
  
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   280
  \item[\indexdef{}{setting}{PRINT\_COMMAND}\hypertarget{setting.PRINT-COMMAND}{\hyperlink{setting.PRINT-COMMAND}{\mbox{\isa{\isatt{PRINT{\isaliteral{5F}{\isacharunderscore}}COMMAND}}}}}] specifies the standard printer
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   281
  spool command, which is expected to accept \verb|ps| files.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   282
  
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   283
  \item[\indexdef{}{setting}{ISABELLE\_TMP\_PREFIX}\hypertarget{setting.ISABELLE-TMP-PREFIX}{\hyperlink{setting.ISABELLE-TMP-PREFIX}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}TMP{\isaliteral{5F}{\isacharunderscore}}PREFIX}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}] is the
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   284
  prefix from which any running \hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isaliteral{2D}{\isacharminus}}process}}}}
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   285
  derives an individual directory for temporary files.  The default is
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   286
  somewhere in \verb|/tmp|.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   287
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   288
  \end{description}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   289
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   290
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   291
%
32323
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   292
\isamarkupsubsection{Additional components \label{sec:components}%
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   293
}
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   294
\isamarkuptrue%
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   295
%
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   296
\begin{isamarkuptext}%
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   297
Any directory may be registered as an explicit \emph{Isabelle
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   298
  component}.  The general layout conventions are that of the main
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   299
  Isabelle distribution itself, and the following two files (both
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   300
  optional) have a special meaning:
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   301
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   302
  \begin{itemize}
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   303
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   304
  \item \verb|etc/settings| holds additional settings that are
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   305
  initialized when bootstrapping the overall Isabelle environment,
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   306
  cf.\ \secref{sec:boot}.  As usual, the content is interpreted as a
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   307
  \verb|bash| script.  It may refer to the component's enclosing
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   308
  directory via the \verb|COMPONENT| shell variable.
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   309
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   310
  For example, the following setting allows to refer to files within
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   311
  the component later on, without having to hardwire absolute paths:
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   312
48838
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   313
\begin{ttbox}
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   314
MY_COMPONENT_HOME="$COMPONENT"
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   315
\end{ttbox}
32323
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   316
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   317
  Components can also add to existing Isabelle settings such as
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   318
  \indexdef{}{setting}{ISABELLE\_TOOLS}\hypertarget{setting.ISABELLE-TOOLS}{\hyperlink{setting.ISABELLE-TOOLS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}TOOLS}}}}}, in order to provide
32323
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   319
  component-specific tools that can be invoked by end-users.  For
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   320
  example:
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   321
48838
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   322
\begin{ttbox}
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   323
ISABELLE_TOOLS="$ISABELLE_TOOLS:$COMPONENT/lib/Tools"
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   324
\end{ttbox}
32323
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   325
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   326
  \item \verb|etc/components| holds a list of further
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   327
  sub-components of the same structure.  The directory specifications
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   328
  given here can be either absolute (with leading \verb|/|) or
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   329
  relative to the component's main directory.
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   330
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   331
  \end{itemize}
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   332
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   333
  The root of component initialization is \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME}}}}
32323
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   334
  itself.  After initializing all of its sub-components recursively,
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   335
  \hyperlink{setting.ISABELLE-HOME-USER}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME{\isaliteral{5F}{\isacharunderscore}}USER}}}} is included in the same manner (if
40569
ffcff7509a49 more explicit explanation of init_component shell function;
wenzelm
parents: 40406
diff changeset
   336
  that directory exists).  This allows to install private components
ffcff7509a49 more explicit explanation of init_component shell function;
wenzelm
parents: 40406
diff changeset
   337
  via \verb|$ISABELLE_HOME_USER/etc/components|, although it is
ffcff7509a49 more explicit explanation of init_component shell function;
wenzelm
parents: 40406
diff changeset
   338
  often more convenient to do that programmatically via the
ffcff7509a49 more explicit explanation of init_component shell function;
wenzelm
parents: 40406
diff changeset
   339
  \verb,init_component, shell function in the \verb,etc/settings,
ffcff7509a49 more explicit explanation of init_component shell function;
wenzelm
parents: 40406
diff changeset
   340
  script of \verb,$ISABELLE_HOME_USER, (or any other component
ffcff7509a49 more explicit explanation of init_component shell function;
wenzelm
parents: 40406
diff changeset
   341
  directory).  For example:
48838
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   342
\begin{ttbox}
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   343
init_component "$HOME/screwdriver-2.0"
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   344
\end{ttbox}
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   345
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   346
  This is tolerant wrt.\ missing component directories, but might
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   347
  produce a warning.
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   348
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   349
  \medskip More complex situations may be addressed by initializing
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   350
  components listed in a given catalog file, relatively to some base
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   351
  directory:
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   352
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   353
\begin{ttbox}
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   354
init_components "$HOME/my_component_store" "some_catalog_file"
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   355
\end{ttbox}
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   356
623ba165d059 direct support for component forests via init_components;
wenzelm
parents: 48813
diff changeset
   357
  The component directories listed in the catalog file are treated as
48844
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48838
diff changeset
   358
  relative to the given base directory.
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48838
diff changeset
   359
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48838
diff changeset
   360
  See also \secref{sec:tool-components} for some tool-support for
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48838
diff changeset
   361
  resolving components that are formally initialized but not installed
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48838
diff changeset
   362
  yet.%
32323
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   363
\end{isamarkuptext}%
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   364
\isamarkuptrue%
8185d3bfcbf1 tuned "Bootstrapping the environment";
wenzelm
parents: 32088
diff changeset
   365
%
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   366
\isamarkupsection{The raw Isabelle process%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   367
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   368
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   369
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   370
\begin{isamarkuptext}%
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   371
The \indexdef{}{executable}{isabelle-process}\hypertarget{executable.isabelle-process}{\hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isaliteral{2D}{\isacharminus}}process}}}}} executable runs bare-bones
28505
f98751bd715f updated generated file;
wenzelm
parents: 28503
diff changeset
   372
  Isabelle logic sessions --- either interactively or in batch mode.
f98751bd715f updated generated file;
wenzelm
parents: 28503
diff changeset
   373
  It provides an abstraction over the underlying ML system, and over
f98751bd715f updated generated file;
wenzelm
parents: 28503
diff changeset
   374
  the actual heap file locations.  Its usage is:
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   375
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   376
\begin{ttbox}
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   377
Usage: isabelle-process [OPTIONS] [INPUT] [OUTPUT]
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   378
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   379
  Options are:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   380
    -I           startup Isar interaction mode
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   381
    -P           startup Proof General interaction mode
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   382
    -S           secure mode -- disallow critical operations
45028
d608dd8cd409 alternative Socket_Channel;
wenzelm
parents: 43564
diff changeset
   383
    -T ADDR      startup process wrapper, with socket address
38253
3d4e521014f7 Isabelle_Process: separate input fifo for commands (still using the old tty protocol);
wenzelm
parents: 36196
diff changeset
   384
    -W IN:OUT    startup process wrapper, with input/output fifos
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   385
    -X           startup PGIP interaction mode
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   386
    -e MLTEXT    pass MLTEXT to the ML session
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   387
    -f           pass 'Session.finish();' to the ML session
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   388
    -m MODE      add print mode for output
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   389
    -q           non-interactive session
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   390
    -r           open heap file read-only
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   391
    -u           pass 'use"ROOT.ML";' to the ML session
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   392
    -w           reset write permissions on OUTPUT
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   393
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   394
  INPUT (default "\$ISABELLE_LOGIC") and OUTPUT specify in/out heaps.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   395
  These are either names to be searched in the Isabelle path, or
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   396
  actual file names (containing at least one /).
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   397
  If INPUT is "RAW_ML_SYSTEM", just start the bare bones ML system.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   398
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   399
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   400
  Input files without path specifications are looked up in the
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   401
  \hyperlink{setting.ISABELLE-PATH}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}PATH}}}} setting, which may consist of multiple
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   402
  components separated by colons --- these are tried in the given
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   403
  order with the value of \hyperlink{setting.ML-IDENTIFIER}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}IDENTIFIER}}}} appended
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   404
  internally.  In a similar way, base names are relative to the
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   405
  directory specified by \hyperlink{setting.ISABELLE-OUTPUT}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}OUTPUT}}}}.  In any case,
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   406
  actual file locations may also be given by including at least one
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   407
  slash (\verb|/|) in the name (hint: use \verb|./| to
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   408
  refer to the current directory).%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   409
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   410
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   411
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   412
\isamarkupsubsubsection{Options%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   413
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   414
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   415
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   416
\begin{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   417
If the input heap file does not have write permission bits set, or
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   418
  the \verb|-r| option is given explicitely, then the session
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   419
  started will be read-only.  That is, the ML world cannot be
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   420
  committed back into the image file.  Otherwise, a writable session
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   421
  enables commits into either the input file, or into another output
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   422
  heap file (if that is given as the second argument on the command
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   423
  line).
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   424
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   425
  The read-write state of sessions is determined at startup only, it
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   426
  cannot be changed intermediately. Also note that heap images may
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   427
  require considerable amounts of disk space (approximately
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   428
  50--200~MB). Users are responsible for themselves to dispose their
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   429
  heap files when they are no longer needed.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   430
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   431
  \medskip The \verb|-w| option makes the output heap file
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   432
  read-only after terminating.  Thus subsequent invocations cause the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   433
  logic image to be read-only automatically.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   434
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   435
  \medskip Using the \verb|-e| option, arbitrary ML code may be
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   436
  passed to the Isabelle session from the command line. Multiple
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   437
  \verb|-e|'s are evaluated in the given order. Strange things
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   438
  may happen when errorneous ML code is provided. Also make sure that
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   439
  the ML commands are terminated properly by semicolon.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   440
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   441
  \medskip The \verb|-u| option is a shortcut for \verb|-e| passing ``\verb|use "ROOT.ML";|'' to the ML session.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   442
  The \verb|-f| option passes ``\verb|Session.finish();|'', which is intended mainly for administrative
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   443
  purposes.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   444
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   445
  \medskip The \verb|-m| option adds identifiers of print modes
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   446
  to be made active for this session. Typically, this is used by some
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   447
  user interface, e.g.\ to enable output of proper mathematical
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   448
  symbols.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   449
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   450
  \medskip Isabelle normally enters an interactive top-level loop
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   451
  (after processing the \verb|-e| texts). The \verb|-q|
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   452
  option inhibits interaction, thus providing a pure batch mode
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   453
  facility.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   454
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   455
  \medskip The \verb|-I| option makes Isabelle enter Isar
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   456
  interaction mode on startup, instead of the primitive ML top-level.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   457
  The \verb|-P| option configures the top-level loop for
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   458
  interaction with the Proof General user interface, and the
38253
3d4e521014f7 Isabelle_Process: separate input fifo for commands (still using the old tty protocol);
wenzelm
parents: 36196
diff changeset
   459
  \verb|-X| option enables XML-based PGIP communication.
3d4e521014f7 Isabelle_Process: separate input fifo for commands (still using the old tty protocol);
wenzelm
parents: 36196
diff changeset
   460
45028
d608dd8cd409 alternative Socket_Channel;
wenzelm
parents: 43564
diff changeset
   461
  \medskip The \verb|-T| or \verb|-W| option makes
d608dd8cd409 alternative Socket_Channel;
wenzelm
parents: 43564
diff changeset
   462
  Isabelle enter a special process wrapper for interaction via the
d608dd8cd409 alternative Socket_Channel;
wenzelm
parents: 43564
diff changeset
   463
  Isabelle/Scala layer, see also \verb|~~/src/Pure/System/isabelle_process.scala|.  The protocol between
d608dd8cd409 alternative Socket_Channel;
wenzelm
parents: 43564
diff changeset
   464
  the ML and JVM process is private to the implementation.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   465
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   466
  \medskip The \verb|-S| option makes the Isabelle process more
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   467
  secure by disabling some critical operations, notably runtime
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   468
  compilation and evaluation of ML source code.%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   469
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   470
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   471
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   472
\isamarkupsubsubsection{Examples%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   473
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   474
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   475
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   476
\begin{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   477
Run an interactive session of the default object-logic (as specified
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   478
  by the \hyperlink{setting.ISABELLE-LOGIC}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}LOGIC}}}} setting) like this:
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   479
\begin{ttbox}
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   480
isabelle-process
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   481
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   482
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   483
  Usually \hyperlink{setting.ISABELLE-LOGIC}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}LOGIC}}}} refers to one of the standard
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   484
  logic images, which are read-only by default.  A writable session
47823
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   485
  --- based on \verb|HOL|, but output to \verb|Test| (in the
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   486
  directory specified by the \hyperlink{setting.ISABELLE-OUTPUT}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}OUTPUT}}}} setting) ---
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   487
  may be invoked as follows:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   488
\begin{ttbox}
47823
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   489
isabelle-process HOL Test
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   490
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   491
  Ending this session normally (e.g.\ by typing control-D) dumps the
47823
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   492
  whole ML system state into \verb|Test| (be prepared for more
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   493
  than 100\,MB):
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   494
47823
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   495
  The \verb|Test| session may be continued later (still in
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   496
  writable state) by:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   497
\begin{ttbox}
47823
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   498
isabelle-process Test
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   499
\end{ttbox}
47823
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   500
  A read-only \verb|Test| session may be started by:
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   501
\begin{ttbox}
47823
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   502
isabelle-process -r Test
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   503
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   504
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   505
  \medskip Note that manual session management like this does
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   506
  \emph{not} provide proper setup for theory presentation.  This would
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 47823
diff changeset
   507
  require \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}}.
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   508
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   509
  \bigskip The next example demonstrates batch execution of Isabelle.
47823
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   510
  We retrieve the \verb|Main| theory value from the theory loader
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   511
  within ML (observe the delicate quoting rules for the Bash shell
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   512
  vs.\ ML):
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   513
\begin{ttbox}
47823
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   514
isabelle-process -e 'Thy_Info.get_theory "Main";' -q -r HOL
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   515
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   516
  Note that the output text will be interspersed with additional junk
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   517
  messages by the ML runtime environment.  The \verb|-W| option
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   518
  allows to communicate with the Isabelle process via an external
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   519
  program in a more robust fashion.%
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   520
\end{isamarkuptext}%
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   521
\isamarkuptrue%
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   522
%
48813
wenzelm
parents: 48602
diff changeset
   523
\isamarkupsection{The Isabelle tool wrapper \label{sec:isabelle-tool}%
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   524
}
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   525
\isamarkuptrue%
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   526
%
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   527
\begin{isamarkuptext}%
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   528
All Isabelle related tools and interfaces are called via a common
28505
f98751bd715f updated generated file;
wenzelm
parents: 28503
diff changeset
   529
  wrapper --- \hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}}:
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   530
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   531
\begin{ttbox}
28505
f98751bd715f updated generated file;
wenzelm
parents: 28503
diff changeset
   532
Usage: isabelle TOOL [ARGS ...]
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   533
28507
325592dad134 updated generated file;
wenzelm
parents: 28505
diff changeset
   534
  Start Isabelle tool NAME with ARGS; pass "-?" for tool specific help.
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   535
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   536
  Available tools are:
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   537
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   538
    browser - Isabelle graph browser
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   539
    \dots
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   540
\end{ttbox}
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   541
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   542
  In principle, Isabelle tools are ordinary executable scripts that
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   543
  are run within the Isabelle settings environment, see
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   544
  \secref{sec:settings}.  The set of available tools is collected by
40406
313a24b66a8d updated generated files;
wenzelm
parents: 40387
diff changeset
   545
  \hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}} from the directories listed in the \hyperlink{setting.ISABELLE-TOOLS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}TOOLS}}}} setting.  Do not try to call the scripts directly
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   546
  from the shell.  Neither should you add the tool directories to your
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   547
  shell's search path!%
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   548
\end{isamarkuptext}%
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   549
\isamarkuptrue%
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   550
%
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   551
\isamarkupsubsubsection{Examples%
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   552
}
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   553
\isamarkuptrue%
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   554
%
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   555
\begin{isamarkuptext}%
48813
wenzelm
parents: 48602
diff changeset
   556
Show the list of available documentation of the Isabelle
wenzelm
parents: 48602
diff changeset
   557
  distribution:
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   558
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   559
\begin{ttbox}
28505
f98751bd715f updated generated file;
wenzelm
parents: 28503
diff changeset
   560
  isabelle doc
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   561
\end{ttbox}
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   562
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   563
  View a certain document as follows:
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   564
\begin{ttbox}
47823
4fad76e6f4ba some manual updates;
wenzelm
parents: 47683
diff changeset
   565
  isabelle doc system
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   566
\end{ttbox}
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   567
48813
wenzelm
parents: 48602
diff changeset
   568
  Query the Isabelle settings environment:
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28222
diff changeset
   569
\begin{ttbox}
48813
wenzelm
parents: 48602
diff changeset
   570
  isabelle getenv ISABELLE_HOME_USER
wenzelm
parents: 48602
diff changeset
   571
\end{ttbox}%
28222
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   572
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   573
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   574
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   575
\isadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   576
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   577
\endisadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   578
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   579
\isatagtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   580
\isacommand{end}\isamarkupfalse%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   581
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   582
\endisatagtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   583
{\isafoldtheory}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   584
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   585
\isadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   586
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   587
\endisadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   588
\end{isabellebody}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   589
%%% Local Variables:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   590
%%% mode: latex
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   591
%%% TeX-master: "root"
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   592
%%% End: