doc-src/System/basics.tex
author wenzelm
Fri, 16 Jul 1999 22:24:42 +0200
changeset 7024 44bd3c094fd6
parent 6414 d1bbea22217b
child 7208 8b4acb408301
permissions -rw-r--r--
tuned;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
     1
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
     2
% $Id$
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
     3
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
     4
\chapter{Basic concepts}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
     5
3262
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
     6
The \emph{Isabelle System Manual} describes Isabelle together with
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
     7
related tools and user interfaces as seen from an outside (operating
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
     8
system oriented) view.  See the \emph{Isabelle Reference Manual} for
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
     9
all internal {\ML} level user commands, on the other hand.
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    10
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    11
\medskip The Isabelle system level environment is based on a few
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
    12
general concepts:
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    13
\begin{itemize}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    14
\item The \emph{Isabelle settings mechanism}, which provides
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
    15
  environment variables to all Isabelle programs (including tools and
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    16
  user interfaces).
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    17
\item \emph{Isabelle proper} (\ttindex{isabelle}), which runs logic
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    18
  sessions, both interactively or in batch mode. In particular,
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    19
  \texttt{isabelle} abstracts over the invocation of the actual {\ML}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    20
  system to be used.
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    21
\item The \emph{Isabelle tools wrapper} (\ttindex{isatool}), which
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
    22
  provides a generic startup platform for Isabelle related utilities.
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    23
  Thus tools automatically benefit from the settings mechanism.
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    24
  Furthermore, the shell's search path is kept clean from many small
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    25
  programs.
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    26
\item The \emph{Isabelle interface wrapper}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    27
  (\ttindex{Isabelle}\footnote{Note the capital \texttt{I}!}), which
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
    28
  provides some abstraction over the actual user interface to be used.
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    29
\end{itemize}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    30
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    31
\medskip The beginning user would probably just run one of the
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    32
interfaces (by invoking the capital \texttt{Isabelle}), and maybe some
3262
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
    33
basic tools like \texttt{doc} (see \S\ref{sec:tool-doc}).  This
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    34
assumes that the system has already been installed properly, of
3262
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
    35
course.\footnote{In case you have to do this yourself, see the
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
    36
  \ttindex{INSTALL} file in the top-level directory of the
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    37
  distribution. The information provided there should be sufficient as
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    38
  a start.}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    39
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    40
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    41
\section{Isabelle settings} \label{sec:settings}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    42
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    43
The Isabelle system heavily depends on the \emph{settings
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    44
  mechanism}\indexbold{settings}. Basically, this is just a collection
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    45
of environment variables, e.g.\ \texttt{ISABELLE_HOME},
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    46
\texttt{ML_SYSTEM}, \texttt{ML_HOME}.  These variables are \emph{not}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    47
intended to be set directly from the shell!
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    48
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    49
Isabelle employs a somewhat more sophisticated scheme of
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    50
\emph{settings files} --- one for site-wide defaults, another for
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    51
optional user-specific modifications.  With all configuration
4555
wenzelm
parents: 4547
diff changeset
    52
variables in just a few places, this is much more maintainable and
wenzelm
parents: 4547
diff changeset
    53
user-friendly than ordinary shell environment variables.
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    54
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    55
In particular, we avoid the typical situation where prospective users
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    56
of a software package are told to put this and that in their shell
3278
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
    57
startup scripts, before being able to actually run it. Isabelle
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
    58
requires none such administrative chores of its end-users --- the
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
    59
executables can be invoked straight away. Usually, users would just
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
    60
want to put the Isabelle \texttt{bin} directory into their shell's
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
    61
search path, of course.
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    62
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    63
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    64
\subsection{Building the environment}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    65
3262
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
    66
Whenever any of the Isabelle executables is run, their settings
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
    67
environment is built as follows:
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    68
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    69
\begin{enumerate}
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
    70
\item The special variable \settdx{ISABELLE_HOME} is determined
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
    71
  automatically from the location of the binary that has been run.
6412
9309bc455432 ML_PLATFORM;
wenzelm
parents: 5814
diff changeset
    72
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    73
  You should not try to set \texttt{ISABELLE_HOME} manually. Also note
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    74
  that the Isabelle executables have to be run from their original
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    75
  location in the distribution directory --- copying or linking them
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    76
  somewhere else just won't work!
