doc-src/System/Thy/document/Basics.tex
author wenzelm
Mon, 15 Sep 2008 19:42:51 +0200
changeset 28222 402a3f30542f
child 28238 398bf960d3d4
permissions -rw-r--r--
generated files;
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
\isanewline
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     7
\isanewline
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     8
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
     9
\endisadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    10
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    11
\isatagtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    12
\isacommand{theory}\isamarkupfalse%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    13
\ Basics\isanewline
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    14
\isakeyword{imports}\ Pure\isanewline
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    15
\isakeyword{begin}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    16
\endisatagtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    17
{\isafoldtheory}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    18
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    19
\isadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    20
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    21
\endisadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    22
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    23
\isamarkupchapter{The Isabelle system environment%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    24
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    25
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    26
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    27
\begin{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    28
This manual describes Isabelle together with related tools and user
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    29
  interfaces as seen from an outside (system oriented) view.  See also
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    30
  the \emph{Isabelle/Isar Reference Manual}~\cite{isabelle-isar-ref}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    31
  and the \emph{Isabelle Reference Manual}~\cite{isabelle-ref} for the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    32
  actual Isabelle commands and related functions.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    33
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    34
  \medskip The Isabelle system environment emerges from a few general
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    35
  concepts.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    36
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    37
  \begin{itemize}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    38
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    39
  \item The \emph{Isabelle settings mechanism} provides environment
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    40
  variables to all Isabelle programs (including tools and user
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    41
  interfaces).
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    42
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    43
  \item The \emph{Isabelle tools wrapper} (\indexdef{}{executable}{isatool}\hypertarget{executable.isatool}{\hyperlink{executable.isatool}{\mbox{\isa{\isatt{isatool}}}}})
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    44
  provides a generic startup platform for Isabelle related utilities.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    45
  Thus tools automatically benefit from the settings mechanism.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    46
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    47
  \item The raw \emph{Isabelle process} (\indexdef{}{executable}{isabelle}\hypertarget{executable.isabelle}{\hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}}} or
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    48
  \indexdef{}{executable}{isabelle-process}\hypertarget{executable.isabelle-process}{\hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isacharminus}process}}}}}) runs logic sessions either
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    49
  interactively or in batch mode.  In particular, this view abstracts
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    50
  over the invocation of the actual ML system to be used.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    51
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    52
  \item The \emph{Isabelle interface wrapper} (\indexdef{}{executable}{Isabelle}\hypertarget{executable.Isabelle}{\hyperlink{executable.Isabelle}{\mbox{\isa{\isatt{Isabelle}}}}} or \indexdef{}{executable}{isabelle-interface}\hypertarget{executable.isabelle-interface}{\hyperlink{executable.isabelle-interface}{\mbox{\isa{\isatt{isabelle{\isacharminus}interface}}}}}) provides some
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    53
  abstraction over the actual user interface to be used.  The de-facto
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    54
  standard interface for Isabelle is Proof~General
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    55
  \cite{proofgeneral}.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    56
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    57
  \end{itemize}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    58
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    59
  \medskip The beginning user would probably just run the default user
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    60
  interface (by invoking the capital \hyperlink{executable.Isabelle}{\mbox{\isa{\isatt{Isabelle}}}}).  This
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    61
  assumes that the system has already been installed, of course.  In
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    62
  case you have to do this yourself, see the \verb|INSTALL| file
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    63
  in the top-level directory of the distribution of how to proceed;
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    64
  binary packages for various system components are available as well.%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    65
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    66
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    67
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    68
\isamarkupsection{Isabelle settings \label{sec:settings}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    69
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    70
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    71
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    72
\begin{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    73
The Isabelle system heavily depends on the \emph{settings
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    74
  mechanism}\indexbold{settings}.  Essentially, this is a statically
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    75
  scoped collection of environment variables, such as \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}HOME}}}}, \hyperlink{setting.ML-SYSTEM}{\mbox{\isa{\isatt{ML{\isacharunderscore}SYSTEM}}}}, \hyperlink{setting.ML-HOME}{\mbox{\isa{\isatt{ML{\isacharunderscore}HOME}}}}.  These
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    76
  variables are \emph{not} intended to be set directly from the shell,
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    77
  though.  Isabelle employs a somewhat more sophisticated scheme of
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    78
  \emph{settings files} --- one for site-wide defaults, another for
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    79
  additional user-specific modifications.  With all configuration
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    80
  variables in at most two places, this scheme is more maintainable
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    81
  and user-friendly than global shell environment variables.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    82
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    83
  In particular, we avoid the typical situation where prospective
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    84
  users of a software package are told to put several things into
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    85
  their shell startup scripts, before being able to actually run the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    86
  program. Isabelle requires none such administrative chores of its
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    87
  end-users --- the executables can be invoked straight away.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    88
  Occasionally, users would still want to put the Isabelle \verb|bin| directory into their shell's search path, but this is not
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    89
  required.%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    90
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    91
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    92
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    93
\isamarkupsubsection{Building the environment%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    94
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    95
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    96
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    97
\begin{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    98
Whenever any of the Isabelle executables is run, their settings
402a3f30542f generated files;
wenzelm
parents:
diff changeset
    99
  environment is put together as follows.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   100
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   101
  \begin{enumerate}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   102
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   103
  \item The special variable \indexdef{}{setting}{ISABELLE\_HOME}\hypertarget{setting.ISABELLE-HOME}{\hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}HOME}}}}} is
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   104
  determined automatically from the location of the binary that has
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   105
  been run.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   106
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   107
  You should not try to set \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}HOME}}}} manually. Also
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   108
  note that the Isabelle executables either have to be run from their
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   109
  original location in the distribution directory, or via the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   110
  executable objects created by the \hyperlink{tool.install}{\mbox{\isa{\isatt{install}}}} utility (see
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   111
  \secref{sec:tool-install}).  Just doing a plain copy of the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   112
  \verb|bin| files will not work!
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   113
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   114
  \item The file \verb|$ISABELLE_HOME/etc/settings| ist run as
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   115
  a shell script with the auto-export option for variables enabled.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   116
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   117
  This file holds a rather long list of shell variable assigments,
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   118
  thus providing the site-wide default settings.  The Isabelle
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   119
  distribution already contains a global settings file with sensible
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   120
  defaults for most variables.  When installing the system, only a few
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   121
  of these may have to be adapted (probably \hyperlink{setting.ML-SYSTEM}{\mbox{\isa{\isatt{ML{\isacharunderscore}SYSTEM}}}}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   122
  etc.).
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   123
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   124
  \item The file \verb|$ISABELLE_HOME_USER/etc/settings| (if it
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   125
  exists) is run in the same way as the site default settings. Note
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   126
  that the variable \hyperlink{setting.ISABELLE-HOME-USER}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}HOME{\isacharunderscore}USER}}}} has already been set
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   127
  before --- usually to \verb|~/isabelle|.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   128
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   129
  Thus individual users may override the site-wide defaults.  See also
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   130
  file \verb|etc/user-settings.sample| in the distribution.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   131
  Typically, a user settings file would contain only a few lines, just
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   132
  the assigments that are really changed.  One should definitely
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   133
  \emph{not} start with a full copy the basic \verb|$ISABELLE_HOME/etc/settings|. This could cause very annoying
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   134
  maintainance problems later, when the Isabelle installation is
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   135
  updated or changed otherwise.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   136
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   137
  \end{enumerate}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   138
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   139
  Note that settings files are actually full GNU bash scripts. So one
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   140
  may use complex shell commands, such as \verb|if| or
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   141
  \verb|case| statements to set variables depending on the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   142
  system architecture or other environment variables.  Such advanced
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   143
  features should be added only with great care, though. In
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   144
  particular, external environment references should be kept at a
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   145
  minimum.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   146
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   147
  \medskip A few variables are somewhat special:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   148
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   149
  \begin{itemize}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   150
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   151
  \item \indexdef{}{setting}{ISABELLE}\hypertarget{setting.ISABELLE}{\hyperlink{setting.ISABELLE}{\mbox{\isa{\isatt{ISABELLE}}}}} and \indexdef{}{setting}{ISATOOL}\hypertarget{setting.ISATOOL}{\hyperlink{setting.ISATOOL}{\mbox{\isa{\isatt{ISATOOL}}}}} are set
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   152
  automatically to the absolute path names of the \hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isacharminus}process}}}} and \hyperlink{executable.isatool}{\mbox{\isa{\isatt{isatool}}}} executables,
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   153
  respectively.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   154
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   155
  \item \indexdef{}{setting}{ISABELLE\_OUTPUT}\hypertarget{setting.ISABELLE-OUTPUT}{\hyperlink{setting.ISABELLE-OUTPUT}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}OUTPUT}}}}} will have the identifiers of
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   156
  the Isabelle distribution (cf.\ \hyperlink{setting.ISABELLE-IDENTIFIER}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}IDENTIFIER}}}}) and
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   157
  the ML system (cf.\ \hyperlink{setting.ML-IDENTIFIER}{\mbox{\isa{\isatt{ML{\isacharunderscore}IDENTIFIER}}}}) appended automatically
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   158
  to its value.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   159
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   160
  \end{itemize}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   161
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   162
  \medskip The Isabelle settings scheme is conceptually simple, but
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   163
  not completely trivial.  For debugging purposes, the resulting
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   164
  environment may be inspected with the \hyperlink{tool.getenv}{\mbox{\isa{\isatt{getenv}}}} utility, see
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   165
  \secref{sec:tool-getenv}.%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   166
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   167
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   168
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   169
\isamarkupsubsection{Common variables%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   170
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   171
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   172
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   173
\begin{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   174
This is a reference of common Isabelle settings variables. Note that
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   175
  the list is somewhat open-ended. Third-party utilities or interfaces
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   176
  may add their own selection. Variables that are special in some
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   177
  sense are marked with \isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}}.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   178
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   179
  \begin{description}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   180
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   181
  \item[\indexdef{}{setting}{ISABELLE\_HOME}\hypertarget{setting.ISABELLE-HOME}{\hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}HOME}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}}] is the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   182
  location of the top-level Isabelle distribution directory. This is
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   183
  automatically determined from the Isabelle executable that has been
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   184
  invoked.  Do not attempt to set \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}HOME}}}} yourself
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   185
  from the shell.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   186
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   187
  \item[\indexdef{}{setting}{ISABELLE\_HOME\_USER}\hypertarget{setting.ISABELLE-HOME-USER}{\hyperlink{setting.ISABELLE-HOME-USER}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}HOME{\isacharunderscore}USER}}}}}] is the user-specific
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   188
  counterpart of \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}HOME}}}}. The default value is
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   189
  \verb|~/isabelle|, under rare circumstances this may be
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   190
  changed in the global setting file.  Typically, the \hyperlink{setting.ISABELLE-HOME-USER}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}HOME{\isacharunderscore}USER}}}} directory mimics \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}HOME}}}} to
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   191
  some extend. In particular, site-wide defaults may be overridden by
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   192
  a private \verb|etc/settings|.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   193
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   194
  \item[\indexdef{}{setting}{ISABELLE}\hypertarget{setting.ISABELLE}{\hyperlink{setting.ISABELLE}{\mbox{\isa{\isatt{ISABELLE}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}}, \hyperlink{setting.ISATOOL}{\mbox{\isa{\isatt{ISATOOL}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}}] are automatically set to the full path
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   195
  names of the \hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isacharminus}process}}}} and \hyperlink{executable.isatool}{\mbox{\isa{\isatt{isatool}}}} executables, respectively.  Thus other tools and scripts
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   196
  need not assume that the Isabelle \verb|bin| directory is on
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   197
  the current search path of the shell.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   198
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   199
  \item[\indexdef{}{setting}{ISABELLE\_IDENTIFIER}\hypertarget{setting.ISABELLE-IDENTIFIER}{\hyperlink{setting.ISABELLE-IDENTIFIER}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}IDENTIFIER}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}}] refers
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   200
  to the name of this Isabelle distribution, e.g.\ ``\verb|Isabelle2008|''.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   201
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   202
  \item[\indexdef{}{setting}{ML\_SYSTEM}\hypertarget{setting.ML-SYSTEM}{\hyperlink{setting.ML-SYSTEM}{\mbox{\isa{\isatt{ML{\isacharunderscore}SYSTEM}}}}}, \indexdef{}{setting}{ML\_HOME}\hypertarget{setting.ML-HOME}{\hyperlink{setting.ML-HOME}{\mbox{\isa{\isatt{ML{\isacharunderscore}HOME}}}}},
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   203
  \indexdef{}{setting}{ML\_OPTIONS}\hypertarget{setting.ML-OPTIONS}{\hyperlink{setting.ML-OPTIONS}{\mbox{\isa{\isatt{ML{\isacharunderscore}OPTIONS}}}}}, \indexdef{}{setting}{ML\_PLATFORM}\hypertarget{setting.ML-PLATFORM}{\hyperlink{setting.ML-PLATFORM}{\mbox{\isa{\isatt{ML{\isacharunderscore}PLATFORM}}}}}, \indexdef{}{setting}{ML\_IDENTIFIER}\hypertarget{setting.ML-IDENTIFIER}{\hyperlink{setting.ML-IDENTIFIER}{\mbox{\isa{\isatt{ML{\isacharunderscore}IDENTIFIER}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}}] specify the underlying ML system
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   204
  to be used for Isabelle.  There is only a fixed set of admissable
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   205
  \hyperlink{setting.ML-SYSTEM}{\mbox{\isa{\isatt{ML{\isacharunderscore}SYSTEM}}}} names (see the \verb|etc/settings| file
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   206
  of the distribution).
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   207
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   208
  The actual compiler binary will be run from the directory \hyperlink{setting.ML-HOME}{\mbox{\isa{\isatt{ML{\isacharunderscore}HOME}}}}, with \hyperlink{setting.ML-OPTIONS}{\mbox{\isa{\isatt{ML{\isacharunderscore}OPTIONS}}}} as first arguments on the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   209
  command line.  The optional \hyperlink{setting.ML-PLATFORM}{\mbox{\isa{\isatt{ML{\isacharunderscore}PLATFORM}}}} may specify the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   210
  binary format of ML heap images, which is useful for cross-platform
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   211
  installations.  The value of \hyperlink{setting.ML-IDENTIFIER}{\mbox{\isa{\isatt{ML{\isacharunderscore}IDENTIFIER}}}} is
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   212
  automatically obtained by composing the values of \hyperlink{setting.ML-SYSTEM}{\mbox{\isa{\isatt{ML{\isacharunderscore}SYSTEM}}}}, \hyperlink{setting.ML-PLATFORM}{\mbox{\isa{\isatt{ML{\isacharunderscore}PLATFORM}}}} and the Isabelle version values.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   213
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   214
  \item[\indexdef{}{setting}{ISABELLE\_PATH}\hypertarget{setting.ISABELLE-PATH}{\hyperlink{setting.ISABELLE-PATH}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}PATH}}}}}] is a list of directories
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   215
  (separated by colons) where Isabelle logic images may reside.  When
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   216
  looking up heaps files, the value of \hyperlink{setting.ML-IDENTIFIER}{\mbox{\isa{\isatt{ML{\isacharunderscore}IDENTIFIER}}}} is
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   217
  appended to each component internally.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   218
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   219
  \item[\indexdef{}{setting}{ISABELLE\_OUTPUT}\hypertarget{setting.ISABELLE-OUTPUT}{\hyperlink{setting.ISABELLE-OUTPUT}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}OUTPUT}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}}] is a
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   220
  directory where output heap files should be stored by default. The
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   221
  ML system and Isabelle version identifier is appended here, too.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   222
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   223
  \item[\indexdef{}{setting}{ISABELLE\_BROWSER\_INFO}\hypertarget{setting.ISABELLE-BROWSER-INFO}{\hyperlink{setting.ISABELLE-BROWSER-INFO}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}BROWSER{\isacharunderscore}INFO}}}}}] is the directory where
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   224
  theory browser information (HTML text, graph data, and printable
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   225
  documents) is stored (see also \secref{sec:info}).  The default
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   226
  value is \verb|$ISABELLE_HOME_USER/browser_info|.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   227
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   228
  \item[\indexdef{}{setting}{ISABELLE\_LOGIC}\hypertarget{setting.ISABELLE-LOGIC}{\hyperlink{setting.ISABELLE-LOGIC}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}LOGIC}}}}}] specifies the default logic to
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   229
  load if none is given explicitely by the user.  The default value is
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   230
  \verb|HOL|.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   231
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   232
  \item[\indexdef{}{setting}{ISABELLE\_LINE\_EDITOR}\hypertarget{setting.ISABELLE-LINE-EDITOR}{\hyperlink{setting.ISABELLE-LINE-EDITOR}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}LINE{\isacharunderscore}EDITOR}}}}}] specifies the default
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   233
  line editor for \verb|isatool tty| (see also
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   234
  \secref{sec:tool-tty}).
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   235
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   236
  \item[\indexdef{}{setting}{ISABELLE\_USEDIR\_OPTIONS}\hypertarget{setting.ISABELLE-USEDIR-OPTIONS}{\hyperlink{setting.ISABELLE-USEDIR-OPTIONS}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}USEDIR{\isacharunderscore}OPTIONS}}}}}] is implicitly prefixed
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   237
  to the command line of any \verb|isatool usedir| invocation
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   238
  (see also \secref{sec:tool-usedir}). This typically contains
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   239
  compilation options for object-logics --- \hyperlink{tool.usedir}{\mbox{\isa{\isatt{usedir}}}} is the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   240
  basic utility for managing logic sessions (cf.\ the \verb|IsaMakefile|s in the distribution).
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   241
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   242
  \item[\indexdef{}{setting}{ISABELLE\_FILE\_IDENT}\hypertarget{setting.ISABELLE-FILE-IDENT}{\hyperlink{setting.ISABELLE-FILE-IDENT}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}FILE{\isacharunderscore}IDENT}}}}}] specifies a shell command
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   243
  for producing a source file identification, based on the actual
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   244
  content instead of the full physical path and date stamp (which is
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   245
  the default). A typical identification would produce a ``digest'' of
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   246
  the text, using a cryptographic hash function like SHA-1, for
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   247
  example.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   248
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   249
  \item[\indexdef{}{setting}{ISABELLE\_LATEX}\hypertarget{setting.ISABELLE-LATEX}{\hyperlink{setting.ISABELLE-LATEX}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}LATEX}}}}}, \indexdef{}{setting}{ISABELLE\_PDFLATEX}\hypertarget{setting.ISABELLE-PDFLATEX}{\hyperlink{setting.ISABELLE-PDFLATEX}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}PDFLATEX}}}}}, \indexdef{}{setting}{ISABELLE\_BIBTEX}\hypertarget{setting.ISABELLE-BIBTEX}{\hyperlink{setting.ISABELLE-BIBTEX}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}BIBTEX}}}}}, \indexdef{}{setting}{ISABELLE\_DVIPS}\hypertarget{setting.ISABELLE-DVIPS}{\hyperlink{setting.ISABELLE-DVIPS}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}DVIPS}}}}}] refer to {\LaTeX} related tools for Isabelle
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   250
  document preparation (see also \secref{sec:tool-latex}).
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   251
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   252
  \item[\indexdef{}{setting}{ISABELLE\_TOOLS}\hypertarget{setting.ISABELLE-TOOLS}{\hyperlink{setting.ISABELLE-TOOLS}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}TOOLS}}}}}] is a colon separated list of
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   253
  directories that are scanned by \hyperlink{executable.isatool}{\mbox{\isa{\isatt{isatool}}}} for external
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   254
  utility programs (see also \secref{sec:isatool}).
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   255
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   256
  \item[\indexdef{}{setting}{ISABELLE\_DOCS}\hypertarget{setting.ISABELLE-DOCS}{\hyperlink{setting.ISABELLE-DOCS}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}DOCS}}}}}] is a colon separated list of
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   257
  directories with documentation files.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   258
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   259
  \item[\indexdef{}{setting}{ISABELLE\_DOC\_FORMAT}\hypertarget{setting.ISABELLE-DOC-FORMAT}{\hyperlink{setting.ISABELLE-DOC-FORMAT}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}DOC{\isacharunderscore}FORMAT}}}}}] specifies the preferred
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   260
  document format, typically \verb|dvi| or \verb|pdf|.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   261
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   262
  \item[\indexdef{}{setting}{DVI\_VIEWER}\hypertarget{setting.DVI-VIEWER}{\hyperlink{setting.DVI-VIEWER}{\mbox{\isa{\isatt{DVI{\isacharunderscore}VIEWER}}}}}] specifies the command to be used
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   263
  for displaying \verb|dvi| files.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   264
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   265
  \item[\indexdef{}{setting}{PDF\_VIEWER}\hypertarget{setting.PDF-VIEWER}{\hyperlink{setting.PDF-VIEWER}{\mbox{\isa{\isatt{PDF{\isacharunderscore}VIEWER}}}}}] specifies the command to be used
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   266
  for displaying \verb|pdf| files.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   267
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   268
  \item[\indexdef{}{setting}{PRINT\_COMMAND}\hypertarget{setting.PRINT-COMMAND}{\hyperlink{setting.PRINT-COMMAND}{\mbox{\isa{\isatt{PRINT{\isacharunderscore}COMMAND}}}}}] specifies the standard printer
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   269
  spool command, which is expected to accept \verb|ps| files.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   270
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   271
  \item[\indexdef{}{setting}{ISABELLE\_TMP\_PREFIX}\hypertarget{setting.ISABELLE-TMP-PREFIX}{\hyperlink{setting.ISABELLE-TMP-PREFIX}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}TMP{\isacharunderscore}PREFIX}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}}] is the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   272
  prefix from which any running \hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}} process derives
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   273
  an individual directory for temporary files.  The default is
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   274
  somewhere in \verb|/tmp|.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   275
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   276
  \item[\indexdef{}{setting}{ISABELLE\_INTERFACE}\hypertarget{setting.ISABELLE-INTERFACE}{\hyperlink{setting.ISABELLE-INTERFACE}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}INTERFACE}}}}}] is an identifier that
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   277
  specifies the actual user interface that the capital \hyperlink{executable.Isabelle}{\mbox{\isa{\isatt{Isabelle}}}} or \hyperlink{executable.isabelle-interface}{\mbox{\isa{\isatt{isabelle{\isacharminus}interface}}}} should invoke.  See
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   278
  \secref{sec:interface} for more details.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   279
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   280
  \end{description}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   281
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   282
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   283
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   284
\isamarkupsection{The Isabelle tools wrapper \label{sec:isatool}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   285
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   286
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   287
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   288
\begin{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   289
All Isabelle related utilities are called via a common wrapper ---
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   290
  \hyperlink{executable.isatool}{\mbox{\isa{\isatt{isatool}}}}:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   291
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   292
\begin{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   293
Usage: isatool TOOL [ARGS ...]
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   294
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   295
  Start Isabelle utility program TOOL with ARGS. Pass "-?" to TOOL
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   296
  for more specific help.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   297
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   298
  Available tools are:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   299
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   300
    browser - Isabelle graph browser
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   301
    \dots
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   302
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   303
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   304
  In principle, Isabelle tools are ordinary executable scripts that
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   305
  are run within the Isabelle settings environment, see
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   306
  \secref{sec:settings}.  The set of available tools is collected by
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   307
  \hyperlink{executable.isatool}{\mbox{\isa{\isatt{isatool}}}} from the directories listed in the \hyperlink{setting.ISABELLE-TOOLS}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}TOOLS}}}} setting.  Do not try to call the scripts directly
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   308
  from the shell.  Neither should you add the tool directories to your
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   309
  shell's search path!%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   310
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   311
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   312
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   313
\isamarkupsubsubsection{Examples%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   314
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   315
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   316
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   317
\begin{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   318
Show the list of available documentation of the current Isabelle
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   319
  installation like this:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   320
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   321
\begin{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   322
  isatool doc
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   323
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   324
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   325
  View a certain document as follows:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   326
\begin{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   327
  isatool doc isar-ref
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   328
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   329
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   330
  Create an Isabelle session derived from HOL (see also
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   331
  \secref{sec:tool-mkdir} and \secref{sec:tool-make}):
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   332
\begin{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   333
  isatool mkdir HOL Test && isatool make
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   334
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   335
  Note that \verb|isatool mkdir| is usually only invoked once;
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   336
  existing sessions (including document output etc.) are then updated
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   337
  by \verb|isatool make| alone.%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   338
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   339
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   340
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   341
\isamarkupsection{The raw Isabelle process%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   342
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   343
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   344
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   345
\begin{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   346
The \indexref{}{executable}{isabelle}\hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}} (or \indexref{}{executable}{isabelle-process}\hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isacharminus}process}}}}) executable runs bare-bones Isabelle logic
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   347
  sessions --- either interactively or in batch mode.  It provides an
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   348
  abstraction over the underlying ML system, and over the actual heap
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   349
  file locations.  Its usage is:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   350
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   351
\begin{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   352
Usage: isabelle [OPTIONS] [INPUT] [OUTPUT]
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   353
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   354
  Options are:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   355
    -C           tell ML system to copy output image
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   356
    -I           startup Isar interaction mode
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   357
    -P           startup Proof General interaction mode
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   358
    -S           secure mode -- disallow critical operations
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   359
    -W OUTPUT    startup process wrapper, with messages going to OUTPUT stream
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   360
    -X           startup PGIP interaction mode
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   361
    -c           tell ML system to compress output image
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   362
    -e MLTEXT    pass MLTEXT to the ML session
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   363
    -f           pass 'Session.finish();' to the ML session
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   364
    -m MODE      add print mode for output
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   365
    -q           non-interactive session
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   366
    -r           open heap file read-only
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   367
    -u           pass 'use"ROOT.ML";' to the ML session
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   368
    -w           reset write permissions on OUTPUT
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   369
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   370
  INPUT (default "\$ISABELLE_LOGIC") and OUTPUT specify in/out heaps.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   371
  These are either names to be searched in the Isabelle path, or
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   372
  actual file names (containing at least one /).
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   373
  If INPUT is "RAW_ML_SYSTEM", just start the bare bones ML system.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   374
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   375
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   376
  Input files without path specifications are looked up in the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   377
  \hyperlink{setting.ISABELLE-PATH}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}PATH}}}} setting, which may consist of multiple
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   378
  components separated by colons --- these are tried in the given
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   379
  order with the value of \hyperlink{setting.ML-IDENTIFIER}{\mbox{\isa{\isatt{ML{\isacharunderscore}IDENTIFIER}}}} appended
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   380
  internally.  In a similar way, base names are relative to the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   381
  directory specified by \hyperlink{setting.ISABELLE-OUTPUT}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}OUTPUT}}}}.  In any case,
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   382
  actual file locations may also be given by including at least one
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   383
  slash (\verb|/|) in the name (hint: use \verb|./| to
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   384
  refer to the current directory).%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   385
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   386
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   387
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   388
\isamarkupsubsubsection{Options%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   389
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   390
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   391
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   392
\begin{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   393
If the input heap file does not have write permission bits set, or
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   394
  the \verb|-r| option is given explicitely, then the session
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   395
  started will be read-only.  That is, the ML world cannot be
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   396
  committed back into the image file.  Otherwise, a writable session
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   397
  enables commits into either the input file, or into another output
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   398
  heap file (if that is given as the second argument on the command
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   399
  line).
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   400
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   401
  The read-write state of sessions is determined at startup only, it
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   402
  cannot be changed intermediately. Also note that heap images may
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   403
  require considerable amounts of disk space (approximately
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   404
  50--200~MB). Users are responsible for themselves to dispose their
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   405
  heap files when they are no longer needed.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   406
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   407
  \medskip The \verb|-w| option makes the output heap file
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   408
  read-only after terminating.  Thus subsequent invocations cause the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   409
  logic image to be read-only automatically.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   410
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   411
  \medskip The \verb|-c| option tells the underlying ML system
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   412
  to compress the output heap (fully transparently).  On Poly/ML for
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   413
  example, the image is garbage collected and all stored values are
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   414
  maximally shared, resulting in up to \isa{{\isachardoublequote}{\isadigit{5}}{\isadigit{0}}{\isacharpercent}{\isachardoublequote}} less disk space
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   415
  consumption.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   416
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   417
  \medskip The \verb|-C| option tells the ML system to produce
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   418
  a completely self-contained output image, probably including a copy
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   419
  of the ML runtime system itself.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   420
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   421
  \medskip Using the \verb|-e| option, arbitrary ML code may be
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   422
  passed to the Isabelle session from the command line. Multiple
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   423
  \verb|-e|'s are evaluated in the given order. Strange things
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   424
  may happen when errorneous ML code is provided. Also make sure that
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   425
  the ML commands are terminated properly by semicolon.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   426
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   427
  \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
   428
  The \verb|-f| option passes ``\verb|Session.finish();|'', which is intended mainly for administrative
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   429
  purposes.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   430
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   431
  \medskip The \verb|-m| option adds identifiers of print modes
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   432
  to be made active for this session. Typically, this is used by some
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   433
  user interface, e.g.\ to enable output of proper mathematical
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   434
  symbols.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   435
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   436
  \medskip Isabelle normally enters an interactive top-level loop
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   437
  (after processing the \verb|-e| texts). The \verb|-q|
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   438
  option inhibits interaction, thus providing a pure batch mode
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   439
  facility.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   440
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   441
  \medskip The \verb|-I| option makes Isabelle enter Isar
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   442
  interaction mode on startup, instead of the primitive ML top-level.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   443
  The \verb|-P| option configures the top-level loop for
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   444
  interaction with the Proof General user interface, and the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   445
  \verb|-X| option enables XML-based PGIP communication.  The
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   446
  \verb|-W| option makes Isabelle enter a special process
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   447
  wrapper for interaction via an external program; the protocol is a
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   448
  stripped-down version of Proof General the interaction mode.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   449
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   450
  \medskip The \verb|-S| option makes the Isabelle process more
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   451
  secure by disabling some critical operations, notably runtime
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   452
  compilation and evaluation of ML source code.%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   453
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   454
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   455
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   456
\isamarkupsubsubsection{Examples%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   457
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   458
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   459
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   460
\begin{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   461
Run an interactive session of the default object-logic (as specified
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   462
  by the \hyperlink{setting.ISABELLE-LOGIC}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}LOGIC}}}} setting) like this:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   463
\begin{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   464
isabelle
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   465
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   466
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   467
  Usually \hyperlink{setting.ISABELLE-LOGIC}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}LOGIC}}}} refers to one of the standard
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   468
  logic images, which are read-only by default.  A writable session
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   469
  --- based on \verb|FOL|, but output to \verb|Foo| (in the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   470
  directory specified by the \verb|ISABELLE_OUTPUT| setting) ---
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   471
  may be invoked as follows:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   472
\begin{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   473
isabelle FOL Foo
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   474
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   475
  Ending this session normally (e.g.\ by typing control-D) dumps the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   476
  whole ML system state into \verb|Foo|. Be prepared for several
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   477
  tens of megabytes.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   478
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   479
  The \verb|Foo| session may be continued later (still in
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   480
  writable state) by:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   481
\begin{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   482
isabelle Foo
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   483
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   484
  A read-only \verb|Foo| session may be started by:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   485
\begin{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   486
isabelle -r Foo
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   487
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   488
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   489
  \medskip Note that manual session management like this does
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   490
  \emph{not} provide proper setup for theory presentation.  This would
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   491
  require the \hyperlink{tool.usedir}{\mbox{\isa{\isatt{usedir}}}} utility, see \secref{sec:tool-usedir}.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   492
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   493
  \bigskip The next example demonstrates batch execution of
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   494
  Isabelle. We print a certain theorem of \verb|FOL|:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   495
\begin{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   496
isabelle -e "prth allE;" -q -r FOL
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   497
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   498
  Note that the output text will be interspersed with additional junk
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   499
  messages by the ML runtime environment.%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   500
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   501
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   502
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   503
\isamarkupsection{The Isabelle interface wrapper \label{sec:interface}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   504
}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   505
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   506
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   507
\begin{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   508
Isabelle is a generic theorem prover, even w.r.t.\ its user
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   509
  interface.  The \indexref{}{executable}{Isabelle}\hyperlink{executable.Isabelle}{\mbox{\isa{\isatt{Isabelle}}}} (or \indexref{}{executable}{isabelle-interface}\hyperlink{executable.isabelle-interface}{\mbox{\isa{\isatt{isabelle{\isacharminus}interface}}}}) executable provides a uniform way for
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   510
  end-users to invoke a certain interface; which one to start is
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   511
  determined by the \indexref{}{setting}{ISABELLE\_INTERFACE}\hyperlink{setting.ISABELLE-INTERFACE}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}INTERFACE}}}} setting
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   512
  variable, which should give a full path specification to the actual
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   513
  executable.  Also note that the \hyperlink{tool.install}{\mbox{\isa{\isatt{install}}}} utility provides
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   514
  some options to install desktop environment icons (see
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   515
  \secref{sec:tool-install}).
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   516
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   517
  Presently, the most prominent Isabelle interface is Proof
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   518
  General~\cite{proofgeneral}\index{user interface!Proof General}.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   519
  The Proof General distribution includes an interface wrapper script
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   520
  for the regular Isar toplevel, see \verb|ProofGeneral/isar/interface|.  The canonical settings for
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   521
  Isabelle/Isar are as follows:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   522
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   523
\begin{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   524
ISABELLE_INTERFACE=\$ISABELLE_HOME/contrib/ProofGeneral/isar/interface
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   525
PROOFGENERAL_OPTIONS=""
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   526
\end{ttbox}
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   527
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   528
  Thus \hyperlink{executable.Isabelle}{\mbox{\isa{\isatt{Isabelle}}}} would automatically invoke Emacs with
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   529
  proper setup of the Proof General Lisp packages.  There are some
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   530
  options available, such as \verb|-l| for passing the logic
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   531
  image to be used by default, or \verb|-m| to tune the
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   532
  standard print mode.  The \verb|-I| option allows to switch
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   533
  between the Isar and ML view, independently of the interface script
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   534
  being used.
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   535
  
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   536
  \medskip Note that the world may be also seen the other way round:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   537
  Emacs may be started first (with proper setup of Proof General
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   538
  mode), and \hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}} run from within.  This requires
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   539
  further Emacs Lisp configuration, see the Proof General
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   540
  documentation \cite{proofgeneral} for more information.%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   541
\end{isamarkuptext}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   542
\isamarkuptrue%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   543
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   544
\isadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   545
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   546
\endisadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   547
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   548
\isatagtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   549
\isacommand{end}\isamarkupfalse%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   550
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   551
\endisatagtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   552
{\isafoldtheory}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   553
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   554
\isadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   555
%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   556
\endisadelimtheory
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   557
\end{isabellebody}%
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   558
%%% Local Variables:
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   559
%%% mode: latex
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   560
%%% TeX-master: "root"
402a3f30542f generated files;
wenzelm
parents:
diff changeset
   561
%%% End: