updated to Isabelle98;
authorwenzelm
Thu Jan 08 18:25:36 1998 +0100 (1998-01-08)
changeset 454024fcf5ecae88
parent 4539 4227bd14dbe7
child 4541 36ef28482123
updated to Isabelle98;
doc-src/System/basics.tex
doc-src/System/fonts.tex
doc-src/System/misc.tex
doc-src/System/present.tex
doc-src/System/system.ind
doc-src/System/system.tex
     1.1 --- a/doc-src/System/basics.tex	Thu Jan 08 18:24:45 1998 +0100
     1.2 +++ b/doc-src/System/basics.tex	Thu Jan 08 18:25:36 1998 +0100
     1.3 @@ -93,7 +93,7 @@
     1.4    
     1.5    Thus individual users may override the site-wide defaults. See also
     1.6    file \texttt{etc/user-settings.sample} in the distribution.
     1.7 -  Typically, user settings should be a few lines only, just containing
     1.8 +  Typically, a user settings file would contain only a few lines, just
     1.9    the assigments that are really needed.  One should definitely
    1.10    \emph{not} start with a full copy the central
    1.11    \texttt{\$ISABELLE_HOME/etc/settings}. This could cause very
    1.12 @@ -168,6 +168,10 @@
    1.13  \item[\settdx{ISABELLE_OUTPUT}*] is a directory where output heap
    1.14    files should be stored by default. The \texttt{ML_SYSTEM} identifier
    1.15    is appended here, too.
    1.16 +  
    1.17 +\item[\settdx{ISABELLE_BROWSER_INFO}] is the directory where theory
    1.18 +  browser information (HTML and graph data) is stored (see also
    1.19 +  \S\ref{sec:info}).
    1.20  
    1.21  \item[\settdx{ISABELLE_LOGIC}] specifies the default logic to load if
    1.22    none is given explicitely by the user --- e.g.\ when running
    1.23 @@ -195,6 +199,12 @@
    1.24    display server. X11 fonts are a non-trivial issue, see
    1.25    \S\ref{sec:tool-installfonts} for more information.
    1.26    
    1.27 +\item[\settdx{ISABELLE_TMP_PREFIX}] is the prefix from which any
    1.28 +  \texttt{isabelle} session derives an individual directory for
    1.29 +  temporary files.  The default value of \texttt{ISABELLE_TMP_PREFIX}
    1.30 +  is \texttt{/tmp/isabelle}; this should not need to be changed under
    1.31 +  normal circumstances.
    1.32 +  
    1.33  \item[\settdx{ISABELLE_INTERFACE}] is an identifier that specifies the
    1.34    actual user interface that the capital \texttt{Isabelle} should
    1.35    invoke.  Currently available are \texttt{none}, \texttt{xterm} and
    1.36 @@ -217,19 +227,21 @@
    1.37      -m MODE      add print mode for output
    1.38      -q           non-interactive session
    1.39      -r           open heap file read-only
    1.40 +    -u           pass 'use"ROOT.ML";' to the ML session
    1.41 +    -w           reset write permissions on OUTPUT
    1.42  
    1.43    INPUT (default "\$ISABELLE_LOGIC") and OUTPUT specify in/out heaps.
    1.44    These are either names to be searched in the Isabelle path, or actual
    1.45 -  file names (then containing at least one /).
    1.46 +  file names (containing at least one /).
    1.47    If INPUT is "RAW_ML_SYSTEM", just start the bare bones ML system.
    1.48  \end{ttbox}
    1.49  Input files without path specifications are looked up in the
    1.50  \texttt{ISABELLE_PATH} setting, which may consist of multiple
    1.51  components separated by colons --- these are tried in order.
    1.52 -Likewise, short output names are relative to the directory specified
    1.53 -by \texttt{ISABELLE_OUTPUT}.  In any case, actual file locations may
    1.54 -also be given by including at least one \texttt{/} in the name (hint:
    1.55 -use \texttt{./} to refer to the current directory).
    1.56 +Likewise, base names are relative to the directory specified by
    1.57 +\texttt{ISABELLE_OUTPUT}.  In any case, actual file locations may also
    1.58 +be given by including at least one \texttt{/} in the name (hint: use
    1.59 +\texttt{./} to refer to the current directory).
    1.60  
    1.61  
    1.62  \subsection*{Options}
    1.63 @@ -246,12 +258,19 @@
    1.64  require considerable amounts of disk space. Users are responsible
    1.65  themselves to dispose their heap files when they are no longer needed.
    1.66  
    1.67 +\medskip The \texttt{-w} option makes the output heap file read-only
    1.68 +after terminating the Isabelle session.  Thus subsequent invocations
    1.69 +cause logic image to be read-only automatically.
    1.70 +
    1.71  \medskip Using the \texttt{-e} option, arbitrary {\ML} code may be
    1.72  passed to the Isabelle session from the command line. Multiple
    1.73  \texttt{-e}'s are evaluated in order. Strange things may happen when
    1.74  errorneous {\ML} code is given. Also make sure that commands are
    1.75  terminated properly by semicolon.
    1.76  
    1.77 +\medskip The \texttt{-u} option is a shortcut for \texttt{-e}, passing
    1.78 +\texttt{use"ROOT.ML";} to the {\ML} session.
    1.79 +
    1.80  \medskip The \texttt{-m} option adds identifiers of print modes to be
    1.81  made active for this session. Typically, this is used by some user
    1.82  interface, for example to enable output of mathematical symbols from a
    1.83 @@ -290,8 +309,6 @@
    1.84  \begin{ttbox}
    1.85  isabelle -r Foo
    1.86  \end{ttbox}
    1.87 -One may also use something like \texttt{chmod~-w} on the logic image
    1.88 -to have it read-only automatically.
    1.89  
    1.90  \medskip The next example demonstrates batch execution of Isabelle. We
    1.91  print a certain theorem of \texttt{FOL}:
    1.92 @@ -314,12 +331,13 @@
    1.93  
    1.94    Available tools are:
    1.95  
    1.96 +    browser - Isabelle theory graph browser
    1.97      doc - view Isabelle documentation
    1.98 -    \(\vdots\)
    1.99 +    \dots
   1.100  \end{ttbox}
   1.101  Basically, Isabelle tools are ordinary executable scripts.  These are
   1.102 -run within the same settings environment as Isabelle proper, though,
   1.103 -see \S\ref{sec:settings}.  The set of available tools is collected by
   1.104 +run within the same settings environment as Isabelle proper, see
   1.105 +\S\ref{sec:settings}.  The set of available tools is collected by
   1.106  isatool from the directories listed in the \texttt{ISABELLE_TOOLS}
   1.107  setting.  Do not try to call the scripts directly. Neither should you
   1.108  add the tools directories to your shell's search path.
   1.109 @@ -341,7 +359,7 @@
   1.110  \item[none] is just a pass-through to \texttt{isabelle}. Thus
   1.111    \texttt{Isabelle} basically becomes an alias for \texttt{isabelle}.
   1.112    
   1.113 -\item[xterm] refers to a simple xterm-based interface which is part of
   1.114 +\item[xterm] refers to a simple xterm based interface which is part of
   1.115    the Isabelle distribution.
   1.116    
   1.117  \item[emacs] refers to David Aspinall's \emph{Isamode} for emacs.
     2.1 --- a/doc-src/System/fonts.tex	Thu Jan 08 18:24:45 1998 +0100
     2.2 +++ b/doc-src/System/fonts.tex	Thu Jan 08 18:25:36 1998 +0100
     2.3 @@ -1,10 +1,12 @@
     2.4 +
     2.5 +$Id$
     2.6  
     2.7  \chapter{Fonts and character encodings}
     2.8  
     2.9  With the advent of print modes in Isabelle, variant forms of output
    2.10  have become very easy. As the canonical application of this feature,
    2.11  {\Pure} and major object-logics (\FOL, \ZF, \HOL, \HOLCF) support
    2.12 -optional input and output of nice mathematical symbols as an built-in
    2.13 +optional input and output of nice mathematical symbols as built-in
    2.14  option.
    2.15  
    2.16  Symbolic output is enabled by activating the \ttindex{symbols} print
    2.17 @@ -14,13 +16,13 @@
    2.18  \medskip Displaying non-standard characters requires special screen
    2.19  fonts, of course. The \texttt{installfonts} utility takes care of
    2.20  this, see \S\ref{sec:tool-installfonts}. Furthermore, some {\ML}
    2.21 -systems disallow non-\textsc{ascii} characters in literal strings.
    2.22 -This problem is avoided by the \texttt{symbolinput} filter (see
    2.23 -\S\ref{sec:tool-symbolinput}).
    2.24 +systems disallow non-\textsc{ascii} characters in literal string
    2.25 +constants.  This problem is avoided by appropriate input filtering
    2.26 +(see \S\ref{sec:tool-symbolinput}).
    2.27  
    2.28 -Both of these are invoked transparently in normal operation. So one
    2.29 -does not actually have to read the explanations below, unless
    2.30 -something fails to work.
    2.31 +These things are usually taken care of automatically behind the
    2.32 +scenes.  Users normally do not have to read the explanations below,
    2.33 +unless something fails to work.
    2.34  
    2.35  
    2.36  \section{Telling X11 about the Isabelle fonts --- \texttt{isatool installfonts}}
    2.37 @@ -50,22 +52,22 @@
    2.38  same machine. In this case, most X11 display servers should be happy
    2.39  by being told about the Isabelle fonts directory as follows:
    2.40  \begin{ttbox}
    2.41 -ISABELLE_INSTALLFONTS="xset fp+{\thinspace}$ISABELLE_HOME/lib/fonts; xset fp rehash"
    2.42 +ISABELLE_INSTALLFONTS="xset fp+ $ISABELLE_HOME/lib/fonts; xset fp rehash"
    2.43  \end{ttbox}
    2.44  The same also works for remote X11 sessions in a somewhat homogeneous
    2.45 -network, where the X11 display machine mounts the Isabelle
    2.46 -distribution under the same name as the client side.
    2.47 +network, where any X11 display machine also mounts the Isabelle
    2.48 +distribution under the \emph{same} name as the client side.
    2.49  
    2.50  \medskip Above method fails, though, if the display machine does have
    2.51  the font files at the same location as the client. In case your server
    2.52  is a full workstation with its own file system, you could in principle
    2.53  just copy the fonts there and do an appropriate \texttt{xset~fp+}
    2.54  manually before running the Isabelle interface. This is very awkward,
    2.55 -of course. It is even \emph{impossible} for proper X terminals that do
    2.56 -not have their own file system.
    2.57 +of course. It is even \emph{impossible} for proper X11 terminals that
    2.58 +do not have their own file system.
    2.59  
    2.60  A much better solution is to have a \emph{font server} offer the
    2.61 -Isabelle fonts to any X display on the network.  There are already
    2.62 +Isabelle fonts to any X11 display on the network.  There are already
    2.63  suitable servers running at Munich and Cambridge. So in case you have
    2.64  a sensible Internet connection to either site, you may just attach
    2.65  yourself as follows:
    2.66 @@ -80,11 +82,26 @@
    2.67  \medskip In the unfortunate case that neither local fonts work, nor
    2.68  accessing our world-wide font service is practical, it might be best
    2.69  to start your own in-house font service. This is in principle easy to
    2.70 -setup. The program is called \texttt{xfs} (or just \texttt{fs)}, see
    2.71 -the \texttt{man} pages of your system. There is an example
    2.72 -configuration available in the \texttt{lib/fontserver} directory of
    2.73 -the Isabelle distribution.
    2.74 +setup. The program is called \texttt{xfs} (sometimes just
    2.75 +\texttt{fs)}, see the \texttt{man} pages of your system. There is an
    2.76 +example fontserver configuration available in the
    2.77 +\texttt{lib/fontserver} directory of the Isabelle distribution.
    2.78 +
    2.79 +
    2.80 +\section{Check for non-ASCII characters --- \texttt{isatool nonascii}}
    2.81  
    2.82 +The \tooldx{nonascii} utility checks files for non-\textsc{ascii}
    2.83 +characters:
    2.84 +\begin{ttbox}
    2.85 +Usage: nonascii [FILES|DIRS...]
    2.86 +
    2.87 +Recursively find .thy/.ML files and check for non-\textsc{ascii}
    2.88 +characters.
    2.89 +\end{ttbox}
    2.90 +Note that under normal circumstances, non-\textsc{ascii} characters
    2.91 +should not appear in theories or proof scripts.  In particular,
    2.92 +unexpected problems may happen in conjunction with the Isabelle symbol
    2.93 +font.
    2.94  
    2.95  
    2.96  \section{Filtering non-ASCII characters --- \texttt{isatool symbolinput}}
    2.97 @@ -111,17 +128,10 @@
    2.98  \medskip In many cases, it might be wise not to rely on symbolic
    2.99  characters and avoid non-\textsc{ascii} text in files altogether. Then
   2.100  symbolic syntax would be really optional, with always suitable
   2.101 -\textsc{ascii} representations available: In theory definitions
   2.102 +\textsc{ascii} representations available: In theory definitions,
   2.103  symbols appear only in mixfix annotations --- using the
   2.104  \verb|\<|$charname$\verb|>| form, proof scripts are just left in plain
   2.105  \textsc{ascii}.
   2.106  
   2.107  Thus users with \textsc{ascii}-only facilities will still be able to
   2.108  read your files.
   2.109 -
   2.110 -
   2.111 -%FIXME not yet
   2.112 -%\section{ --- \texttt{isatool showsymbols}}
   2.113 -%
   2.114 -%\begin{ttbox}
   2.115 -%\end{ttbox}
     3.1 --- a/doc-src/System/misc.tex	Thu Jan 08 18:24:45 1998 +0100
     3.2 +++ b/doc-src/System/misc.tex	Thu Jan 08 18:25:36 1998 +0100
     3.3 @@ -22,29 +22,29 @@
     3.4  
     3.5  \medskip The \texttt{ISABELLE_DOCS} setting specifies the list of
     3.6  directories (separated by colons) to be scanned for documentations.
     3.7 -The program for viewing \texttt{dvi} files is set in
     3.8 -\texttt{DVI_VIEWER}.
     3.9 +The program for viewing \texttt{dvi} files is determined by the
    3.10 +\texttt{DVI_VIEWER} setting.
    3.11  
    3.12  
    3.13  \section{Tuning proof scripts --- \texttt{isatool expandshort}}
    3.14  
    3.15  The \tooldx{expandshort} utility tunes {\ML} proof scripts to enhance
    3.16 -readability a bit:
    3.17 +readability:
    3.18  \begin{ttbox}
    3.19 -Usage: isatool expandshort [FILES ...]
    3.20 +Usage: expandshort [FILES|DIRS...]
    3.21  
    3.22 -  Expand shorthand goal commands in FILES.  Also contracts uses of
    3.23 -  resolve_tac, dresolve_tac, eresolve_tac, rewrite_goals_tac on
    3.24 -  1-element lists; furthermore expands tabs, since they are now
    3.25 -  forbidden in ML string constants.
    3.26 +  Recursively find .ML files, expand shorthand goal commands.
    3.27 +  Also contracts uses of resolve_tac, dresolve_tac, eresolve_tac,
    3.28 +  rewrite_goals_tac on 1-element lists; furthermore expands tabs,
    3.29 +  since they are now forbidden in ML string constants.
    3.30  
    3.31 -  Renames old versions of FILES by appending "~~".
    3.32 +  Renames old versions of files by appending "~~".
    3.33  \end{ttbox}
    3.34 -In the files supplied as arguments, all occurrences of the shorthand
    3.35 -commands \texttt{br}, \texttt{be} etc.\ are replaced with the
    3.36 -corresponding full commands.  Shorthand commands should appear one per
    3.37 -line.  The old versions of the files are renamed to have the
    3.38 -suffix~\verb'~~'.
    3.39 +In the files or directories supplied as arguments, all occurrences of
    3.40 +the shorthand commands \texttt{br}, \texttt{be} etc.\ in proof scripts
    3.41 +are replaced with the corresponding full commands.  The old versions
    3.42 +of the files are renamed to have the suffix~\verb'~~'.
    3.43 +
    3.44  
    3.45  \section{Get logic images --- \texttt{isatool findlogics}}
    3.46  
    3.47 @@ -81,7 +81,7 @@
    3.48  With the \texttt{-a} option, one may inspect the full process
    3.49  environment that Isabelle related programs are run in. This usually
    3.50  contains much more variables than are actually Isabelle settings.
    3.51 -Normally output is a list of lines of the form
    3.52 +Normally, output is a list of lines of the form
    3.53  \mbox{$varname$\texttt{=}$value$}. The \texttt{-b} option causes only
    3.54  the values to be printed.
    3.55  
    3.56 @@ -92,15 +92,15 @@
    3.57  binaries are supposed to reside as follows:
    3.58  \begin{ttbox}
    3.59  isatool getenv ML_SYSTEM ML_HOME
    3.60 -{\out ML_SYSTEM=smlnj-1.09}
    3.61 -{\out ML_HOME=/usr/local/sml109.27/bin}
    3.62 +{\out ML_SYSTEM=smlnj-110}
    3.63 +{\out ML_HOME=/usr/local/smlnj-110/bin}
    3.64  \end{ttbox}
    3.65  
    3.66  The next one peeks at the search path that \texttt{isabelle} uses to
    3.67  locate logic images:
    3.68  \begin{ttbox}
    3.69  isatool getenv -b ISABELLE_PATH
    3.70 -{\out /home/me/isabelle/heaps/smlnj-1.09:/proj/isabelle/heaps/smlnj-1.09}
    3.71 +{\out /home/me/isabelle/heaps/smlnj-110:/usr/local/isabelle/heaps/smlnj-110}
    3.72  \end{ttbox}
    3.73  We used the \texttt{-b} option to suppress the \texttt{ISABELLE_PATH=}
    3.74  prefix.  The value above is what became of the following assignment in
    3.75 @@ -131,9 +131,29 @@
    3.76  utility, see \S\ref{sec:tool-usedir}.
    3.77  
    3.78  \medskip The basic \texttt{IsaMakefile} convention is that the default
    3.79 -target builds the actual logic, including its parents if absent (but
    3.80 -not if just out of date). Furthermore, the \texttt{test} target shall
    3.81 -build the logic \emph{and} run it on all distributed examples.
    3.82 +target builds the actual logic, including its parents if appropriate.
    3.83 +The \texttt{images} target is intended to build all logic images,
    3.84 +while the \texttt{test} target shall build all related examples.  The
    3.85 +\texttt{all} target shall build the images and run the examples.
    3.86 +
    3.87 +
    3.88 +\subsection*{Examples}
    3.89 +
    3.90 +Refer to the \texttt{IsaMakefile}s of the Isabelle distribution's
    3.91 +object-logics as a model for your own developements.
    3.92 +
    3.93 +
    3.94 +\section{Make all logics -- \texttt{isatool makeall}}
    3.95 +
    3.96 +The \tooldx{makeall} utility applies Isabelle make to all logic
    3.97 +directories of the Isabelle distribution:
    3.98 +\begin{ttbox}
    3.99 +Usage: makeall [ARGS ...]
   3.100 +
   3.101 +  Apply isatool make to all logics (passing ARGS).
   3.102 +\end{ttbox}
   3.103 +The arguments \texttt{ARGS} are just passed verbatim to any
   3.104 +\texttt{make} invocation.
   3.105  
   3.106  
   3.107  \section{Running complete logics --- \texttt{isatool usedir}} \label{sec:tool-usedir}
   3.108 @@ -166,20 +186,21 @@
   3.109  
   3.110  Basically, there are two different modes of operation: \emph{build
   3.111    mode} (enabled through the \texttt{-b} option) and \emph{example
   3.112 -  mode}.
   3.113 +  mode} (default).
   3.114  
   3.115  Calling \texttt{usedir} with \texttt{-b} runs \texttt{isabelle} with
   3.116  input image \texttt{LOGIC} and output to \texttt{NAME}, as provided on
   3.117 -the command line. This will be a batch session, executing just
   3.118 -\texttt{use_dir".";}\index{*use_dir} and then quitting. It is assumed
   3.119 -that there is a file \texttt{ROOT.ML} in the current directory
   3.120 -containing all {\ML} commands required to build the logic.
   3.121 +the command line. This will be a batch session, running
   3.122 +\texttt{ROOT.ML} from the current directory and then quitting.  It is
   3.123 +assumed that \texttt{ROOT.ML} contains all {\ML} commands required to
   3.124 +build the logic.
   3.125  
   3.126  In example mode, on the other hand, \texttt{usedir} runs a read-only
   3.127 -session of \texttt{LOGIC} (typically just built before) and does an
   3.128 -automatic \texttt{use_dir"NAME";} I.e.\ it assumes that some file
   3.129 -\texttt{ROOT.ML} in directory \texttt{NAME} contains appropriate {\ML}
   3.130 -commands to run the desired examples.
   3.131 +session of \texttt{LOGIC} (typically just built before) and
   3.132 +automatically runs \texttt{ROOT.ML} from within directory
   3.133 +\texttt{NAME}.  I.e.\ it assumes that some file \texttt{ROOT.ML} in
   3.134 +directory \texttt{NAME} contains appropriate {\ML} commands to run the
   3.135 +desired examples.
   3.136  
   3.137  \medskip The \texttt{-i} option controls theory browsing data
   3.138  generation. It may be explicitely turned on or off --- the last
     4.1 --- a/doc-src/System/present.tex	Thu Jan 08 18:24:45 1998 +0100
     4.2 +++ b/doc-src/System/present.tex	Thu Jan 08 18:25:36 1998 +0100
     4.3 @@ -1,16 +1,17 @@
     4.4 +
     4.5  %% $Id$
     4.6  
     4.7  \chapter{Presenting theories}
     4.8  
     4.9  \section{Generating theory browsing information} \label{sec:info}
    4.10 -\index{theory browsing information|bold} 
    4.11 +\index{theory browsing information|bold}
    4.12  
    4.13 -Isabelle is able to generate theory browsing information, such as HTML documents
    4.14 -that show a theory's definition, the theorems proved in its ML file and the relationship
    4.15 -with its ancestors and descendants. HTML is the hypertext markup
    4.16 -language used on the World Wide Web to represent text containing
    4.17 -images and links to other documents.  These documents may be viewed
    4.18 -using Web browsers like Netscape or Lynx.
    4.19 +Isabelle is able to generate theory browsing information, such as HTML
    4.20 +documents that show a theory's definition, the theorems proved in its
    4.21 +ML file and the relationship with its ancestors and descendants. HTML
    4.22 +is the hypertext markup language used on the World Wide Web to
    4.23 +represent text containing links to other documents.  These documents
    4.24 +may be viewed using Web browsers like Netscape or Lynx.
    4.25  
    4.26  Besides the three HTML files that are made for every theory
    4.27  (definition and theorems, ancestors, descendants), Isabelle stores
    4.28 @@ -18,29 +19,30 @@
    4.29  linked with other indexes to represent the hierarchic structure of
    4.30  Isabelle's logics.
    4.31  
    4.32 -In addition to the HTML files also {\tt *.graph} files representing the theory
    4.33 -hierarchy graph of a logic are generated. These graphs can be comfortably
    4.34 -displayed by a graph browser applet embedded in the generated HTML pages. There
    4.35 -is also a stand-alone version of the graph browser which allows browsing theory
    4.36 -graphs without having to start a Web browser first. This version also includes
    4.37 -features such as generating {\sc PostScript} files, which are not available in the
    4.38 -applet version. The graph browser will be described later in this chapter.
    4.39 +In addition to the HTML files, Isabelle also generates \texttt{graph}
    4.40 +files that represent the theory hierarchy of a logic.  These graphs
    4.41 +can be comfortably displayed by a graph browser Java applet embedded
    4.42 +in the generated HTML pages. There is also a stand-alone version of
    4.43 +the graph browser which allows browsing theory graphs without having
    4.44 +to start a Web browser first. This version also includes features such
    4.45 +as generating {\sc PostScript} files, which are not available in the
    4.46 +applet version. The graph browser will be described later in this
    4.47 +chapter.
    4.48  
    4.49 -\medskip To generate theory browsing information for logics that are part of the Isabelle
    4.50 -distribution, simply append ``\texttt{-i true}'' to the
    4.51 -\settdx{ISABELLE_USEDIR_OPTIONS} setting before making a logic.  For
    4.52 -example, to generate browsing information for {\FOL}, first add something like
    4.53 -this to your \texttt{\~\relax/isabelle/etc/settings} file:
    4.54 +\medskip To generate theory browsing information for logics that are
    4.55 +part of the Isabelle distribution, simply append ``\texttt{-i true}''
    4.56 +to the \settdx{ISABELLE_USEDIR_OPTIONS} setting before making a logic.
    4.57 +For example, to generate browsing information for {\FOL}, first add
    4.58 +something like this to your private Isabelle settings file:
    4.59  \begin{ttbox}
    4.60  ISABELLE_USEDIR_OPTIONS="-i true"
    4.61  \end{ttbox}
    4.62  Then \texttt{cd} into the \texttt{src/FOL} directory of the Isabelle
    4.63  distribution and do an \texttt{isatool make} (or even \texttt{isatool
    4.64 -  make test}).\\
    4.65 +  make test}).
    4.66  
    4.67 -The directory in which to store theory browsing information is determined 
    4.68 -by the \settdx{ISABELLE_BROWSER_INFO} variable in your \texttt{\~\relax/isabelle/etc/settings}
    4.69 -file.
    4.70 +\medskip The directory in which to store theory browsing information
    4.71 +is determined by the \settdx{ISABELLE_BROWSER_INFO} setting.
    4.72  
    4.73  \medskip As some of Isabelle's logics are based on others (e.g. {\tt
    4.74    ZF} on {\tt FOL}) and because the HTML files list a theory's
    4.75 @@ -61,21 +63,23 @@
    4.76  To present your own theories on the WWW, simply copy the whole
    4.77  \texttt{ISABELLE_BROWSER_INFO} directory to your WWW server.
    4.78  
    4.79 +
    4.80  \section{Extending or adding a logic}
    4.81  
    4.82  If you add a new subdirectory to Isabelle's logics (or add a
    4.83  completely new logic), provide a {\tt ROOT.ML} file which reads in the
    4.84 -theory files. The {\tt ROOT.ML} file will then be processed via the function
    4.85 +theory files. The {\tt ROOT.ML} file will then be processed via the
    4.86 +function
    4.87  
    4.88  \begin{ttbox}\index{*use_dir}
    4.89  use_dir : string -> unit
    4.90  \end{ttbox}
    4.91  
    4.92 -which takes a path as its parameter, changes the working
    4.93 -directory, executes {\tt ROOT.ML}, and makes sure that theory browsing information
    4.94 -is generated properly. The {\tt index.html} file written in this directory will
    4.95 -be automatically linked to the first index found in the (recursively searched)
    4.96 -super directories.
    4.97 +which takes a path as its parameter, changes the working directory,
    4.98 +executes {\tt ROOT.ML}, and makes sure that theory browsing
    4.99 +information is generated properly. The {\tt index.html} file written
   4.100 +in this directory will be automatically linked to the first index
   4.101 +found in the (recursively searched) super directories.
   4.102  
   4.103  The \texttt{usedir} utility (see also \S\ref{sec:tool-usedir}) will
   4.104  automatically take care of this.
   4.105 @@ -91,9 +95,9 @@
   4.106  section: string -> unit
   4.107  \end{ttbox}
   4.108  
   4.109 -in a theory's ML file, which converts a plain string to a HTML
   4.110 -heading and inserts it before the next theorem proved or stored with
   4.111 -one of the above functions.
   4.112 +in a theory's ML file, which converts a plain string to a HTML heading
   4.113 +and inserts it before the next theorem proved or stored with one of
   4.114 +the above functions.
   4.115  
   4.116  
   4.117  %\section*{*Using someone else's database}
   4.118 @@ -138,103 +142,135 @@
   4.119  \section{Browsing theory graphs} \label{sec:browse}
   4.120  \index{theory graph browser|bold} 
   4.121  
   4.122 -The graph browser is a tool for visualizing
   4.123 -dependency graphs of Isabelle theories. Certain nodes of
   4.124 -the graph (i.e.~theories) can be grouped together in "directories",
   4.125 -whose contents may be hidden, thus enabling the user to filter out
   4.126 -irrelevant information. Because it is written in Java, the browser
   4.127 -can be used both as a stand-alone application and as an applet.
   4.128 +The graph browser is a tool for visualizing dependency graphs of
   4.129 +Isabelle theories. Certain nodes of the graph (i.e.~theories) can be
   4.130 +grouped together in ``directories'', whose contents may be hidden,
   4.131 +thus enabling the user to filter out irrelevant information.  The
   4.132 +browser is written in Java, it can be used both as a stand-alone
   4.133 +application and as an applet.
   4.134 +
   4.135  
   4.136  \subsection{Invoking the graph browser}
   4.137 -The stand-alone version of the browser can be invoked by the command
   4.138 +
   4.139 +The stand-alone version of the graph browser is wrapped up as an
   4.140 +Isabelle tool called \tooldx{browser}:
   4.141  \begin{ttbox}
   4.142 -isatool browser [filename]
   4.143 +Usage: browser [GRAPHFILE]
   4.144  \end{ttbox}
   4.145 -When no filename is specified, the browser automatically changes to the directory
   4.146 -\texttt{ISABELLE_BROWSER_INFO/graph/data}.\\
   4.147 +When no filename is specified, the browser automatically changes to
   4.148 +the directory \texttt{ISABELLE_BROWSER_INFO/graph/data}.
   4.149  
   4.150 -The applet version of the browser can be invoked by opening the {\tt index.html} file
   4.151 -in the directory \texttt{ISABELLE_BROWSER_INFO} from your Web browser and selecting
   4.152 -"version for Java capable browsers". Besides, there's a link to the corresponding theory graph
   4.153 -in every logic's {\tt index.html} file.
   4.154 +\medskip The applet version of the browser can be invoked by opening
   4.155 +the {\tt index.html} file in the directory
   4.156 +\texttt{ISABELLE_BROWSER_INFO} from your Web browser and selecting
   4.157 +``version for Java capable browsers''.  There is also a link to the
   4.158 +corresponding theory graph in every logic's {\tt index.html} file.
   4.159 +
   4.160  
   4.161  \subsection{Using the graph browser}
   4.162 -The browser's main window, which is shown in figure \ref{browserwindow},
   4.163 -consists of two subwindows: In the left subwindow, the directory tree
   4.164 -is displayed. The graph itself is displayed in the right subwindow.
   4.165 +
   4.166 +The browser's main window, which is shown in figure
   4.167 +\ref{browserwindow}, consists of two subwindows: In the left
   4.168 +subwindow, the directory tree is displayed. The graph itself is
   4.169 +displayed in the right subwindow.
   4.170  \begin{figure}[h]
   4.171 -\setlength{\epsfxsize}{\textwidth}
   4.172 -\epsffile{browser_screenshot.eps}
   4.173 -\caption{\label{browserwindow} Browser main window}
   4.174 +  \includegraphics[width=\textwidth]{browser_screenshot.eps}
   4.175 +  \caption{\label{browserwindow} Browser main window}
   4.176  \end{figure}
   4.177  
   4.178 +
   4.179  \subsubsection*{The directory tree window}
   4.180 +
   4.181  This section describes the usage of the directory browser and the
   4.182  meaning of the different items in the browser window.
   4.183  \begin{itemize}
   4.184 -\item A red arrow before a directory name indicates that the directory is
   4.185 -currently "folded", i.e.~the nodes in this directory
   4.186 -are collapsed to one single node. In the right subwindow, the names of
   4.187 -nodes corresponding to folded directories are enclosed in square brackets
   4.188 -and displayed in red colour.
   4.189 -\item A green downward arrow before a directory name indicates that the
   4.190 -directory is currently "unfolded". It can be folded by clicking on the
   4.191 -directory name.
   4.192 -Clicking on the name for a second time unfolds the directory again.
   4.193 -Alternatively, a directory can also be unfolded by clicking on the
   4.194 -corresponding node in the right subwindow.
   4.195 +  
   4.196 +\item A red arrow before a directory name indicates that the directory
   4.197 +  is currently ``folded'', i.e.~the nodes in this directory are
   4.198 +  collapsed to one single node. In the right subwindow, the names of
   4.199 +  nodes corresponding to folded directories are enclosed in square
   4.200 +  brackets and displayed in red colour.
   4.201 +  
   4.202 +\item A green downward arrow before a directory name indicates that
   4.203 +  the directory is currently ``unfolded''. It can be folded by
   4.204 +  clicking on the directory name.  Clicking on the name for a second
   4.205 +  time unfolds the directory again.  Alternatively, a directory can
   4.206 +  also be unfolded by clicking on the corresponding node in the right
   4.207 +  subwindow.
   4.208 +  
   4.209  \item Blue arrows stand before ordinary node (i.e.~theory) names. When
   4.210 -clicking on such a name, the graph display window focuses to the
   4.211 -corresponding node. Double clicking invokes a text viewer window in
   4.212 -which the contents of the theory file are displayed.
   4.213 +  clicking on such a name, the graph display window focuses to the
   4.214 +  corresponding node. Double clicking invokes a text viewer window in
   4.215 +  which the contents of the theory file are displayed.
   4.216 +
   4.217  \end{itemize}
   4.218  
   4.219 +
   4.220  \subsubsection*{The graph display window}
   4.221 -When pointing on an ordinary node, an upward and a downward arrow is shown.
   4.222 -Initially, both of these arrows are coloured green. Clicking on the
   4.223 +
   4.224 +When pointing on an ordinary node, an upward and a downward arrow is
   4.225 +shown.  Initially, both of these arrows are green. Clicking on the
   4.226  upward or downward arrow collapses all predecessor or successor nodes,
   4.227  respectively. The arrow's colour then changes to red, indicating that
   4.228  the predecessor or successor nodes are currently collapsed. The node
   4.229 -corresponding to the collapsed nodes has the name "{\tt [....]}". To
   4.230 -uncollapse the nodes again, simply click on the red arrow or on the node
   4.231 -with the name "{\tt [....]}". Similar to the directory browser, the contents
   4.232 -of theory files can be displayed by double clicking on the corresponding
   4.233 -node. 
   4.234 +corresponding to the collapsed nodes has the name ``{\tt [....]}''. To
   4.235 +uncollapse the nodes again, simply click on the red arrow or on the
   4.236 +node with the name ``{\tt [....]}''. Similar to the directory browser,
   4.237 +the contents of theory files can be displayed by double clicking on
   4.238 +the corresponding node.
   4.239  
   4.240 -\subsubsection*{The "File" menu}
   4.241 -Please note that, due to security restrictions, this menu is not available
   4.242 -in the applet version. The meaning of the menu items is as follows:
   4.243 +
   4.244 +\subsubsection*{The ``File'' menu}
   4.245 +
   4.246 +Please note that, due to Java security restrictions, this menu is not
   4.247 +available in the applet version. The meaning of the menu items is as
   4.248 +follows:
   4.249  \begin{description}
   4.250 +  
   4.251  \item[Open$\ldots$] Open a new graph file.
   4.252 -\item[Export to PostScript] Outputs the current graph in {\sc PostScript}
   4.253 -format, appropriately scaled to fit on one single sheet of paper.
   4.254 -The resulting file can be sent directly to a {\sc PostScript} capable printer.
   4.255 -\item[Export to EPS] Outputs the current graph in Encapsulated {\sc PostScript}
   4.256 -format. The resulting file can be included in other documents (e.g.~by using
   4.257 -the \LaTeX \ package "epsf").
   4.258 +  
   4.259 +\item[Export to PostScript] Outputs the current graph in {\sc
   4.260 +    PostScript} format, appropriately scaled to fit on one single
   4.261 +  sheet of paper.  The resulting file can printed directly.
   4.262 +  
   4.263 +\item[Export to EPS] Outputs the current graph in Encapsulated {\sc
   4.264 +    PostScript} format. The resulting file can be included in other
   4.265 +  documents.
   4.266 +
   4.267  \item[Quit] Quit the graph browser.
   4.268 +
   4.269  \end{description}
   4.270  
   4.271 +
   4.272  \subsection*{*Syntax of graph definition files}
   4.273 +
   4.274  A graph definition file has the following syntax:
   4.275  \begin{eqnarray*}
   4.276 -\mbox{\it graph} & = & \{ \: \mbox{\it vertex \tt ;} \: \} ^ + \\
   4.277 -vertex & = & \mbox{\it vertexname} \: \mbox{\it vertexID} \: \mbox{\it dirname} \: [ \mbox{\tt +} ]
   4.278 -\: \mbox{\it path} \: [ \mbox{\tt <} | \mbox{\tt >} ] \: \{ \: \mbox{\it vertexID} \: \} ^ *
   4.279 +  \mbox{\it graph} & = & \{ \: \mbox{\it vertex \tt ;} \: \} ^ + \\
   4.280 +  vertex & = & \mbox{\it vertexname} \: \mbox{\it vertexID} \: \mbox{\it dirname} \: [ \mbox{\tt +} ]
   4.281 +  \: \mbox{\it path} \: [ \mbox{\tt <} | \mbox{\tt >} ] \: \{ \: \mbox{\it vertexID} \: \} ^ *
   4.282  \end{eqnarray*}
   4.283 +
   4.284  The meaning of the items in a vertex description is as follows:
   4.285  \begin{description}
   4.286 +  
   4.287  \item[vertexname] The name of the vertex.
   4.288 -\item[vertexID] The vertex identifier. Note that there may be two vertices with equal names,
   4.289 -whereas identifiers must be unique.
   4.290 -\item[dirname] The name of the "directory" the vertex should be placed in.
   4.291 -A "{\tt +}" sign after {\it dirname} indicates that the nodes in the directory
   4.292 -are initially visible. Directories are initially invisible by default.
   4.293 -\item[path] The path of the corresponding theory file. This is specified
   4.294 -relatively to the path of the graph definition file.
   4.295 -\item[List of successor/predecessor nodes] A "{\tt <}" sign before the list
   4.296 -means that successor nodes are listed, a "{\tt >}" sign means that predecessor
   4.297 -nodes are listed. If neither "{\tt <}" nor "{\tt >}" is found, the browser
   4.298 -assumes that successor nodes are listed.
   4.299 +  
   4.300 +\item[vertexID] The vertex identifier. Note that there may be two
   4.301 +  vertices with equal names, whereas identifiers must be unique.
   4.302 +  
   4.303 +\item[dirname] The name of the ``directory'' the vertex should be
   4.304 +  placed in.  A ``{\tt +}'' sign after {\it dirname} indicates that
   4.305 +  the nodes in the directory are initially visible. Directories are
   4.306 +  initially invisible by default.
   4.307 +  
   4.308 +\item[path] The path of the corresponding theory file. This is
   4.309 +  specified relatively to the path of the graph definition file.
   4.310 +  
   4.311 +\item[List of successor/predecessor nodes] A ``{\tt <}'' sign before
   4.312 +  the list means that successor nodes are listed, a ``{\tt >}'' sign
   4.313 +  means that predecessor nodes are listed. If neither ``{\tt <}'' nor
   4.314 +  ``{\tt >}'' is found, the browser assumes that successor nodes are
   4.315 +  listed.
   4.316 +
   4.317  \end{description}
   4.318 -All names should be put in quotation marks.
     5.1 --- a/doc-src/System/system.ind	Thu Jan 08 18:24:45 1998 +0100
     5.2 +++ b/doc-src/System/system.ind	Thu Jan 08 18:25:36 1998 +0100
     5.3 @@ -1,5 +1,9 @@
     5.4  \begin{theindex}
     5.5  
     5.6 +  \item {\tt browser} tool, 19
     5.7 +
     5.8 +  \indexspace
     5.9 +
    5.10    \item {\tt doc} tool, 8
    5.11    \item {\tt DVI_VIEWER} setting, 4
    5.12  
    5.13 @@ -22,22 +26,23 @@
    5.14    \indexspace
    5.15  
    5.16    \item {\tt INSTALL}, 1
    5.17 -  \item {\tt installfonts} tool, 12
    5.18 +  \item {\tt installfonts} tool, 14
    5.19    \item {\tt ISABELLE} setting, 3
    5.20 -  \item {\tt Isabelle}, 1, 6
    5.21 +  \item {\tt Isabelle}, 1, 7
    5.22    \item {\tt isabelle}, 1, 4
    5.23 -  \item {\tt ISABELLE_BROWSER_INFO} setting, 15
    5.24 +  \item {\tt ISABELLE_BROWSER_INFO} setting, 4, 17
    5.25    \item {\tt ISABELLE_DOCS} setting, 4
    5.26    \item {\tt ISABELLE_HOME} setting, 2, 3
    5.27    \item {\tt ISABELLE_HOME_USER} setting, 3
    5.28    \item {\tt ISABELLE_INSTALL_FONTS} setting, 4
    5.29 -  \item {\tt ISABELLE_INSTALLFONTS} setting, 12
    5.30 -  \item {\tt ISABELLE_INTERFACE} setting, 4, 6
    5.31 +  \item {\tt ISABELLE_INSTALLFONTS} setting, 14
    5.32 +  \item {\tt ISABELLE_INTERFACE} setting, 4, 7
    5.33    \item {\tt ISABELLE_LOGIC} setting, 4
    5.34    \item {\tt ISABELLE_OUTPUT} setting, 3, 4
    5.35    \item {\tt ISABELLE_PATH} setting, 3
    5.36 +  \item {\tt ISABELLE_TMP_PREFIX} setting, 4
    5.37    \item {\tt ISABELLE_TOOLS} setting, 4
    5.38 -  \item {\tt ISABELLE_USEDIR_OPTIONS} setting, 4, 11, 15
    5.39 +  \item {\tt ISABELLE_USEDIR_OPTIONS} setting, 4, 11, 17
    5.40    \item {\tt IsaMakefile}, 10, 11
    5.41    \item {\tt ISATOOL} setting, 3
    5.42    \item {\tt isatool}, 1, 6
    5.43 @@ -45,24 +50,29 @@
    5.44    \indexspace
    5.45  
    5.46    \item {\tt make} tool, 10
    5.47 +  \item {\tt makeall} tool, 10
    5.48    \item {\tt ML_HOME} setting, 3
    5.49    \item {\tt ML_OPTIONS} setting, 3
    5.50    \item {\tt ML_SYSTEM} setting, 3
    5.51  
    5.52    \indexspace
    5.53  
    5.54 +  \item {\tt nonascii} tool, 15
    5.55 +
    5.56 +  \indexspace
    5.57 +
    5.58    \item settings, \bold{1}
    5.59 -  \item {\tt symbolinput} tool, 13
    5.60 -  \item {\tt symbols}, 12
    5.61 +  \item {\tt symbolinput} tool, 16
    5.62 +  \item {\tt symbols}, 14
    5.63  
    5.64    \indexspace
    5.65  
    5.66 -  \item theory browsing information, \bold{15}
    5.67 -  \item theory graph browser, \bold{16}
    5.68 +  \item theory browsing information, \bold{17}
    5.69 +  \item theory graph browser, \bold{18}
    5.70  
    5.71    \indexspace
    5.72  
    5.73 -  \item {\tt use_dir}, 11, 16
    5.74 -  \item {\tt usedir} tool, 10
    5.75 +  \item {\tt use_dir}, 18
    5.76 +  \item {\tt usedir} tool, 11
    5.77  
    5.78  \end{theindex}
     6.1 --- a/doc-src/System/system.tex	Thu Jan 08 18:24:45 1998 +0100
     6.2 +++ b/doc-src/System/system.tex	Thu Jan 08 18:25:36 1998 +0100
     6.3 @@ -2,22 +2,18 @@
     6.4  %% $Id$
     6.5  
     6.6  \documentclass[12pt]{report}
     6.7 -\usepackage{a4,epsf}
     6.8 +\usepackage{a4,graphicx,../iman,../extra}
     6.9  
    6.10 -\makeatletter
    6.11 -\input{../iman.sty}
    6.12 -\input{../extra.sty}
    6.13 -\makeatother
    6.14  
    6.15  \title{The Isabelle System Manual}
    6.16  
    6.17 -\author{{\em Lawrence C. Paulson}\\
    6.18 -        Computer Laboratory \\ University of Cambridge \\
    6.19 -        \texttt{lcp@cl.cam.ac.uk}\\[3ex] 
    6.20 -        With Contributions by Tobias Nipkow and Markus Wenzel
    6.21 -        \thanks{Section~\protect\ref{sec:info} was written by Carsten
    6.22 -          Clasohm.  Section~\protect\ref{sec:browse} was written by Stefan
    6.23 -          Berghofer. Other parts are by Markus Wenzel.}}
    6.24 +\author{{\em Lawrence C. Paulson} \\
    6.25 +  Computer Laboratory \\ University of Cambridge \\
    6.26 +  \texttt{lcp@cl.cam.ac.uk}\\[3ex]
    6.27 +  With Contributions by Tobias Nipkow and Markus
    6.28 +  Wenzel\thanks{Section~\protect\ref{sec:info} was written by Carsten
    6.29 +    Clasohm.  Section~\protect\ref{sec:browse} was written by Stefan
    6.30 +    Berghofer. Other parts are by Markus Wenzel.}}
    6.31  
    6.32  \makeindex
    6.33  
    6.34 @@ -28,22 +24,17 @@
    6.35  \binperiod     %%%treat . like a binary operator
    6.36  
    6.37  \begin{document}
    6.38 +
    6.39  \underscoreoff
    6.40  
    6.41  \maketitle 
    6.42  \pagenumbering{roman} \tableofcontents \clearfirst
    6.43  
    6.44 -%\include{introduction}
    6.45 -
    6.46  \include{basics}
    6.47  \include{misc}
    6.48  \include{fonts}
    6.49  \include{present}
    6.50  
    6.51 -%\begingroup
    6.52 -%  \bibliographystyle{plain} \small\raggedright\frenchspacing
    6.53 -%  \bibliography{string,atp,funprog,general,logicprog,isabelle,theory,crossref}
    6.54 -%\endgroup
    6.55 +\input{system.ind}
    6.56  
    6.57 -\input{system.ind}
    6.58  \end{document}