6412
9309bc455432 ML_PLATFORM;
wenzelm
parents: 5814
diff changeset
    77
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
    78
\item The file \texttt{\$ISABELLE_HOME/etc/settings} ist run as a
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
    79
  shell script with the auto-export option for variables enabled.
6412
9309bc455432 ML_PLATFORM;
wenzelm
parents: 5814
diff changeset
    80
3278
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
    81
  This file typically contains a rather long list of shell variable
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
    82
  assigments, thus providing the site-wide default settings.  The
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
    83
  Isabelle distribution already contains a global settings file with
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
    84
  sensible defaults for most variables. When installing the system,
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
    85
  only a few of these have to be adapted (most likely
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
    86
  \texttt{ML_SYSTEM} etc.).
6412
9309bc455432 ML_PLATFORM;
wenzelm
parents: 5814
diff changeset
    87
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    88
\item The file \texttt{\$ISABELLE_HOME_USER/etc/settings} (if it
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    89
  exists) is run the same way as the site default settings. The
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    90
  variable \texttt{ISABELLE_HOME_USER} has already been set before ---
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    91
  usually to \texttt{\~\relax/isabelle}.
6412
9309bc455432 ML_PLATFORM;
wenzelm
parents: 5814
diff changeset
    92
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    93
  Thus individual users may override the site-wide defaults. See also
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
    94
  file \texttt{etc/user-settings.sample} in the distribution.
4540
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
    95
  Typically, a user settings file would contain only a few lines, just
3278
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
    96
  the assigments that are really needed.  One should definitely
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
    97
  \emph{not} start with a full copy the central
3262
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
    98
  \texttt{\$ISABELLE_HOME/etc/settings}. This could cause very
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
    99
  annoying maintainance problems later, when the Isabelle installation
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
   100
  is updated or changed otherwise.
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   101
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   102
\end{enumerate}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   103
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   104
Note that settings files are actually full GNU bash scripts. So one
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   105
may use complex shell commands, say \texttt{if} or \texttt{case}
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   106
statements to set variables depending on the system architecture or
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   107
other environment variables, for example. Such advanced features
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   108
should be added only with great care, though. In particular, external
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   109
environment references should be kept at a minimum.
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   110
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   111
\medskip A few variables are somewhat special:
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   112
\begin{itemize}
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   113
\item \settdx{ISABELLE} and \settdx{ISATOOL} are set automatically to
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   114
  the absolute path names of the \texttt{isabelle} and
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   115
  \texttt{isatool} executables, respectively.
6414
wenzelm
parents: 6412
diff changeset
   116
  
wenzelm
parents: 6412
diff changeset
   117
\item \settdx{ISABELLE_PATH} and \settdx{ISABELLE_OUTPUT} will have the {\ML}
wenzelm
parents: 6412
diff changeset
   118
  system identifier (according to \texttt{ML_IDENTIFIER} automatically
wenzelm
parents: 6412
diff changeset
   119
  appended to their values.
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   120
\end{itemize}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   121
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   122
\medskip The Isabelle settings scheme is basically quite simple, but
4555
wenzelm
parents: 4547
diff changeset
   123
non-trivial.  For debugging purposes, the resulting environment may be
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   124
inspected with the \texttt{getenv} utility, see
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   125
\S\ref{sec:tool-getenv}.
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   126
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   127
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   128
\subsection{Common variables}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   129
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   130
Below is a reference of common Isabelle settings variables. Note that
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   131
the list is somewhat open-ended. Third-party utilities or interfaces
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   132
may add their own selection. Variables that are special in some sense
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   133
are marked with *.
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   134
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   135
\begin{description}
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   136
\item[\settdx{ISABELLE_HOME}*] is the location of the top-level
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   137
  Isabelle distribution directory. This is automatically determined
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   138
  from the Isabelle executable that has been invoked.  Do not try to
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   139
  set \texttt{ISABELLE_HOME} yourself from the shell.
6412
9309bc455432 ML_PLATFORM;
wenzelm
parents: 5814
diff changeset
   140
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   141
\item[\settdx{ISABELLE_HOME_USER}] is the user-specific counterpart of
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   142
  \texttt{ISABELLE_HOME}. The default value is
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   143
  \texttt{\~\relax/isabelle}, under rare circumstances this may be
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   144
  changed in the global setting file.  Typically, the
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   145
  \texttt{ISABELLE_HOME_USER} directory mimics \texttt{ISABELLE_HOME}
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   146
  to some extend. In particular, site-wide defaults may be overridden
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   147
  by a private \texttt{etc/settings}.
6412
9309bc455432 ML_PLATFORM;
wenzelm
parents: 5814
diff changeset
   148
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   149
\item[\settdx{ISABELLE}*, \settdx{ISATOOL}*] are automatically set to
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   150
  the full paths of the \texttt{isabelle} and \texttt{isatool}
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   151
  executables, respectively.  Thus other tools and scripts need not
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   152
  assume that the Isabelle \texttt{bin} directory is on the current
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   153
  search path of the shell.
6412
9309bc455432 ML_PLATFORM;
wenzelm
parents: 5814
diff changeset
   154
  
9309bc455432 ML_PLATFORM;
wenzelm
parents: 5814
diff changeset
   155
\item[\settdx{ML_SYSTEM}, \settdx{ML_HOME}, \settdx{ML_OPTIONS},
6414
wenzelm
parents: 6412
diff changeset
   156
  \settdx{ML_PLATFORM}, \settdx{ML_IDENTIFIER}*] specify the underlying {\ML}
wenzelm
parents: 6412
diff changeset
   157
  system to be used for Isabelle.  The choice of \texttt{ML_SYSTEM}
wenzelm
parents: 6412
diff changeset
   158
  identifiers is quite fixed, see the global \texttt{etc/settings} file for
wenzelm
parents: 6412
diff changeset
   159
  some examples. The actual compiler binary will be run from directory
wenzelm
parents: 6412
diff changeset
   160
  \texttt{ML_HOME}, with \texttt{ML_OPTIONS} as first arguments on the command
wenzelm
parents: 6412
diff changeset
   161
  line.  The optional \texttt{ML_PLATFORM} specifies the binary format of ML
wenzelm
parents: 6412
diff changeset
   162
  heap images, which is useful for cross-platform installations.  The value of
wenzelm
parents: 6412
diff changeset
   163
  \texttt{ML_IDENTIFIER} is (automatically) obtained by composing
wenzelm
parents: 6412
diff changeset
   164
  \texttt{ML_SYSTEM} and \texttt{ML_PLATFORM}.
wenzelm
parents: 6412
diff changeset
   165
  
wenzelm
parents: 6412
diff changeset
   166
\item[\settdx{ISABELLE_PATH}*] is a list of directories (separated by colons)
wenzelm
parents: 6412
diff changeset
   167
  where Isabelle logic images may reside. Note that the value of
wenzelm
parents: 6412
diff changeset
   168
  \texttt{ML_IDENTIFIER} is appended to each component automatically.
6412
9309bc455432 ML_PLATFORM;
wenzelm
parents: 5814
diff changeset
   169
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   170
\item[\settdx{ISABELLE_OUTPUT}*] is a directory where output heap
3262
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
   171
  files should be stored by default. The \texttt{ML_SYSTEM} identifier
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
   172
  is appended here, too.
6412
9309bc455432 ML_PLATFORM;
wenzelm
parents: 5814
diff changeset
   173
4540
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
   174
\item[\settdx{ISABELLE_BROWSER_INFO}] is the directory where theory
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
   175
  browser information (HTML and graph data) is stored (see also
4555
wenzelm
parents: 4547
diff changeset
   176
  \S\ref{sec:info}).  The default value is
wenzelm
parents: 4547
diff changeset
   177
  \texttt{\$ISABELLE_HOME_USER/browser_info}.
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   178
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   179
\item[\settdx{ISABELLE_LOGIC}] specifies the default logic to load if
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   180
  none is given explicitely by the user --- e.g.\ when running
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   181
  \texttt{isabelle} directly, or some user interface.
6412
9309bc455432 ML_PLATFORM;
wenzelm
parents: 5814
diff changeset
   182
3278
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   183
\item[\settdx{ISABELLE_USEDIR_OPTIONS}] is implicitly prefixed to the
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   184
  command line of any \texttt{isatool usedir} invocation (see also
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   185
  \S\ref{sec:tool-usedir}). This typically contains compilation
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   186
  options for object-logics --- \texttt{usedir} is the basic utility
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   187
  that builds them (cf.\ the \texttt{IsaMakefile}s in the
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   188
  distribution).
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   189
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   190
\item[\settdx{ISABELLE_TOOLS}] is a colon separated list of
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   191
  directories that are scanned by \texttt{isatool} for utility
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   192
  programs (see also \S\ref{sec:isatool}).
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   193
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   194
\item[\settdx{ISABELLE_DOCS}] is a colon separated list of directories
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   195
  with documentation files.
6412
9309bc455432 ML_PLATFORM;
wenzelm
parents: 5814
diff changeset
   196
3262
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
   197
\item[\settdx{DVI_VIEWER}] specifies the command to be used for
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   198
  displaying \texttt{dvi} files.
4547
3030c5b18580 tuned ISABELLE_TMP_PREFIX;
wenzelm
parents: 4540
diff changeset
   199
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   200
\item[\settdx{ISABELLE_INSTALL_FONTS}] determines the way that the
3262
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
   201
  Isabelle symbol fonts are installed into your currently running X11
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
   202
  display server. X11 fonts are a non-trivial issue, see
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
   203
  \S\ref{sec:tool-installfonts} for more information.
6412
9309bc455432 ML_PLATFORM;
wenzelm
parents: 5814
diff changeset
   204
4540
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
   205
\item[\settdx{ISABELLE_TMP_PREFIX}] is the prefix from which any
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
   206
  \texttt{isabelle} session derives an individual directory for
4555
wenzelm
parents: 4547
diff changeset
   207
  temporary files.  The default is somewhere in \texttt{/tmp}.
6412
9309bc455432 ML_PLATFORM;
wenzelm
parents: 5814
diff changeset
   208
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   209
\item[\settdx{ISABELLE_INTERFACE}] is an identifier that specifies the
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   210
  actual user interface that the capital \texttt{Isabelle} should
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   211
  invoke.  Currently available are \texttt{none}, \texttt{xterm} and
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   212
  \texttt{emacs}. See \S\ref{sec:interface} for more details.
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   213
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   214
\end{description}
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   215
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   216
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   217
\section{Isabelle proper --- \texttt{isabelle}}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   218
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   219
The \ttindex{isabelle} executable runs logic sessions --- either
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   220
interactively or in batch mode. It provides an abstraction over the
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   221
underlying {\ML} system, and over the actual heap file locations. Its
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   222
usage is:
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   223
\begin{ttbox}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   224
Usage: isabelle [OPTIONS] [INPUT] [OUTPUT]
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   225
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   226
  Options are:
5814
a3881c1f1d3c isabelle -I;
wenzelm
parents: 5364
diff changeset
   227
    -I           startup Isar interaction mode
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   228
    -e MLTEXT    pass MLTEXT to the ML session
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   229
    -m MODE      add print mode for output
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   230
    -q           non-interactive session
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   231
    -r           open heap file read-only
4540
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
   232
    -u           pass 'use"ROOT.ML";' to the ML session
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
   233
    -w           reset write permissions on OUTPUT
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   234
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   235
  INPUT (default "\$ISABELLE_LOGIC") and OUTPUT specify in/out heaps.
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   236
  These are either names to be searched in the Isabelle path, or actual
4540
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
   237
  file names (containing at least one /).
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   238
  If INPUT is "RAW_ML_SYSTEM", just start the bare bones ML system.
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   239
\end{ttbox}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   240
Input files without path specifications are looked up in the
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   241
\texttt{ISABELLE_PATH} setting, which may consist of multiple
3278
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   242
components separated by colons --- these are tried in order.
4540
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
   243
Likewise, base names are relative to the directory specified by
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
   244
\texttt{ISABELLE_OUTPUT}.  In any case, actual file locations may also
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
   245
be given by including at least one \texttt{/} in the name (hint: use
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
   246
\texttt{./} to refer to the current directory).
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   247
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   248
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   249
\subsection*{Options}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   250
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   251
If the input heap file does not have write permission bits set, or the
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   252
\texttt{-r} option is given explicitely, then the session will be
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   253
read-only. That is, the {\ML} world cannot be committed back into the
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   254
logic image.  Otherwise, a writable session enables commits into
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   255
either the input file, or into an alternative output heap file (in
4555
wenzelm
parents: 4547
diff changeset
   256
case this is given as the second argument on the command line).
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   257
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   258
The read-write state of sessions is determined at startup only, it
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   259
cannot be changed intermediately. Also note that heap images may
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   260
require considerable amounts of disk space. Users are responsible
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   261
themselves to dispose their heap files when they are no longer needed.
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   262
4540
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
   263
\medskip The \texttt{-w} option makes the output heap file read-only
4555
wenzelm
parents: 4547
diff changeset
   264
after terminating.  Thus subsequent invocations cause the logic image
wenzelm
parents: 4547
diff changeset
   265
to be read-only automatically.
4540
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
   266
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   267
\medskip Using the \texttt{-e} option, arbitrary {\ML} code may be
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   268
passed to the Isabelle session from the command line. Multiple
3262
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
   269
\texttt{-e}'s are evaluated in order. Strange things may happen when
4555
wenzelm
parents: 4547
diff changeset
   270
errorneous {\ML} code is given. Also make sure that the {\ML} commands
wenzelm
parents: 4547
diff changeset
   271
are terminated properly by semicolon.
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   272
4540
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
   273
\medskip The \texttt{-u} option is a shortcut for \texttt{-e}, passing
4555
wenzelm
parents: 4547
diff changeset
   274
``\texttt{use"ROOT.ML";}'' to the {\ML} session.
4540
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
   275
3262
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
   276
\medskip The \texttt{-m} option adds identifiers of print modes to be
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
   277
made active for this session. Typically, this is used by some user
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
   278
interface, for example to enable output of mathematical symbols from a
3278
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   279
special screen font.
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   280
5814
a3881c1f1d3c isabelle -I;
wenzelm
parents: 5364
diff changeset
   281
\medskip Isabelle normally enters an interactice top-level loop (after
a3881c1f1d3c isabelle -I;
wenzelm
parents: 5364
diff changeset
   282
processing the \texttt{-e} texts). The \texttt{-q} option inhibits this, thus
a3881c1f1d3c isabelle -I;
wenzelm
parents: 5364
diff changeset
   283
providing a pure batch mode facility.
a3881c1f1d3c isabelle -I;
wenzelm
parents: 5364
diff changeset
   284
a3881c1f1d3c isabelle -I;
wenzelm
parents: 5364
diff changeset
   285
\medskip The \texttt{-I} option makes Isabelle enter Isar interaction mode on
a3881c1f1d3c isabelle -I;
wenzelm
parents: 5364
diff changeset
   286
startup, instead of the primitive {\ML} top-level.  This flag is usually
a3881c1f1d3c isabelle -I;
wenzelm
parents: 5364
diff changeset
   287
enabled by default when running Isabelle via some user interface, but it is
a3881c1f1d3c isabelle -I;
wenzelm
parents: 5364
diff changeset
   288
\emph{not} for the basic \texttt{isabelle} program.
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   289
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   290
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   291
\subsection*{Examples}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   292
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   293
Run an interactive session of the default object-logic (as specified
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   294
by the \texttt{ISABELLE_LOGIC} setting) like this:
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   295
\begin{ttbox}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   296
isabelle
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   297
\end{ttbox}
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   298
Usually \texttt{ISABELLE_LOGIC} refers to one of the standard logic
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   299
images, which are read-only by default.  A writable session --- based
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   300
on \texttt{FOL}, but output to \texttt{Foo} (in the directory
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   301
specified by the \texttt{ISABELLE_OUTPUT} setting) --- may be invoked
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   302
as follows:
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   303
\begin{ttbox}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   304
isabelle FOL Foo
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   305
\end{ttbox}
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   306
Ending this session normally (e.g.\ by typing control-D) dumps the
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   307
whole {\ML} system state into \texttt{Foo}. Be prepared for several
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   308
megabytes!
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   309
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   310
The \texttt{Foo} session may be continued later (still in writable
3262
7115da553895 under construction;
wenzelm
parents: 3217
diff changeset
   311
state) by:
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   312
\begin{ttbox}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   313
isabelle Foo
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   314
\end{ttbox}
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   315
A read-only \texttt{Foo} session may be started by:
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   316
\begin{ttbox}
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   317
isabelle -r Foo
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   318
\end{ttbox}
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   319
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   320
\medskip The next example demonstrates batch execution of Isabelle. We
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   321
print a certain theorem of \texttt{FOL}:
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   322
\begin{ttbox}
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   323
isabelle -e "prth allE;" -q -r FOL
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   324
\end{ttbox}
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   325
Note that the output text will be usually interspersed with some
3188
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   326
garbage produced by the {\ML} compiler.
445555a7b714 preliminary!
wenzelm
parents:
diff changeset
   327
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   328
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   329
\section{The Isabelle tools wrapper --- \texttt{isatool}} \label{sec:isatool}
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   330
3278
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   331
All Isabelle related utilities are called via a common wrapper ---
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   332
\ttindex{isatool}:
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   333
\begin{ttbox}
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   334
Usage: isatool TOOL [ARGS ...]
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   335
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   336
  Start Isabelle utility program TOOL with ARGS. Pass "-?" to TOOL
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   337
  for more specific help.
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   338
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   339
  Available tools are:
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   340
4540
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
   341
    browser - Isabelle theory graph browser
3278
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   342
    doc - view Isabelle documentation
4540
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
   343
    \dots
3278
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   344
\end{ttbox}
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   345
Basically, Isabelle tools are ordinary executable scripts.  These are
4540
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
   346
run within the same settings environment as Isabelle proper, see
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
   347
\S\ref{sec:settings}.  The set of available tools is collected by
3278
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   348
isatool from the directories listed in the \texttt{ISABELLE_TOOLS}
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   349
setting.  Do not try to call the scripts directly. Neither should you
4555
wenzelm
parents: 4547
diff changeset
   350
add the tool directories to your shell's search path.
3278
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   351
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   352
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   353
\medskip See chapter~\ref{ch:tools} for descriptions of most utilities
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   354
that come with the Isabelle distributions. Third-parties may add their
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   355
own, of course.
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   356
3217
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   357
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   358
\section{The Isabelle interface wrapper --- \texttt{Isabelle}} \label{sec:interface}
d30d62128fe5 still under construction!
wenzelm
parents: 3188
diff changeset
   359
3278
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   360
Isabelle is a generic theorem prover, even w.r.t.\ its user interface.
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   361
The \ttindex{Isabelle} command (note the capital \texttt{I}) provides
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   362
a uniform way for end-users to invoke a certain interface. Which one
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   363
to actually start is determined by the \settdx{ISABELLE_INTERFACE}
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   364
setting variable. Currently, the following are recognized:
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   365
\begin{ttdescription}
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   366
\item[none] is just a pass-through to \texttt{isabelle}. Thus
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   367
  \texttt{Isabelle} basically becomes an alias for \texttt{isabelle}.
6412
9309bc455432 ML_PLATFORM;
wenzelm
parents: 5814
diff changeset
   368
4540
24fcf5ecae88 updated to Isabelle98;
wenzelm
parents: 3278
diff changeset
   369
\item[xterm] refers to a simple xterm based interface which is part of
3278
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   370
  the Isabelle distribution.
6412
9309bc455432 ML_PLATFORM;
wenzelm
parents: 5814
diff changeset
   371
3278
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   372
\item[emacs] refers to David Aspinall's \emph{Isamode} for emacs.
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   373
  Isabelle just provides a wrapper for this, the actual Isamode
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   374
  distribution is available elsewhere.
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   375
\end{ttdescription}
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   376
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   377
The factory default for \texttt{ISABELLE_INTERFACE} is \texttt{xterm}.
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   378
This interface runs \texttt{isabelle} within its own xterm window.
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   379
Usually, display of mathematical symbols from the Isabelle font is
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   380
also enabled (see \S\ref{sec:tool-installfonts} for font configuration
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   381
issues).  Furthermore, different kinds of identifiers in logical terms
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   382
are highlighted appropriately, e.g.\ free variables in bold and bound
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   383
variables underlined.
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   384
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   385
There are some more options available.  Just pass \texttt{-?} to the
636322bfd057 release version (sort of);
wenzelm
parents: 3262
diff changeset
   386
\texttt{xterm} interface to have its usage printed.
5364
ffa6d795c4b3 emacs local vars;
wenzelm
parents: 4555
diff changeset
   387
ffa6d795c4b3 emacs local vars;
wenzelm
parents: 4555
diff changeset
   388
6412
9309bc455432 ML_PLATFORM;
wenzelm
parents: 5814
diff changeset
   389
%%% Local Variables:
5364
ffa6d795c4b3 emacs local vars;
wenzelm
parents: 4555
diff changeset
   390
%%% mode: latex
ffa6d795c4b3 emacs local vars;
wenzelm
parents: 4555
diff changeset
   391
%%% TeX-master: "system"
6412
9309bc455432 ML_PLATFORM;
wenzelm
parents: 5814
diff changeset
   392
%%% End: