more standard document preparation within session context;
authorwenzelm
Mon, 27 Aug 2012 16:48:41 +0200
changeset 48937 e7418f8d49fe
parent 48936 e6d9e46ff7bc
child 48938 d468d72a458f
more standard document preparation within session context;
doc-src/ROOT
doc-src/System/Base.thy
doc-src/System/Basics.thy
doc-src/System/Interfaces.thy
doc-src/System/Makefile
doc-src/System/Misc.thy
doc-src/System/Presentation.thy
doc-src/System/Scala.thy
doc-src/System/Sessions.thy
doc-src/System/Thy/Base.thy
doc-src/System/Thy/Basics.thy
doc-src/System/Thy/Interfaces.thy
doc-src/System/Thy/Misc.thy
doc-src/System/Thy/Presentation.thy
doc-src/System/Thy/Scala.thy
doc-src/System/Thy/Sessions.thy
doc-src/System/Thy/document/Base.tex
doc-src/System/Thy/document/Basics.tex
doc-src/System/Thy/document/Interfaces.tex
doc-src/System/Thy/document/Misc.tex
doc-src/System/Thy/document/Presentation.tex
doc-src/System/Thy/document/Scala.tex
doc-src/System/Thy/document/Sessions.tex
doc-src/System/browser_screenshot.eps
doc-src/System/browser_screenshot.png
doc-src/System/document/browser_screenshot.eps
doc-src/System/document/browser_screenshot.png
doc-src/System/document/build
doc-src/System/document/root.tex
doc-src/System/system.tex
--- a/doc-src/ROOT	Mon Aug 27 16:10:54 2012 +0200
+++ b/doc-src/ROOT	Mon Aug 27 16:48:41 2012 +0200
@@ -104,9 +104,8 @@
     Logic
     Isar
 
-session System (doc) in "System/Thy" = Pure +
-  options [browser_info = false, document = false,
-    document_dump = document, document_dump_mode = "tex"]
+session System (doc) in "System" = Pure +
+  options [document_variants = "system", thy_output_source]
   theories
     Basics
     Interfaces
@@ -114,6 +113,18 @@
     Presentation
     Scala
     Misc
+  files
+    "../IsarRef/style.sty"
+    "../iman.sty"
+    "../extra.sty"
+    "../ttbox.sty"
+    "../isar.sty"
+    "../underscore.sty"
+    "../manual.bib"
+    "document/browser_screenshot.eps"
+    "document/browser_screenshot.png"
+    "document/build"
+    "document/root.tex"
 
 session Tutorial (doc) in "TutorialI" = HOL +
   options [browser_info = false, document = false,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc-src/System/Base.thy	Mon Aug 27 16:48:41 2012 +0200
@@ -0,0 +1,8 @@
+theory Base
+imports Pure
+begin
+
+ML_file "../antiquote_setup.ML"
+setup Antiquote_Setup.setup
+
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc-src/System/Basics.thy	Mon Aug 27 16:48:41 2012 +0200
@@ -0,0 +1,554 @@
+theory Basics
+imports Base
+begin
+
+chapter {* The Isabelle system environment *}
+
+text {* This manual describes Isabelle together with related tools and
+  user interfaces as seen from a system oriented view.  See also the
+  \emph{Isabelle/Isar Reference Manual}~\cite{isabelle-isar-ref} for
+  the actual Isabelle input language and related concepts, and
+  \emph{The Isabelle/Isar Implementation
+  Manual}~\cite{isabelle-implementation} for the main concepts of the
+  underlying implementation in Isabelle/ML.
+
+  \medskip The Isabelle system environment provides the following
+  basic infrastructure to integrate tools smoothly.
+
+  \begin{enumerate}
+
+  \item The \emph{Isabelle settings} mechanism provides process
+  environment variables to all Isabelle executables (including tools
+  and user interfaces).
+
+  \item The raw \emph{Isabelle process} (@{executable_ref
+  "isabelle-process"}) runs logic sessions either interactively or in
+  batch mode.  In particular, this view abstracts over the invocation
+  of the actual ML system to be used.  Regular users rarely need to
+  care about the low-level process.
+
+  \item The main \emph{Isabelle tool wrapper} (@{executable_ref
+  isabelle}) provides a generic startup environment Isabelle related
+  utilities, user interfaces etc.  Such tools automatically benefit
+  from the settings mechanism.
+
+  \end{enumerate}
+*}
+
+
+section {* Isabelle settings \label{sec:settings} *}
+
+text {*
+  The Isabelle system heavily depends on the \emph{settings
+  mechanism}\indexbold{settings}.  Essentially, this is a statically
+  scoped collection of environment variables, such as @{setting
+  ISABELLE_HOME}, @{setting ML_SYSTEM}, @{setting ML_HOME}.  These
+  variables are \emph{not} intended to be set directly from the shell,
+  though.  Isabelle employs a somewhat more sophisticated scheme of
+  \emph{settings files} --- one for site-wide defaults, another for
+  additional user-specific modifications.  With all configuration
+  variables in clearly defined places, this scheme is more
+  maintainable and user-friendly than global shell environment
+  variables.
+
+  In particular, we avoid the typical situation where prospective
+  users of a software package are told to put several things into
+  their shell startup scripts, before being able to actually run the
+  program. Isabelle requires none such administrative chores of its
+  end-users --- the executables can be invoked straight away.
+  Occasionally, users would still want to put the @{file
+  "$ISABELLE_HOME/bin"} directory into their shell's search path, but
+  this is not required.
+*}
+
+
+subsection {* Bootstrapping the environment \label{sec:boot} *}
+
+text {* Isabelle executables need to be run within a proper settings
+  environment.  This is bootstrapped as described below, on the first
+  invocation of one of the outer wrapper scripts (such as
+  @{executable_ref isabelle}).  This happens only once for each
+  process tree, i.e.\ the environment is passed to subprocesses
+  according to regular Unix conventions.
+
+  \begin{enumerate}
+
+  \item The special variable @{setting_def ISABELLE_HOME} is
+  determined automatically from the location of the binary that has
+  been run.
+  
+  You should not try to set @{setting ISABELLE_HOME} manually. Also
+  note that the Isabelle executables either have to be run from their
+  original location in the distribution directory, or via the
+  executable objects created by the @{tool install} tool.  Symbolic
+  links are admissible, but a plain copy of the @{file
+  "$ISABELLE_HOME/bin"} files will not work!
+
+  \item The file @{file "$ISABELLE_HOME/etc/settings"} is run as a
+  @{executable_ref bash} shell script with the auto-export option for
+  variables enabled.
+  
+  This file holds a rather long list of shell variable assigments,
+  thus providing the site-wide default settings.  The Isabelle
+  distribution already contains a global settings file with sensible
+  defaults for most variables.  When installing the system, only a few
+  of these may have to be adapted (probably @{setting ML_SYSTEM}
+  etc.).
+  
+  \item The file @{verbatim "$ISABELLE_HOME_USER/etc/settings"} (if it
+  exists) is run in the same way as the site default settings. Note
+  that the variable @{setting ISABELLE_HOME_USER} has already been set
+  before --- usually to something like @{verbatim
+  "$USER_HOME/.isabelle/IsabelleXXXX"}.
+  
+  Thus individual users may override the site-wide defaults.  See also
+  file @{file "$ISABELLE_HOME/etc/user-settings.sample"} in the
+  distribution.  Typically, a user settings file would contain only a
+  few lines, just the assigments that are really changed.  One should
+  definitely \emph{not} start with a full copy the basic @{file
+  "$ISABELLE_HOME/etc/settings"}. This could cause very annoying
+  maintainance problems later, when the Isabelle installation is
+  updated or changed otherwise.
+  
+  \end{enumerate}
+
+  Since settings files are regular GNU @{executable_def bash} scripts,
+  one may use complex shell commands, such as @{verbatim "if"} or
+  @{verbatim "case"} statements to set variables depending on the
+  system architecture or other environment variables.  Such advanced
+  features should be added only with great care, though. In
+  particular, external environment references should be kept at a
+  minimum.
+
+  \medskip A few variables are somewhat special:
+
+  \begin{itemize}
+
+  \item @{setting_def ISABELLE_PROCESS} and @{setting_def ISABELLE_TOOL} are set
+  automatically to the absolute path names of the @{executable
+  "isabelle-process"} and @{executable isabelle} executables,
+  respectively.
+  
+  \item @{setting_ref ISABELLE_OUTPUT} will have the identifiers of
+  the Isabelle distribution (cf.\ @{setting ISABELLE_IDENTIFIER}) and
+  the ML system (cf.\ @{setting ML_IDENTIFIER}) appended automatically
+  to its value.
+
+  \end{itemize}
+
+  \medskip Note that the settings environment may be inspected with
+  the @{tool getenv} tool.  This might help to figure out the effect
+  of complex settings scripts.  *}
+
+
+subsection {* Common variables *}
+
+text {*
+  This is a reference of common Isabelle settings variables. Note that
+  the list is somewhat open-ended. Third-party utilities or interfaces
+  may add their own selection. Variables that are special in some
+  sense are marked with @{text "\<^sup>*"}.
+
+  \begin{description}
+
+  \item[@{setting_def USER_HOME}@{text "\<^sup>*"}] Is the cross-platform
+  user home directory.  On Unix systems this is usually the same as
+  @{setting HOME}, but on Windows it is the regular home directory of
+  the user, not the one of within the Cygwin root
+  file-system.\footnote{Cygwin itself offers another choice whether
+  its HOME should point to the \texttt{/home} directory tree or the
+  Windows user home.}
+
+ \item[@{setting_def ISABELLE_HOME}@{text "\<^sup>*"}] is the location of the
+  top-level Isabelle distribution directory. This is automatically
+  determined from the Isabelle executable that has been invoked.  Do
+  not attempt to set @{setting ISABELLE_HOME} yourself from the shell!
+  
+  \item[@{setting_def ISABELLE_HOME_USER}] is the user-specific
+  counterpart of @{setting ISABELLE_HOME}. The default value is
+  relative to @{verbatim "$USER_HOME/.isabelle"}, under rare
+  circumstances this may be changed in the global setting file.
+  Typically, the @{setting ISABELLE_HOME_USER} directory mimics
+  @{setting ISABELLE_HOME} to some extend. In particular, site-wide
+  defaults may be overridden by a private @{verbatim
+  "$ISABELLE_HOME_USER/etc/settings"}.
+  
+  \item[@{setting_def ISABELLE_PLATFORM}@{text "\<^sup>*"}] is automatically
+  set to a symbolic identifier for the underlying hardware and
+  operating system.  The Isabelle platform identification always
+  refers to the 32 bit variant, even this is a 64 bit machine.  Note
+  that the ML or Java runtime may have a different idea, depending on
+  which binaries are actually run.
+
+  \item[@{setting_def ISABELLE_PLATFORM64}@{text "\<^sup>*"}] is similar to
+  @{setting ISABELLE_PLATFORM} but refers to the proper 64 bit variant
+  on a platform that supports this; the value is empty for 32 bit.
+  Note that the following bash expression (including the quotes)
+  prefers the 64 bit platform, if that is available:
+
+  @{verbatim [display] "\"${ISABELLE_PLATFORM64:-$ISABELLE_PLATFORM}\""}
+
+  \item[@{setting_def ISABELLE_PROCESS}@{text "\<^sup>*"}, @{setting
+  ISABELLE_TOOL}@{text "\<^sup>*"}] are automatically set to the full path
+  names of the @{executable "isabelle-process"} and @{executable
+  isabelle} executables, respectively.  Thus other tools and scripts
+  need not assume that the @{file "$ISABELLE_HOME/bin"} directory is
+  on the current search path of the shell.
+  
+  \item[@{setting_def ISABELLE_IDENTIFIER}@{text "\<^sup>*"}] refers
+  to the name of this Isabelle distribution, e.g.\ ``@{verbatim
+  Isabelle2012}''.
+
+  \item[@{setting_def ML_SYSTEM}, @{setting_def ML_HOME},
+  @{setting_def ML_OPTIONS}, @{setting_def ML_PLATFORM}, @{setting_def
+  ML_IDENTIFIER}@{text "\<^sup>*"}] specify the underlying ML system
+  to be used for Isabelle.  There is only a fixed set of admissable
+  @{setting ML_SYSTEM} names (see the @{file
+  "$ISABELLE_HOME/etc/settings"} file of the distribution).
+  
+  The actual compiler binary will be run from the directory @{setting
+  ML_HOME}, with @{setting ML_OPTIONS} as first arguments on the
+  command line.  The optional @{setting ML_PLATFORM} may specify the
+  binary format of ML heap images, which is useful for cross-platform
+  installations.  The value of @{setting ML_IDENTIFIER} is
+  automatically obtained by composing the values of @{setting
+  ML_SYSTEM}, @{setting ML_PLATFORM} and the Isabelle version values.
+
+  \item[@{setting_def ISABELLE_JDK_HOME}] needs to point to a full JDK
+  (Java Development Kit) installation with @{verbatim javac} and
+  @{verbatim jar} executables.  This is essential for Isabelle/Scala
+  and other JVM-based tools to work properly.  Note that conventional
+  @{verbatim JAVA_HOME} usually points to the JRE (Java Runtime
+  Environment), not JDK.
+  
+  \item[@{setting_def ISABELLE_PATH}] is a list of directories
+  (separated by colons) where Isabelle logic images may reside.  When
+  looking up heaps files, the value of @{setting ML_IDENTIFIER} is
+  appended to each component internally.
+  
+  \item[@{setting_def ISABELLE_OUTPUT}@{text "\<^sup>*"}] is a
+  directory where output heap files should be stored by default. The
+  ML system and Isabelle version identifier is appended here, too.
+  
+  \item[@{setting_def ISABELLE_BROWSER_INFO}] is the directory where
+  theory browser information (HTML text, graph data, and printable
+  documents) is stored (see also \secref{sec:info}).  The default
+  value is @{verbatim "$ISABELLE_HOME_USER/browser_info"}.
+  
+  \item[@{setting_def ISABELLE_LOGIC}] specifies the default logic to
+  load if none is given explicitely by the user.  The default value is
+  @{verbatim HOL}.
+  
+  \item[@{setting_def ISABELLE_LINE_EDITOR}] specifies the default
+  line editor for the @{tool_ref tty} interface.
+
+  \item[@{setting_def ISABELLE_USEDIR_OPTIONS}] is implicitly prefixed
+  to the command line of any @{tool_ref usedir} invocation. This
+  typically contains compilation options for object-logics --- @{tool
+  usedir} is the basic tool for managing logic sessions (cf.\ the
+  @{verbatim IsaMakefile}s in the distribution).
+
+  \item[@{setting_def ISABELLE_LATEX}, @{setting_def
+  ISABELLE_PDFLATEX}, @{setting_def ISABELLE_BIBTEX}, @{setting_def
+  ISABELLE_DVIPS}] refer to {\LaTeX} related tools for Isabelle
+  document preparation (see also \secref{sec:tool-latex}).
+  
+  \item[@{setting_def ISABELLE_TOOLS}] is a colon separated list of
+  directories that are scanned by @{executable isabelle} for external
+  utility programs (see also \secref{sec:isabelle-tool}).
+  
+  \item[@{setting_def ISABELLE_DOCS}] is a colon separated list of
+  directories with documentation files.
+  
+  \item[@{setting_def ISABELLE_DOC_FORMAT}] specifies the preferred
+  document format, typically @{verbatim dvi} or @{verbatim pdf}.
+  
+  \item[@{setting_def DVI_VIEWER}] specifies the command to be used
+  for displaying @{verbatim dvi} files.
+  
+  \item[@{setting_def PDF_VIEWER}] specifies the command to be used
+  for displaying @{verbatim pdf} files.
+  
+  \item[@{setting_def PRINT_COMMAND}] specifies the standard printer
+  spool command, which is expected to accept @{verbatim ps} files.
+  
+  \item[@{setting_def ISABELLE_TMP_PREFIX}@{text "\<^sup>*"}] is the
+  prefix from which any running @{executable "isabelle-process"}
+  derives an individual directory for temporary files.  The default is
+  somewhere in @{verbatim "/tmp"}.
+  
+  \end{description}
+*}
+
+
+subsection {* Additional components \label{sec:components} *}
+
+text {* Any directory may be registered as an explicit \emph{Isabelle
+  component}.  The general layout conventions are that of the main
+  Isabelle distribution itself, and the following two files (both
+  optional) have a special meaning:
+
+  \begin{itemize}
+
+  \item @{verbatim "etc/settings"} holds additional settings that are
+  initialized when bootstrapping the overall Isabelle environment,
+  cf.\ \secref{sec:boot}.  As usual, the content is interpreted as a
+  @{verbatim bash} script.  It may refer to the component's enclosing
+  directory via the @{verbatim "COMPONENT"} shell variable.
+
+  For example, the following setting allows to refer to files within
+  the component later on, without having to hardwire absolute paths:
+
+\begin{ttbox}
+MY_COMPONENT_HOME="$COMPONENT"
+\end{ttbox}
+
+  Components can also add to existing Isabelle settings such as
+  @{setting_def ISABELLE_TOOLS}, in order to provide
+  component-specific tools that can be invoked by end-users.  For
+  example:
+
+\begin{ttbox}
+ISABELLE_TOOLS="$ISABELLE_TOOLS:$COMPONENT/lib/Tools"
+\end{ttbox}
+
+  \item @{verbatim "etc/components"} holds a list of further
+  sub-components of the same structure.  The directory specifications
+  given here can be either absolute (with leading @{verbatim "/"}) or
+  relative to the component's main directory.
+
+  \end{itemize}
+
+  The root of component initialization is @{setting ISABELLE_HOME}
+  itself.  After initializing all of its sub-components recursively,
+  @{setting ISABELLE_HOME_USER} is included in the same manner (if
+  that directory exists).  This allows to install private components
+  via @{verbatim "$ISABELLE_HOME_USER/etc/components"}, although it is
+  often more convenient to do that programmatically via the
+  \verb,init_component, shell function in the \verb,etc/settings,
+  script of \verb,$ISABELLE_HOME_USER, (or any other component
+  directory).  For example:
+\begin{ttbox}
+init_component "$HOME/screwdriver-2.0"
+\end{ttbox}
+
+  This is tolerant wrt.\ missing component directories, but might
+  produce a warning.
+
+  \medskip More complex situations may be addressed by initializing
+  components listed in a given catalog file, relatively to some base
+  directory:
+
+\begin{ttbox}
+init_components "$HOME/my_component_store" "some_catalog_file"
+\end{ttbox}
+
+  The component directories listed in the catalog file are treated as
+  relative to the given base directory.
+
+  See also \secref{sec:tool-components} for some tool-support for
+  resolving components that are formally initialized but not installed
+  yet.
+*}
+
+
+section {* The raw Isabelle process *}
+
+text {*
+  The @{executable_def "isabelle-process"} executable runs bare-bones
+  Isabelle logic sessions --- either interactively or in batch mode.
+  It provides an abstraction over the underlying ML system, and over
+  the actual heap file locations.  Its usage is:
+
+\begin{ttbox}
+Usage: isabelle-process [OPTIONS] [INPUT] [OUTPUT]
+
+  Options are:
+    -I           startup Isar interaction mode
+    -P           startup Proof General interaction mode
+    -S           secure mode -- disallow critical operations
+    -T ADDR      startup process wrapper, with socket address
+    -W IN:OUT    startup process wrapper, with input/output fifos
+    -X           startup PGIP interaction mode
+    -e MLTEXT    pass MLTEXT to the ML session
+    -f           pass 'Session.finish();' to the ML session
+    -m MODE      add print mode for output
+    -q           non-interactive session
+    -r           open heap file read-only
+    -u           pass 'use"ROOT.ML";' to the ML session
+    -w           reset write permissions on OUTPUT
+
+  INPUT (default "\$ISABELLE_LOGIC") and OUTPUT specify in/out heaps.
+  These are either names to be searched in the Isabelle path, or
+  actual file names (containing at least one /).
+  If INPUT is "RAW_ML_SYSTEM", just start the bare bones ML system.
+\end{ttbox}
+
+  Input files without path specifications are looked up in the
+  @{setting ISABELLE_PATH} setting, which may consist of multiple
+  components separated by colons --- these are tried in the given
+  order with the value of @{setting ML_IDENTIFIER} appended
+  internally.  In a similar way, base names are relative to the
+  directory specified by @{setting ISABELLE_OUTPUT}.  In any case,
+  actual file locations may also be given by including at least one
+  slash (@{verbatim "/"}) in the name (hint: use @{verbatim "./"} to
+  refer to the current directory).
+*}
+
+
+subsubsection {* Options *}
+
+text {*
+  If the input heap file does not have write permission bits set, or
+  the @{verbatim "-r"} option is given explicitely, then the session
+  started will be read-only.  That is, the ML world cannot be
+  committed back into the image file.  Otherwise, a writable session
+  enables commits into either the input file, or into another output
+  heap file (if that is given as the second argument on the command
+  line).
+
+  The read-write state of sessions is determined at startup only, it
+  cannot be changed intermediately. Also note that heap images may
+  require considerable amounts of disk space (approximately
+  50--200~MB). Users are responsible for themselves to dispose their
+  heap files when they are no longer needed.
+
+  \medskip The @{verbatim "-w"} option makes the output heap file
+  read-only after terminating.  Thus subsequent invocations cause the
+  logic image to be read-only automatically.
+
+  \medskip Using the @{verbatim "-e"} option, arbitrary ML code may be
+  passed to the Isabelle session from the command line. Multiple
+  @{verbatim "-e"}'s are evaluated in the given order. Strange things
+  may happen when errorneous ML code is provided. Also make sure that
+  the ML commands are terminated properly by semicolon.
+
+  \medskip The @{verbatim "-u"} option is a shortcut for @{verbatim
+  "-e"} passing ``@{verbatim "use \"ROOT.ML\";"}'' to the ML session.
+  The @{verbatim "-f"} option passes ``@{verbatim
+  "Session.finish();"}'', which is intended mainly for administrative
+  purposes.
+
+  \medskip The @{verbatim "-m"} option adds identifiers of print modes
+  to be made active for this session. Typically, this is used by some
+  user interface, e.g.\ to enable output of proper mathematical
+  symbols.
+
+  \medskip Isabelle normally enters an interactive top-level loop
+  (after processing the @{verbatim "-e"} texts). The @{verbatim "-q"}
+  option inhibits interaction, thus providing a pure batch mode
+  facility.
+
+  \medskip The @{verbatim "-I"} option makes Isabelle enter Isar
+  interaction mode on startup, instead of the primitive ML top-level.
+  The @{verbatim "-P"} option configures the top-level loop for
+  interaction with the Proof General user interface, and the
+  @{verbatim "-X"} option enables XML-based PGIP communication.
+
+  \medskip The @{verbatim "-T"} or @{verbatim "-W"} option makes
+  Isabelle enter a special process wrapper for interaction via the
+  Isabelle/Scala layer, see also @{file
+  "~~/src/Pure/System/isabelle_process.scala"}.  The protocol between
+  the ML and JVM process is private to the implementation.
+
+  \medskip The @{verbatim "-S"} option makes the Isabelle process more
+  secure by disabling some critical operations, notably runtime
+  compilation and evaluation of ML source code.
+*}
+
+
+subsubsection {* Examples *}
+
+text {*
+  Run an interactive session of the default object-logic (as specified
+  by the @{setting ISABELLE_LOGIC} setting) like this:
+\begin{ttbox}
+isabelle-process
+\end{ttbox}
+
+  Usually @{setting ISABELLE_LOGIC} refers to one of the standard
+  logic images, which are read-only by default.  A writable session
+  --- based on @{verbatim HOL}, but output to @{verbatim Test} (in the
+  directory specified by the @{setting ISABELLE_OUTPUT} setting) ---
+  may be invoked as follows:
+\begin{ttbox}
+isabelle-process HOL Test
+\end{ttbox}
+  Ending this session normally (e.g.\ by typing control-D) dumps the
+  whole ML system state into @{verbatim Test} (be prepared for more
+  than 100\,MB):
+
+  The @{verbatim Test} session may be continued later (still in
+  writable state) by:
+\begin{ttbox}
+isabelle-process Test
+\end{ttbox}
+  A read-only @{verbatim Test} session may be started by:
+\begin{ttbox}
+isabelle-process -r Test
+\end{ttbox}
+
+  \medskip Note that manual session management like this does
+  \emph{not} provide proper setup for theory presentation.  This would
+  require @{tool usedir}.
+
+  \bigskip The next example demonstrates batch execution of Isabelle.
+  We retrieve the @{verbatim Main} theory value from the theory loader
+  within ML (observe the delicate quoting rules for the Bash shell
+  vs.\ ML):
+\begin{ttbox}
+isabelle-process -e 'Thy_Info.get_theory "Main";' -q -r HOL
+\end{ttbox}
+  Note that the output text will be interspersed with additional junk
+  messages by the ML runtime environment.  The @{verbatim "-W"} option
+  allows to communicate with the Isabelle process via an external
+  program in a more robust fashion.
+*}
+
+
+section {* The Isabelle tool wrapper \label{sec:isabelle-tool} *}
+
+text {*
+  All Isabelle related tools and interfaces are called via a common
+  wrapper --- @{executable isabelle}:
+
+\begin{ttbox}
+Usage: isabelle TOOL [ARGS ...]
+
+  Start Isabelle tool NAME with ARGS; pass "-?" for tool specific help.
+
+Available tools:
+  \dots
+\end{ttbox}
+
+  In principle, Isabelle tools are ordinary executable scripts that
+  are run within the Isabelle settings environment, see
+  \secref{sec:settings}.  The set of available tools is collected by
+  @{executable isabelle} from the directories listed in the @{setting
+  ISABELLE_TOOLS} setting.  Do not try to call the scripts directly
+  from the shell.  Neither should you add the tool directories to your
+  shell's search path!
+*}
+
+
+subsubsection {* Examples *}
+
+text {* Show the list of available documentation of the Isabelle
+  distribution:
+
+\begin{ttbox}
+  isabelle doc
+\end{ttbox}
+
+  View a certain document as follows:
+\begin{ttbox}
+  isabelle doc system
+\end{ttbox}
+
+  Query the Isabelle settings environment:
+\begin{ttbox}
+  isabelle getenv ISABELLE_HOME_USER
+\end{ttbox}
+*}
+
+end
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc-src/System/Interfaces.thy	Mon Aug 27 16:48:41 2012 +0200
@@ -0,0 +1,281 @@
+theory Interfaces
+imports Base
+begin
+
+chapter {* User interfaces *}
+
+section {* Isabelle/jEdit Prover IDE \label{sec:tool-jedit} *}
+
+text {* The @{tool_def jedit} tool invokes a version of
+  jEdit\footnote{\url{http://www.jedit.org/}} that has been augmented
+  with some components to provide a fully-featured Prover IDE:
+\begin{ttbox} Usage: isabelle jedit [OPTIONS]
+  [FILES ...]
+
+  Options are:
+    -J OPTION    add JVM runtime option (default JEDIT_JAVA_OPTIONS)
+    -b           build only
+    -d DIR       include session directory
+    -f           fresh build
+    -j OPTION    add jEdit runtime option (default JEDIT_OPTIONS)
+    -l NAME      logic image name (default ISABELLE_LOGIC)
+    -m MODE      add print mode for output
+
+Start jEdit with Isabelle plugin setup and opens theory FILES
+(default Scratch.thy).
+\end{ttbox}
+
+  The @{verbatim "-l"} option specifies the session name of the logic
+  image to be used for proof processing.  Additional session root
+  directories may be included via option @{verbatim "-d"} to augment
+  that name space (see also \secref{sec:tool-build}).
+
+  The @{verbatim "-m"} option specifies additional print modes.
+
+  The @{verbatim "-J"} and @{verbatim "-j"} options allow to pass
+  additional low-level options to the JVM or jEdit, respectively.  The
+  defaults are provided by the Isabelle settings environment
+  (\secref{sec:settings}).
+
+  The @{verbatim "-b"} and @{verbatim "-f"} options control the
+  self-build mechanism of Isabelle/jEdit.  This is only relevant for
+  building from sources, which also requires an auxiliary @{verbatim
+  jedit_build}
+  component.\footnote{\url{http://isabelle.in.tum.de/components}} Note
+  that official Isabelle releases already include a version of
+  Isabelle/jEdit that is built properly.  *}
+
+
+section {* Proof General / Emacs *}
+
+text {* The @{tool_def emacs} tool invokes a version of Emacs and
+  Proof General\footnote{http://proofgeneral.inf.ed.ac.uk/} within the
+  regular Isabelle settings environment (\secref{sec:settings}).  This
+  is more convenient than starting Emacs separately, loading the Proof
+  General LISP files, and then attempting to start Isabelle with
+  dynamic @{setting PATH} lookup etc.
+
+  The actual interface script is part of the Proof General
+  distribution; its usage depends on the particular version.  There
+  are some options available, such as @{verbatim "-l"} for passing the
+  logic image to be used by default, or @{verbatim "-m"} to tune the
+  standard print mode.  The following Isabelle settings are
+  particularly important for Proof General:
+
+  \begin{description}
+
+  \item[@{setting_def PROOFGENERAL_HOME}] points to the main
+  installation directory of the Proof General distribution.  This is
+  implicitly provided for versions of Proof General that are
+  distributed as Isabelle component, see also \secref{sec:components};
+  otherwise it needs to be configured manually.
+
+  \item[@{setting_def PROOFGENERAL_OPTIONS}] is implicitly prefixed to
+  the command line of any invocation of the Proof General @{verbatim
+  interface} script.  This allows to provide persistent default
+  options for the invocation of \texttt{isabelle emacs}.
+
+  \end{description}
+*}
+
+
+section {* Plain TTY interaction \label{sec:tool-tty} *}
+
+text {*
+  The @{tool_def tty} tool runs the Isabelle process interactively
+  within a plain terminal session:
+\begin{ttbox}
+Usage: isabelle tty [OPTIONS]
+
+  Options are:
+    -l NAME      logic image name (default ISABELLE_LOGIC)
+    -m MODE      add print mode for output
+    -p NAME      line editor program name (default ISABELLE_LINE_EDITOR)
+
+  Run Isabelle process with plain tty interaction and line editor.
+\end{ttbox}
+
+  The @{verbatim "-l"} option specifies the logic image.  The
+  @{verbatim "-m"} option specifies additional print modes.  The
+  @{verbatim "-p"} option specifies an alternative line editor (such
+  as the @{executable_def rlwrap} wrapper for GNU readline); the
+  fall-back is to use raw standard input.
+
+  Regular interaction works via the standard Isabelle/Isar toplevel
+  loop.  The Isar command @{command exit} drops out into the
+  bare-bones ML system, which is occasionally useful for debugging of
+  the Isar infrastructure itself.  Invoking @{ML Isar.loop}~@{verbatim
+  "();"} in ML will return to the Isar toplevel.  *}
+
+
+
+section {* Theory graph browser \label{sec:browse} *}
+
+text {* The Isabelle graph browser is a general tool for visualizing
+  dependency graphs.  Certain nodes of the graph (i.e.\ theories) can
+  be grouped together in ``directories'', whose contents may be
+  hidden, thus enabling the user to collapse irrelevant portions of
+  information.  The browser is written in Java, it can be used both as
+  a stand-alone application and as an applet.  *}
+
+
+subsection {* Invoking the graph browser *}
+
+text {* The stand-alone version of the graph browser is wrapped up as
+  @{tool_def browser}:
+\begin{ttbox}
+Usage: isabelle browser [OPTIONS] [GRAPHFILE]
+
+  Options are:
+    -b           Admin/build only
+    -c           cleanup -- remove GRAPHFILE after use
+    -o FILE      output to FILE (ps, eps, pdf)
+\end{ttbox}
+  When no filename is specified, the browser automatically changes to
+  the directory @{setting ISABELLE_BROWSER_INFO}.
+
+  \medskip The @{verbatim "-b"} option indicates that this is for
+  administrative build only, i.e.\ no browser popup if no files are
+  given.
+
+  The @{verbatim "-c"} option causes the input file to be removed
+  after use.
+
+  The @{verbatim "-o"} option indicates batch-mode operation, with the
+  output written to the indicated file; note that @{verbatim pdf}
+  produces an @{verbatim eps} copy as well.
+
+  \medskip The applet version of the browser is part of the standard
+  WWW theory presentation, see the link ``theory dependencies'' within
+  each session index.
+*}
+
+
+subsection {* Using the graph browser *}
+
+text {*
+  The browser's main window, which is shown in
+  \figref{fig:browserwindow}, consists of two sub-windows.  In the
+  left sub-window, the directory tree is displayed. The graph itself
+  is displayed in the right sub-window.
+
+  \begin{figure}[ht]
+  \includegraphics[width=\textwidth]{browser_screenshot}
+  \caption{\label{fig:browserwindow} Browser main window}
+  \end{figure}
+*}
+
+
+subsubsection {* The directory tree window *}
+
+text {*
+  We describe the usage of the directory browser and the meaning of
+  the different items in the browser window.
+
+  \begin{itemize}
+
+  \item A red arrow before a directory name indicates that the
+  directory is currently ``folded'', i.e.~the nodes in this directory
+  are collapsed to one single node. In the right sub-window, the names
+  of nodes corresponding to folded directories are enclosed in square
+  brackets and displayed in red color.
+
+  \item A green downward arrow before a directory name indicates that
+  the directory is currently ``unfolded''. It can be folded by
+  clicking on the directory name.  Clicking on the name for a second
+  time unfolds the directory again.  Alternatively, a directory can
+  also be unfolded by clicking on the corresponding node in the right
+  sub-window.
+
+  \item Blue arrows stand before ordinary node names. When clicking on
+  such a name (i.e.\ that of a theory), the graph display window
+  focuses to the corresponding node. Double clicking invokes a text
+  viewer window in which the contents of the theory file are
+  displayed.
+
+  \end{itemize}
+*}
+
+
+subsubsection {* The graph display window *}
+
+text {*
+  When pointing on an ordinary node, an upward and a downward arrow is
+  shown.  Initially, both of these arrows are green. Clicking on the
+  upward or downward arrow collapses all predecessor or successor
+  nodes, respectively. The arrow's color then changes to red,
+  indicating that the predecessor or successor nodes are currently
+  collapsed. The node corresponding to the collapsed nodes has the
+  name ``@{verbatim "[....]"}''. To uncollapse the nodes again, simply
+  click on the red arrow or on the node with the name ``@{verbatim
+  "[....]"}''. Similar to the directory browser, the contents of
+  theory files can be displayed by double clicking on the
+  corresponding node.
+*}
+
+
+subsubsection {* The ``File'' menu *}
+
+text {*
+  Due to Java Applet security restrictions this menu is only available
+  in the full application version. The meaning of the menu items is as
+  follows:
+
+  \begin{description}
+
+  \item[Open \dots] Open a new graph file.
+
+  \item[Export to PostScript] Outputs the current graph in Postscript
+  format, appropriately scaled to fit on one single sheet of A4 paper.
+  The resulting file can be printed directly.
+
+  \item[Export to EPS] Outputs the current graph in Encapsulated
+  Postscript format. The resulting file can be included in other
+  documents.
+
+  \item[Quit] Quit the graph browser.
+
+  \end{description}
+*}
+
+
+subsection {* Syntax of graph definition files *}
+
+text {*
+  A graph definition file has the following syntax:
+
+  \begin{center}\small
+  \begin{tabular}{rcl}
+    @{text graph} & @{text "="} & @{text "{ vertex"}~@{verbatim ";"}~@{text "}+"} \\
+    @{text vertex} & @{text "="} & @{text "vertex_name vertex_ID dir_name ["}~@{verbatim "+"}~@{text "] path ["}~@{verbatim "<"}~@{text "|"}~@{verbatim ">"}~@{text "] { vertex_ID }*"}
+  \end{tabular}
+  \end{center}
+
+  The meaning of the items in a vertex description is as follows:
+
+  \begin{description}
+
+  \item[@{text vertex_name}] The name of the vertex.
+
+  \item[@{text vertex_ID}] The vertex identifier. Note that there may
+  be several vertices with equal names, whereas identifiers must be
+  unique.
+
+  \item[@{text dir_name}] The name of the ``directory'' the vertex
+  should be placed in.  A ``@{verbatim "+"}'' sign after @{text
+  dir_name} indicates that the nodes in the directory are initially
+  visible. Directories are initially invisible by default.
+
+  \item[@{text path}] The path of the corresponding theory file. This
+  is specified relatively to the path of the graph definition file.
+
+  \item[List of successor/predecessor nodes] A ``@{verbatim "<"}''
+  sign before the list means that successor nodes are listed, a
+  ``@{verbatim ">"}'' sign means that predecessor nodes are listed. If
+  neither ``@{verbatim "<"}'' nor ``@{verbatim ">"}'' is found, the
+  browser assumes that successor nodes are listed.
+
+  \end{description}
+*}
+
+end
\ No newline at end of file
--- a/doc-src/System/Makefile	Mon Aug 27 16:10:54 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-## targets
-
-default: dvi
-
-
-## dependencies
-
-include ../Makefile.in
-
-NAME = system
-FILES = system.tex Thy/document/Basics.tex Thy/document/Misc.tex	\
-	Thy/document/Presentation.tex ../iman.sty ../extra.sty		\
-	../ttbox.sty ../manual.bib
-
-dvi: $(NAME).dvi
-
-$(NAME).dvi: $(FILES) isabelle.eps
-	$(LATEX) $(NAME)
-	$(BIBTEX) $(NAME)
-	$(LATEX) $(NAME)
-	$(LATEX) $(NAME)
-	$(SEDINDEX) $(NAME)
-	$(LATEX) $(NAME)
-
-pdf: $(NAME).pdf
-
-$(NAME).pdf: $(FILES) isabelle.pdf
-	$(PDFLATEX) $(NAME)
-	$(BIBTEX) $(NAME)
-	$(PDFLATEX) $(NAME)
-	$(PDFLATEX) $(NAME)
-	$(SEDINDEX) $(NAME)
-	$(PDFLATEX) $(NAME)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc-src/System/Misc.thy	Mon Aug 27 16:48:41 2012 +0200
@@ -0,0 +1,598 @@
+theory Misc
+imports Base
+begin
+
+chapter {* Miscellaneous tools \label{ch:tools} *}
+
+text {*
+  Subsequently we describe various Isabelle related utilities, given
+  in alphabetical order.
+*}
+
+
+section {* Resolving Isabelle components \label{sec:tool-components} *}
+
+text {*
+  The @{tool_def components} tool resolves Isabelle components:
+\begin{ttbox}
+Usage: isabelle components [OPTIONS] [COMPONENTS ...]
+
+  Options are:
+    -R URL       component repository
+                 (default $ISABELLE_COMPONENT_REPOSITORY)
+    -a           all missing components
+    -l           list status
+
+  Resolve Isabelle components via download and installation.
+  COMPONENTS are identified via base name.
+
+  ISABELLE_COMPONENT_REPOSITORY="http://isabelle.in.tum.de/components"
+\end{ttbox}
+
+  Components are initialized as described in \secref{sec:components}
+  in a permissive manner, which can mark components as ``missing''.
+  This state is amended by letting @{tool "components"} download and
+  unpack components that are published on the default component
+  repository \url{http://isabelle.in.tum.de/components/} in
+  particular.
+
+  Option @{verbatim "-R"} specifies an alternative component
+  repository.  Note that @{verbatim "file:///"} URLs can be used for
+  local directories.
+
+  Option @{verbatim "-a"} selects all missing components to be
+  installed.  Explicit components may be named as command
+  line-arguments as well.  Note that components are uniquely
+  identified by their base name, while the installation takes place in
+  the location that was specified in the attempt to initialize the
+  component before.
+
+  Option @{verbatim "-l"} lists the current state of available and
+  missing components with their location (full name) within the
+  file-system.  *}
+
+
+section {* Displaying documents *}
+
+text {* The @{tool_def display} tool displays documents in DVI or PDF
+  format:
+\begin{ttbox}
+Usage: isabelle display [OPTIONS] FILE
+
+  Options are:
+    -c           cleanup -- remove FILE after use
+
+  Display document FILE (in DVI format).
+\end{ttbox}
+
+  \medskip The @{verbatim "-c"} option causes the input file to be
+  removed after use.  The program for viewing @{verbatim dvi} files is
+  determined by the @{setting DVI_VIEWER} setting.
+*}
+
+
+section {* Viewing documentation \label{sec:tool-doc} *}
+
+text {*
+  The @{tool_def doc} tool displays online documentation:
+\begin{ttbox}
+Usage: isabelle doc [DOC]
+
+  View Isabelle documentation DOC, or show list of available documents.
+\end{ttbox}
+  If called without arguments, it lists all available documents. Each
+  line starts with an identifier, followed by a short description. Any
+  of these identifiers may be specified as the first argument in order
+  to have the corresponding document displayed.
+
+  \medskip The @{setting ISABELLE_DOCS} setting specifies the list of
+  directories (separated by colons) to be scanned for documentations.
+  The program for viewing @{verbatim dvi} files is determined by the
+  @{setting DVI_VIEWER} setting.
+*}
+
+
+section {* Shell commands within the settings environment \label{sec:tool-env} *}
+
+text {* The @{tool_def env} tool is a direct wrapper for the standard
+  @{verbatim "/usr/bin/env"} command on POSIX systems, running within
+  the Isabelle settings environment (\secref{sec:settings}).
+
+  The command-line arguments are that of the underlying version of
+  @{verbatim env}.  For example, the following invokes an instance of
+  the GNU Bash shell within the Isabelle environment:
+\begin{alltt}
+  isabelle env bash
+\end{alltt}
+*}
+
+
+section {* Getting logic images *}
+
+text {* The @{tool_def findlogics} tool traverses all directories
+  specified in @{setting ISABELLE_PATH}, looking for Isabelle logic
+  images. Its usage is:
+\begin{ttbox}
+Usage: isabelle findlogics
+
+  Collect heap file names from ISABELLE_PATH.
+\end{ttbox}
+
+  The base names of all files found on the path are printed --- sorted
+  and with duplicates removed. Also note that lookup in @{setting
+  ISABELLE_PATH} includes the current values of @{setting ML_SYSTEM}
+  and @{setting ML_PLATFORM}. Thus switching to another ML compiler
+  may change the set of logic images available.
+*}
+
+
+section {* Inspecting the settings environment \label{sec:tool-getenv} *}
+
+text {* The Isabelle settings environment --- as provided by the
+  site-default and user-specific settings files --- can be inspected
+  with the @{tool_def getenv} tool:
+\begin{ttbox}
+Usage: isabelle getenv [OPTIONS] [VARNAMES ...]
+
+  Options are:
+    -a           display complete environment
+    -b           print values only (doesn't work for -a)
+    -d FILE      dump complete environment to FILE
+                 (null terminated entries)
+
+  Get value of VARNAMES from the Isabelle settings.
+\end{ttbox}
+
+  With the @{verbatim "-a"} option, one may inspect the full process
+  environment that Isabelle related programs are run in. This usually
+  contains much more variables than are actually Isabelle settings.
+  Normally, output is a list of lines of the form @{text
+  name}@{verbatim "="}@{text value}. The @{verbatim "-b"} option
+  causes only the values to be printed.
+
+  Option @{verbatim "-d"} produces a dump of the complete environment
+  to the specified file.  Entries are terminated by the ASCII null
+  character, i.e.\ the C string terminator.
+*}
+
+
+subsubsection {* Examples *}
+
+text {* Get the location of @{setting ISABELLE_HOME_USER} where
+  user-specific information is stored:
+\begin{ttbox}
+isabelle getenv ISABELLE_HOME_USER
+\end{ttbox}
+
+  \medskip Get the value only of the same settings variable, which is
+particularly useful in shell scripts:
+\begin{ttbox}
+isabelle getenv -b ISABELLE_OUTPUT
+\end{ttbox}
+*}
+
+
+section {* Installing standalone Isabelle executables \label{sec:tool-install} *}
+
+text {* By default, the main Isabelle binaries (@{executable
+  "isabelle"} etc.)  are just run from their location within the
+  distribution directory, probably indirectly by the shell through its
+  @{setting PATH}.  Other schemes of installation are supported by the
+  @{tool_def install} tool:
+\begin{ttbox}
+Usage: isabelle install [OPTIONS]
+
+  Options are:
+    -d DISTDIR   use DISTDIR as Isabelle distribution
+                 (default ISABELLE_HOME)
+    -p DIR       install standalone binaries in DIR
+
+  Install Isabelle executables with absolute references to the current
+  distribution directory.
+\end{ttbox}
+
+  The @{verbatim "-d"} option overrides the current Isabelle
+  distribution directory as determined by @{setting ISABELLE_HOME}.
+
+  The @{verbatim "-p"} option installs executable wrapper scripts for
+  @{executable "isabelle-process"}, @{executable isabelle}, containing
+  proper absolute references to the Isabelle distribution directory.
+  A typical @{verbatim DIR} specification would be some directory
+  expected to be in the shell's @{setting PATH}, such as @{verbatim
+  "$HOME/bin"}.
+
+  It is possible to make symbolic links of the main Isabelle
+  executables, but making separate copies outside the Isabelle
+  distribution directory will not work.
+*}
+
+
+section {* Creating instances of the Isabelle logo *}
+
+text {* The @{tool_def logo} tool creates any instance of the generic
+  Isabelle logo as EPS or PDF.
+\begin{ttbox}
+Usage: isabelle logo [OPTIONS] NAME
+
+  Create instance NAME of the Isabelle logo (as EPS or PDF).
+
+  Options are:
+    -o OUTFILE   specify output file and format
+                 (default "isabelle_name.pdf")
+    -q           quiet mode
+\end{ttbox}
+
+  Option @{verbatim "-o"} specifies an explicit output file name and
+  format, e.g.\ @{verbatim "mylogo.eps"} for an EPS logo.  The default
+  is @{verbatim "isabelle_"}@{text name}@{verbatim ".pdf"}, with the
+  lower-case version of the given name and PDF output.
+
+  Option @{verbatim "-q"} omits printing of the result file name.
+
+  \medskip Implementors of Isabelle tools and applications are
+  encouraged to make derived Isabelle logos for their own projects
+  using this template.  *}
+
+
+section {* Isabelle wrapper for make \label{sec:tool-make} *}
+
+text {* The old @{tool_def make} tool is a very simple wrapper for
+  ordinary Unix @{executable make}:
+\begin{ttbox}
+Usage: isabelle make [ARGS ...]
+
+  Compile the logic in current directory using IsaMakefile.
+  ARGS are directly passed to the system make program.
+\end{ttbox}
+
+  Note that the Isabelle settings environment is also active. Thus one
+  may refer to its values within the @{verbatim IsaMakefile}, e.g.\
+  @{verbatim "$(ISABELLE_HOME)"}. Furthermore, programs started from
+  the make file also inherit this environment.
+*}
+
+
+section {* Creating Isabelle session directories
+  \label{sec:tool-mkdir} *}
+
+text {* The old @{tool_def mkdir} tool prepares Isabelle session
+  source directories, including a sensible default setup of @{verbatim
+  IsaMakefile}, @{verbatim ROOT.ML}, and a @{verbatim document}
+  directory with a minimal @{verbatim root.tex} that is sufficient to
+  print all theories of the session (in the order of appearance); see
+  \secref{sec:tool-document} for further information on Isabelle
+  document preparation.  The usage of @{tool mkdir} is:
+
+\begin{ttbox}
+Usage: isabelle mkdir [OPTIONS] [LOGIC] NAME
+
+  Options are:
+    -I FILE      alternative IsaMakefile output
+    -P           include parent logic target
+    -b           setup build mode (session outputs heap image)
+    -q           quiet mode
+
+  Prepare session directory, including IsaMakefile and document source,
+  with parent LOGIC (default ISABELLE_LOGIC=\$ISABELLE_LOGIC)
+\end{ttbox}
+
+  The @{tool mkdir} tool is conservative in the sense that any
+  existing @{verbatim IsaMakefile} etc.\ is left unchanged.  Thus it
+  is safe to invoke it multiple times, although later runs may not
+  have the desired effect.
+
+  Note that @{tool mkdir} is unable to change @{verbatim IsaMakefile}
+  incrementally --- manual changes are required for multiple
+  sub-sessions.  On order to get an initial working session, the only
+  editing needed is to add appropriate @{ML use_thy} calls to the
+  generated @{verbatim ROOT.ML} file.
+*}
+
+
+subsubsection {* Options *}
+
+text {*
+  The @{verbatim "-I"} option specifies an alternative to @{verbatim
+  IsaMakefile} for dependencies.  Note that ``@{verbatim "-"}'' refers
+  to \emph{stdout}, i.e.\ ``@{verbatim "-I-"}'' provides an easy way
+  to peek at @{tool mkdir}'s idea of @{tool make} setup required for
+  some particular of Isabelle session.
+
+  \medskip The @{verbatim "-P"} option includes a target for the
+  parent @{verbatim LOGIC} session in the generated @{verbatim
+  IsaMakefile}.  The corresponding sources are assumed to be located
+  within the Isabelle distribution.
+
+  \medskip The @{verbatim "-b"} option sets up the current directory
+  as the base for a new session that provides an actual logic image,
+  as opposed to one that only runs several theories based on an
+  existing image.  Note that in the latter case, everything except
+  @{verbatim IsaMakefile} would be placed into a separate directory
+  @{verbatim NAME}, rather than the current one.  See
+  \secref{sec:tool-usedir} for further information on \emph{build
+  mode} vs.\ \emph{example mode} of @{tool usedir}.
+
+  \medskip The @{verbatim "-q"} option enables quiet mode, suppressing
+  further notes on how to proceed.
+*}
+
+
+section {* Printing documents *}
+
+text {*
+  The @{tool_def print} tool prints documents:
+\begin{ttbox}
+Usage: isabelle print [OPTIONS] FILE
+
+  Options are:
+    -c           cleanup -- remove FILE after use
+
+  Print document FILE.
+\end{ttbox}
+
+  The @{verbatim "-c"} option causes the input file to be removed
+  after use.  The printer spool command is determined by the @{setting
+  PRINT_COMMAND} setting.
+*}
+
+
+section {* Remove awkward symbol names from theory sources *}
+
+text {*
+  The @{tool_def unsymbolize} tool tunes Isabelle theory sources to
+  improve readability for plain ASCII output (e.g.\ in email
+  communication).  Most notably, @{tool unsymbolize} replaces awkward
+  arrow symbols such as @{verbatim "\\"}@{verbatim "<Longrightarrow>"}
+  by @{verbatim "==>"}.
+\begin{ttbox}
+Usage: isabelle unsymbolize [FILES|DIRS...]
+
+  Recursively find .thy/.ML files, removing unreadable symbol names.
+  Note: this is an ad-hoc script; there is no systematic way to replace
+  symbols independently of the inner syntax of a theory!
+
+  Renames old versions of FILES by appending "~~".
+\end{ttbox}
+*}
+
+
+section {* Running Isabelle sessions \label{sec:tool-usedir} *}
+
+text {* The old @{tool_def usedir} tool builds object-logic images, or
+  runs example sessions based on existing logics. Its usage is:
+\begin{ttbox}
+Usage: isabelle usedir [OPTIONS] LOGIC NAME
+
+  Options are:
+    -C BOOL      copy existing document directory to -D PATH (default true)
+    -D PATH      dump generated document sources into PATH
+    -M MAX       multithreading: maximum number of worker threads (default 1)
+    -P PATH      set path for remote theory browsing information
+    -Q INT       set threshold for sub-proof parallelization (default 50)
+    -T LEVEL     multithreading: trace level (default 0)
+    -V VARIANT   declare alternative document VARIANT
+    -b           build mode (output heap image, using current dir)
+    -d FORMAT    build document as FORMAT (default false)
+    -f NAME      use ML file NAME (default ROOT.ML)
+    -g BOOL      generate session graph image for document (default false)
+    -i BOOL      generate theory browser information (default false)
+    -m MODE      add print mode for output
+    -p LEVEL     set level of detail for proof objects (default 0)
+    -q LEVEL     set level of parallel proof checking (default 1)
+    -r           reset session path
+    -s NAME      override session NAME
+    -t BOOL      internal session timing (default false)
+    -v BOOL      be verbose (default false)
+
+  Build object-logic or run examples. Also creates browsing
+  information (HTML etc.) according to settings.
+
+  ISABELLE_USEDIR_OPTIONS=...
+
+  ML_PLATFORM=...
+  ML_HOME=...
+  ML_SYSTEM=...
+  ML_OPTIONS=...
+\end{ttbox}
+
+  Note that the value of the @{setting_ref ISABELLE_USEDIR_OPTIONS}
+  setting is implicitly prefixed to \emph{any} @{tool usedir}
+  call. Since the @{verbatim IsaMakefile}s of all object-logics
+  distributed with Isabelle just invoke @{tool usedir} for the real
+  work, one may control compilation options globally via above
+  variable. In particular, generation of \rmindex{HTML} browsing
+  information and document preparation is controlled here.
+*}
+
+
+subsubsection {* Options *}
+
+text {*
+  Basically, there are two different modes of operation: \emph{build
+  mode} (enabled through the @{verbatim "-b"} option) and
+  \emph{example mode} (default).
+
+  Calling @{tool usedir} with @{verbatim "-b"} runs @{executable
+  "isabelle-process"} with input image @{verbatim LOGIC} and output to
+  @{verbatim NAME}, as provided on the command line. This will be a
+  batch session, running @{verbatim ROOT.ML} from the current
+  directory and then quitting.  It is assumed that @{verbatim ROOT.ML}
+  contains all ML commands required to build the logic.
+
+  In example mode, @{tool usedir} runs a read-only session of
+  @{verbatim LOGIC} and automatically runs @{verbatim ROOT.ML} from
+  within directory @{verbatim NAME}.  It assumes that this file
+  contains appropriate ML commands to run the desired examples.
+
+  \medskip The @{verbatim "-i"} option controls theory browser data
+  generation. It may be explicitly turned on or off --- as usual, the
+  last occurrence of @{verbatim "-i"} on the command line wins.
+
+  The @{verbatim "-P"} option specifies a path (or actual URL) to be
+  prefixed to any \emph{non-local} reference of existing theories.
+  Thus user sessions may easily link to existing Isabelle libraries
+  already present on the WWW.
+
+  The @{verbatim "-m"} options specifies additional print modes to be
+  activated temporarily while the session is processed.
+
+  \medskip The @{verbatim "-d"} option controls document preparation.
+  Valid arguments are @{verbatim false} (do not prepare any document;
+  this is default), or any of @{verbatim dvi}, @{verbatim dvi.gz},
+  @{verbatim ps}, @{verbatim ps.gz}, @{verbatim pdf}.  The logic
+  session has to provide a properly setup @{verbatim document}
+  directory.  See \secref{sec:tool-document} and
+  \secref{sec:tool-latex} for more details.
+
+  \medskip The @{verbatim "-V"} option declares alternative document
+  variants, consisting of name/tags pairs (cf.\ options @{verbatim
+  "-n"} and @{verbatim "-t"} of @{tool_ref document}).  The standard
+  document is equivalent to ``@{verbatim
+  "document=theory,proof,ML"}'', which means that all theory begin/end
+  commands, proof body texts, and ML code will be presented
+  faithfully.
+
+  An alternative variant ``@{verbatim "outline=/proof/ML"}'' would
+  fold proof and ML parts, replacing the original text by a short
+  place-holder.  The form ``@{text name}@{verbatim "=-"},'' means to
+  remove document @{text name} from the list of variants to be
+  processed.  Any number of @{verbatim "-V"} options may be given;
+  later declarations have precedence over earlier ones.
+
+  Some document variant @{text name} may use an alternative {\LaTeX}
+  entry point called @{verbatim "document/root_"}@{text
+  "name"}@{verbatim ".tex"} if that file exists; otherwise the common
+  @{verbatim "document/root.tex"} is used.
+
+  \medskip The @{verbatim "-g"} option produces images of the theory
+  dependency graph (cf.\ \secref{sec:browse}) for inclusion in the
+  generated document, both as @{verbatim session_graph.eps} and
+  @{verbatim session_graph.pdf} at the same time.  To include this in
+  the final {\LaTeX} document one could say @{verbatim
+  "\\includegraphics{session_graph}"} in @{verbatim
+  "document/root.tex"} (omitting the file-name extension enables
+  {\LaTeX} to select to correct version, either for the DVI or PDF
+  output path).
+
+  \medskip The @{verbatim "-D"} option causes the generated document
+  sources to be dumped at location @{verbatim PATH}; this path is
+  relative to the session's main directory.  If the @{verbatim "-C"}
+  option is true, this will include a copy of an existing @{verbatim
+  document} directory as provided by the user.  For example, @{tool
+  usedir}~@{verbatim "-D generated HOL Foo"} produces a complete set
+  of document sources at @{verbatim "Foo/generated"}.  Subsequent
+  invocation of @{tool document}~@{verbatim "Foo/generated"} (see also
+  \secref{sec:tool-document}) will process the final result
+  independently of an Isabelle job.  This decoupled mode of operation
+  facilitates debugging of serious {\LaTeX} errors, for example.
+
+  \medskip The @{verbatim "-p"} option determines the level of detail
+  for internal proof objects, see also the \emph{Isabelle Reference
+  Manual}~\cite{isabelle-ref}.
+
+  \medskip The @{verbatim "-q"} option specifies the level of parallel
+  proof checking: @{verbatim 0} no proofs, @{verbatim 1} toplevel
+  proofs (default), @{verbatim 2} toplevel and nested Isar proofs.
+  The option @{verbatim "-Q"} specifies a threshold for @{verbatim
+  "-q2"}: nested proofs are only parallelized when the current number
+  of forked proofs falls below the given value (default 50),
+  multiplied by the number of worker threads (see option @{verbatim
+  "-M"}).
+
+  \medskip The @{verbatim "-t"} option produces a more detailed
+  internal timing report of the session.
+
+  \medskip The @{verbatim "-v"} option causes additional information
+  to be printed while running the session, notably the location of
+  prepared documents.
+
+  \medskip The @{verbatim "-M"} option specifies the maximum number of
+  parallel worker threads used for processing independent tasks when
+  checking theory sources (multithreading only works on suitable ML
+  platforms).  The special value of @{verbatim 0} or @{verbatim max}
+  refers to the number of actual CPU cores of the underlying machine,
+  which is a good starting point for optimal performance tuning.  The
+  @{verbatim "-T"} option determines the level of detail in tracing
+  output concerning the internal locking and scheduling in
+  multithreaded operation.  This may be helpful in isolating
+  performance bottle-necks, e.g.\ due to excessive wait states when
+  locking critical code sections.
+
+  \medskip Any @{tool usedir} session is named by some \emph{session
+  identifier}. These accumulate, documenting the way sessions depend
+  on others. For example, consider @{verbatim "Pure/FOL/ex"}, which
+  refers to the examples of FOL, which in turn is built upon Pure.
+
+  The current session's identifier is by default just the base name of
+  the @{verbatim LOGIC} argument (in build mode), or of the @{verbatim
+  NAME} argument (in example mode). This may be overridden explicitly
+  via the @{verbatim "-s"} option.
+*}
+
+
+section {* Output the version identifier of the Isabelle distribution *}
+
+text {*
+  The @{tool_def version} tool displays Isabelle version information:
+\begin{ttbox}
+Usage: isabelle version [OPTIONS]
+
+  Options are:
+    -i           short identification (derived from Mercurial id)
+
+  Display Isabelle version information.
+\end{ttbox}
+
+  \medskip The default is to output the full version string of the
+  Isabelle distribution, e.g.\ ``@{verbatim "Isabelle2012: May 2012"}.
+
+  The @{verbatim "-i"} option produces a short identification derived
+  from the Mercurial id of the @{setting ISABELLE_HOME} directory.
+*}
+
+
+section {* Convert XML to YXML *}
+
+text {*
+  The @{tool_def yxml} tool converts a standard XML document (stdin)
+  to the much simpler and more efficient YXML format of Isabelle
+  (stdout).  The YXML format is defined as follows.
+
+  \begin{enumerate}
+
+  \item The encoding is always UTF-8.
+
+  \item Body text is represented verbatim (no escaping, no special
+  treatment of white space, no named entities, no CDATA chunks, no
+  comments).
+
+  \item Markup elements are represented via ASCII control characters
+  @{text "\<^bold>X = 5"} and @{text "\<^bold>Y = 6"} as follows:
+
+  \begin{tabular}{ll}
+    XML & YXML \\\hline
+    @{verbatim "<"}@{text "name attribute"}@{verbatim "="}@{text "value \<dots>"}@{verbatim ">"} &
+    @{text "\<^bold>X\<^bold>Yname\<^bold>Yattribute"}@{verbatim "="}@{text "value\<dots>\<^bold>X"} \\
+    @{verbatim "</"}@{text name}@{verbatim ">"} & @{text "\<^bold>X\<^bold>Y\<^bold>X"} \\
+  \end{tabular}
+
+  There is no special case for empty body text, i.e.\ @{verbatim
+  "<foo/>"} is treated like @{verbatim "<foo></foo>"}.  Also note that
+  @{text "\<^bold>X"} and @{text "\<^bold>Y"} may never occur in
+  well-formed XML documents.
+
+  \end{enumerate}
+
+  Parsing YXML is pretty straight-forward: split the text into chunks
+  separated by @{text "\<^bold>X"}, then split each chunk into
+  sub-chunks separated by @{text "\<^bold>Y"}.  Markup chunks start
+  with an empty sub-chunk, and a second empty sub-chunk indicates
+  close of an element.  Any other non-empty chunk consists of plain
+  text.  For example, see @{file "~~/src/Pure/PIDE/yxml.ML"} or
+  @{file "~~/src/Pure/PIDE/yxml.scala"}.
+
+  YXML documents may be detected quickly by checking that the first
+  two characters are @{text "\<^bold>X\<^bold>Y"}.
+*}
+
+end
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc-src/System/Presentation.thy	Mon Aug 27 16:48:41 2012 +0200
@@ -0,0 +1,319 @@
+theory Presentation
+imports Base
+begin
+
+chapter {* Presenting theories \label{ch:present} *}
+
+text {* Isabelle provides several ways to present the outcome of
+  formal developments, including WWW-based browsable libraries or
+  actual printable documents.  Presentation is centered around the
+  concept of \emph{sessions} (\chref{ch:session}).  The global session
+  structure is that of a tree, with Isabelle Pure at its root, further
+  object-logics derived (e.g.\ HOLCF from HOL, and HOL from Pure), and
+  application sessions further on in the hierarchy.
+
+  The tools @{tool_ref mkroot} and @{tool_ref build} provide the
+  primary means for managing Isabelle sessions, including proper setup
+  for presentation; @{tool build} takes care to have @{executable_ref
+  "isabelle-process"} run any additional stages required for document
+  preparation, notably the @{tool_ref document} and @{tool_ref latex}.
+  The complete tool chain for managing batch-mode Isabelle sessions is
+  illustrated in \figref{fig:session-tools}.
+
+  \begin{figure}[htbp]
+  \begin{center}
+  \begin{tabular}{lp{0.6\textwidth}}
+
+      @{tool_ref mkroot} & invoked once by the user to initialize the
+      session @{verbatim ROOT} with optional @{verbatim document}
+      directory; \\
+
+      @{tool_ref build} & invoked repeatedly by the user to keep
+      session output up-to-date (HTML, documents etc.); \\
+
+      @{executable "isabelle-process"} & run through @{tool_ref
+      build}; \\
+
+      @{tool_ref document} & run by the Isabelle process if document
+      preparation is enabled; \\
+
+      @{tool_ref latex} & universal {\LaTeX} tool wrapper invoked
+      multiple times by @{tool_ref document}; also useful for manual
+      experiments; \\
+
+  \end{tabular}
+  \caption{The tool chain of Isabelle session presentation} \label{fig:session-tools}
+  \end{center}
+  \end{figure}
+*}
+
+
+section {* Generating theory browser information \label{sec:info} *}
+
+text {*
+  \index{theory browsing information|bold}
+
+  As a side-effect of building sessions, Isabelle is able to generate
+  theory browsing information, including HTML documents that show the
+  theory sources and the relationship with its ancestors and
+  descendants.  Besides the HTML file that is generated for every
+  theory, Isabelle stores links to all theories in an index
+  file. These indexes are linked with other indexes to represent the
+  overall tree structure of the sessions.
+
+  Isabelle also generates graph files that represent the theory
+  dependencies within a session.  There is a graph browser Java applet
+  embedded in the generated HTML pages, and also a stand-alone
+  application that allows browsing theory graphs without having to
+  start a WWW client first.  The latter version also includes features
+  such as generating Postscript files, which are not available in the
+  applet version.  See \secref{sec:browse} for further information.
+
+  \medskip
+
+  The easiest way to let Isabelle generate theory browsing information
+  for existing sessions is to invoke @{tool build} with suitable
+  options:
+
+\begin{ttbox}
+isabelle build -o browser_info -v -c FOL
+\end{ttbox}
+
+  The presentation output will appear in @{verbatim
+  "$ISABELLE_BROWSER_INFO/FOL"} as reported by the above verbose
+  invocation of the build process.
+
+  Many Isabelle sessions (such as @{verbatim "HOL-Library"} in @{file
+  "~~/src/HOL/Library"}) also provide actual printable documents.
+  These are prepared automatically as well if enabled like this:
+\begin{ttbox}
+isabelle build -o browser_info -o document=pdf -v -c HOL-Library
+\end{ttbox}
+
+  Enabling both browser info and document preparation simultaneously
+  causes an appropriate ``document'' link to be included in the HTML
+  index.  Documents may be generated independently of browser
+  information as well, see \secref{sec:tool-document} for further
+  details.
+
+  \bigskip The theory browsing information is stored in a
+  sub-directory directory determined by the @{setting_ref
+  ISABELLE_BROWSER_INFO} setting plus a prefix corresponding to the
+  session identifier (according to the tree structure of sub-sessions
+  by default).  In order to present Isabelle applications on the web,
+  the corresponding subdirectory from @{setting ISABELLE_BROWSER_INFO}
+  can be put on a WWW server.
+*}
+
+section {* Preparing session root directories \label{sec:tool-mkroot} *}
+
+text {* The @{tool_def mkroot} tool configures a given directory as
+  session root, with some @{verbatim ROOT} file and optional document
+  source directory.  Its usage is:
+\begin{ttbox}
+Usage: isabelle mkroot [OPTIONS] [DIR]
+
+  Options are:
+    -d           enable document preparation
+    -n NAME      alternative session name (default: DIR base name)
+
+  Prepare session root DIR (default: current directory).
+\end{ttbox}
+
+  The results are placed in the given directory @{text dir}, which
+  refers to the current directory by default.  The @{tool mkroot} tool
+  is conservative in the sense that it does not overwrite existing
+  files or directories.  Earlier attempts to generate a session root
+  need to be deleted manually.
+
+  \medskip Option @{verbatim "-d"} indicates that the session shall be
+  accompanied by a formal document, with @{text dir}@{verbatim
+  "/document/root.tex"} as its {\LaTeX} entry point (see also
+  \chref{ch:present}).
+
+  Option @{verbatim "-n"} allows to specify an alternative session
+  name; otherwise the base name of the given directory is used.
+
+  \medskip The implicit Isabelle settings variable @{setting
+  ISABELLE_LOGIC} specifies the parent session, and @{setting
+  ISABELLE_DOCUMENT_FORMAT} the document format to be filled filled
+  into the generated @{verbatim ROOT} file.  *}
+
+
+subsubsection {* Examples *}
+
+text {* Produce session @{verbatim Test} (with document preparation)
+  within a separate directory of the same name:
+\begin{ttbox}
+isabelle mkroot -d Test && isabelle build -D Test
+\end{ttbox}
+
+  \medskip Upgrade the current directory into a session ROOT with
+  document preparation, and build it:
+\begin{ttbox}
+isabelle mkroot -d && isabelle build -D .
+\end{ttbox}
+*}
+
+
+section {* Preparing Isabelle session documents
+  \label{sec:tool-document} *}
+
+text {* The @{tool_def document} tool prepares logic session
+  documents, processing the sources both as provided by the user and
+  generated by Isabelle.  Its usage is:
+\begin{ttbox}
+Usage: isabelle document [OPTIONS] [DIR]
+
+  Options are:
+    -c           cleanup -- be aggressive in removing old stuff
+    -n NAME      specify document name (default 'document')
+    -o FORMAT    specify output format: dvi (default), dvi.gz, ps,
+                 ps.gz, pdf
+    -t TAGS      specify tagged region markup
+
+  Prepare the theory session document in DIR (default 'document')
+  producing the specified output format.
+\end{ttbox}
+  This tool is usually run automatically as part of the Isabelle build
+  process, provided document preparation has been enabled via suitable
+  options.  It may be manually invoked on the generated browser
+  information document output as well, e.g.\ in case of errors
+  encountered in the batch run.
+
+  \medskip The @{verbatim "-c"} option tells @{tool document} to
+  dispose the document sources after successful operation!  This is
+  the right thing to do for sources generated by an Isabelle process,
+  but take care of your files in manual document preparation!
+
+  \medskip The @{verbatim "-n"} and @{verbatim "-o"} option specify
+  the final output file name and format, the default is ``@{verbatim
+  document.dvi}''.  Note that the result will appear in the parent of
+  the target @{verbatim DIR}.
+
+  \medskip The @{verbatim "-t"} option tells {\LaTeX} how to interpret
+  tagged Isabelle command regions.  Tags are specified as a comma
+  separated list of modifier/name pairs: ``@{verbatim "+"}@{text
+  foo}'' (or just ``@{text foo}'') means to keep, ``@{verbatim
+  "-"}@{text foo}'' to drop, and ``@{verbatim "/"}@{text foo}'' to
+  fold text tagged as @{text foo}.  The builtin default is equivalent
+  to the tag specification ``@{verbatim
+  "+theory,+proof,+ML,+visible,-invisible"}''; see also the {\LaTeX}
+  macros @{verbatim "\\isakeeptag"}, @{verbatim "\\isadroptag"}, and
+  @{verbatim "\\isafoldtag"}, in @{file
+  "~~/lib/texinputs/isabelle.sty"}.
+
+  \medskip Document preparation requires a @{verbatim document}
+  directory within the session sources.  This directory is supposed to
+  contain all the files needed to produce the final document --- apart
+  from the actual theories which are generated by Isabelle.
+
+  \medskip For most practical purposes, @{tool document} is smart
+  enough to create any of the specified output formats, taking
+  @{verbatim root.tex} supplied by the user as a starting point.  This
+  even includes multiple runs of {\LaTeX} to accommodate references
+  and bibliographies (the latter assumes @{verbatim root.bib} within
+  the same directory).
+
+  In more complex situations, a separate @{verbatim build} script for
+  the document sources may be given.  It is invoked with command-line
+  arguments for the document format and the document variant name.
+  The script needs to produce corresponding output files, e.g.\
+  @{verbatim root.pdf} for target format @{verbatim pdf} (and default
+  default variants).  The main work can be again delegated to @{tool
+  latex}, but it is also possible to harvest generated {\LaTeX}
+  sources and copy them elsewhere, for example.
+
+  \medskip When running the session, Isabelle copies the content of
+  the original @{verbatim document} directory into its proper place
+  within @{setting ISABELLE_BROWSER_INFO}, according to the session
+  path and document variant.  Then, for any processed theory @{text A}
+  some {\LaTeX} source is generated and put there as @{text
+  A}@{verbatim ".tex"}.  Furthermore, a list of all generated theory
+  files is put into @{verbatim session.tex}.  Typically, the root
+  {\LaTeX} file provided by the user would include @{verbatim
+  session.tex} to get a document containing all the theories.
+
+  The {\LaTeX} versions of the theories require some macros defined in
+  @{file "~~/lib/texinputs/isabelle.sty"}.  Doing @{verbatim
+  "\\usepackage{isabelle}"} in @{verbatim root.tex} should be fine;
+  the underlying @{tool latex} already includes an appropriate path
+  specification for {\TeX} inputs.
+
+  If the text contains any references to Isabelle symbols (such as
+  @{verbatim "\\"}@{verbatim "<forall>"}) then @{verbatim
+  "isabellesym.sty"} should be included as well.  This package
+  contains a standard set of {\LaTeX} macro definitions @{verbatim
+  "\\isasym"}@{text foo} corresponding to @{verbatim "\\"}@{verbatim
+  "<"}@{text foo}@{verbatim ">"}, see \cite{isabelle-implementation} for a
+  complete list of predefined Isabelle symbols.  Users may invent
+  further symbols as well, just by providing {\LaTeX} macros in a
+  similar fashion as in @{file "~~/lib/texinputs/isabellesym.sty"} of
+  the distribution.
+
+  For proper setup of DVI and PDF documents (with hyperlinks and
+  bookmarks), we recommend to include @{file
+  "~~/lib/texinputs/pdfsetup.sty"} as well.
+
+  \medskip As a final step of Isabelle document preparation, @{tool
+  document}~@{verbatim "-c"} is run on the resulting copy of the
+  @{verbatim document} directory.  Thus the actual output document is
+  built and installed in its proper place.  The generated sources are
+  deleted after successful run of {\LaTeX} and friends.
+
+  Some care is needed if the document output location is configured
+  differently, say within a directory whose content is still required
+  afterwards!
+*}
+
+
+section {* Running {\LaTeX} within the Isabelle environment
+  \label{sec:tool-latex} *}
+
+text {* The @{tool_def latex} tool provides the basic interface for
+  Isabelle document preparation.  Its usage is:
+\begin{ttbox}
+Usage: isabelle latex [OPTIONS] [FILE]
+
+  Options are:
+    -o FORMAT    specify output format: dvi (default), dvi.gz, ps,
+                 ps.gz, pdf, bbl, idx, sty, syms
+
+  Run LaTeX (and related tools) on FILE (default root.tex),
+  producing the specified output format.
+\end{ttbox}
+
+  Appropriate {\LaTeX}-related programs are run on the input file,
+  according to the given output format: @{executable latex},
+  @{executable pdflatex}, @{executable dvips}, @{executable bibtex}
+  (for @{verbatim bbl}), and @{executable makeindex} (for @{verbatim
+  idx}).  The actual commands are determined from the settings
+  environment (@{setting ISABELLE_LATEX} etc.).
+
+  The @{verbatim sty} output format causes the Isabelle style files to
+  be updated from the distribution.  This is useful in special
+  situations where the document sources are to be processed another
+  time by separate tools.
+
+  The @{verbatim syms} output is for internal use; it generates lists
+  of symbols that are available without loading additional {\LaTeX}
+  packages.
+*}
+
+
+subsubsection {* Examples *}
+
+text {* Invoking @{tool latex} by hand may be occasionally useful when
+  debugging failed attempts of the automatic document preparation
+  stage of batch-mode Isabelle.  The abortive process leaves the
+  sources at a certain place within @{setting ISABELLE_BROWSER_INFO},
+  see the runtime error message for details.  This enables users to
+  inspect {\LaTeX} runs in further detail, e.g.\ like this:
+
+\begin{ttbox}
+  cd ~/.isabelle/IsabelleXXXX/browser_info/HOL/Test/document
+  isabelle latex -o pdf
+\end{ttbox}
+*}
+
+end
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc-src/System/Scala.thy	Mon Aug 27 16:48:41 2012 +0200
@@ -0,0 +1,72 @@
+theory Scala
+imports Base
+begin
+
+chapter {* Isabelle/Scala development tools *}
+
+text {* Isabelle/ML and Isabelle/Scala are the two main language
+environments for Isabelle tool implementations.  There are some basic
+command-line tools to work with the underlying Java Virtual Machine,
+the Scala toplevel and compiler.  Note that Isabelle/jEdit
+(\secref{sec:tool-tty}) provides a Scala Console for interactive
+experimentation within the running application. *}
+
+
+section {* Java Runtime Environment within Isabelle \label{sec:tool-java} *}
+
+text {* The @{tool_def java} tool is a direct wrapper for the Java
+  Runtime Environment, within the regular Isabelle settings
+  environment (\secref{sec:settings}).  The command line arguments are
+  that of the underlying Java version.  It is run in @{verbatim
+  "-server"} mode if possible, to improve performance (at the cost of
+  extra startup time).
+
+  The @{verbatim java} executable is the one within @{setting
+  ISABELLE_JDK_HOME}, according to the standard directory layout for
+  official JDK distributions.  The class loader is augmented such that
+  the name space of @{verbatim "Isabelle/Pure.jar"} is available,
+  which is the main Isabelle/Scala module.
+
+  For example, the following command-line invokes the main method of
+  class @{verbatim isabelle.GUI_Setup}, which opens a windows with
+  some diagnostic information about the Isabelle environment:
+\begin{alltt}
+  isabelle java isabelle.GUI_Setup
+\end{alltt}
+*}
+
+
+section {* Scala toplevel \label{sec:tool-scala} *}
+
+text {* The @{tool_def scala} tool is a direct wrapper for the Scala
+  toplevel; see also @{tool java} above.  The command line arguments
+  are that of the underlying Scala version.
+
+  This allows to interact with Isabelle/Scala in TTY mode like this:
+\begin{alltt}
+  isabelle scala
+  scala> isabelle.Isabelle_System.getenv("ISABELLE_HOME")
+  scala> val options = isabelle.Options.init()
+  scala> options.bool("browser_info")
+\end{alltt}
+*}
+
+
+section {* Scala compiler \label{sec:tool-scalac} *}
+
+text {* The @{tool_def scalac} tool is a direct wrapper for the Scala
+  compiler; see also @{tool scala} above.  The command line arguments
+  are that of the underlying Scala version.
+
+  This allows to compile further Scala modules, depending on existing
+  Isabelle/Scala functionality.  The resulting class or jar files can
+  be added to the @{setting CLASSPATH} via the @{verbatim classpath}
+  Bash function that is provided by the Isabelle process environment.
+  Thus add-on components can register themselves in a modular manner,
+  see also \secref{sec:components}.
+
+  Note that jEdit (\secref{sec:tool-jedit}) has its own mechanisms for
+  adding plugin components, which needs special attention since
+  it overrides the standard Java class loader.  *}
+
+end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc-src/System/Sessions.thy	Mon Aug 27 16:48:41 2012 +0200
@@ -0,0 +1,324 @@
+theory Sessions
+imports Base
+begin
+
+chapter {* Isabelle sessions and build management \label{ch:session} *}
+
+text {* An Isabelle \emph{session} consists of a collection of related
+  theories that may be associated with formal documents (see also
+  \chref{ch:present}).  There is also a notion of \emph{persistent
+  heap} image to capture the state of a session, similar to
+  object-code in compiled programming languages.  Thus the concept of
+  session resembles that of a ``project'' in common IDE environments,
+  but the specific name emphasizes the connection to interactive
+  theorem proving: the session wraps-up the results of
+  user-interaction with the prover in a persistent form.
+
+  Application sessions are built on a given parent session, which may
+  be built recursively on other parents.  Following this path in the
+  hierarchy eventually leads to some major object-logic session like
+  @{text "HOL"}, which itself is based on @{text "Pure"} as the common
+  root of all sessions.
+
+  Processing sessions may take considerable time.  Isabelle build
+  management helps to organize this efficiently.  This includes
+  support for parallel build jobs, in addition to the multithreaded
+  theory and proof checking that is already provided by the prover
+  process itself.  *}
+
+
+section {* Session ROOT specifications \label{sec:session-root} *}
+
+text {* Session specifications reside in files called @{verbatim ROOT}
+  within certain directories, such as the home locations of registered
+  Isabelle components or additional project directories given by the
+  user.
+
+  The ROOT file format follows the lexical conventions of the
+  \emph{outer syntax} of Isabelle/Isar, see also
+  \cite{isabelle-isar-ref}.  This defines common forms like
+  identifiers, names, quoted strings, verbatim text, nested comments
+  etc.  The grammar for a single @{syntax session_entry} is given as
+  syntax diagram below; each ROOT file may contain multiple session
+  specifications like this.
+
+  Isabelle/jEdit (\secref{sec:tool-jedit}) includes a simple editing
+  mode @{verbatim "isabelle-root"} for session ROOT files.
+
+  @{rail "
+    @{syntax_def session_entry}: @'session' spec '=' (@{syntax name} '+')? body
+    ;
+    body: description? options? ( theories + ) files?
+    ;
+    spec: @{syntax name} groups? dir?
+    ;
+    groups: '(' (@{syntax name} +) ')'
+    ;
+    dir: @'in' @{syntax name}
+    ;
+    description: @'description' @{syntax text}
+    ;
+    options: @'options' opts
+    ;
+    opts: '[' ( (@{syntax name} '=' value | @{syntax name}) + ',' ) ']'
+    ;
+    value: @{syntax name} | @{syntax real}
+    ;
+    theories: @'theories' opts? ( @{syntax name} * )
+    ;
+    files: @'files' ( @{syntax name} + )
+    "}
+
+  \begin{description}
+
+  \item \isakeyword{session}~@{text "A = B + body"} defines a new
+  session @{text "A"} based on parent session @{text "B"}, with its
+  content given in @{text body} (theories and auxiliary source files).
+  Note that a parent (like @{text "HOL"}) is mandatory in practical
+  applications: only Isabelle/Pure can bootstrap itself from nothing.
+
+  All such session specifications together describe a hierarchy (tree)
+  of sessions, with globally unique names.  The new session name
+  @{text "A"} should be sufficiently long to stand on its own in a
+  potentially large library.
+
+  \item \isakeyword{session}~@{text "A (groups)"} indicates a
+  collection of groups where the new session is a member.  Group names
+  are uninterpreted and merely follow certain conventions.  For
+  example, the Isabelle distribution tags some important sessions by
+  the group name called ``@{text "main"}''.  Other projects may invent
+  their own conventions, but this requires some care to avoid clashes
+  within this unchecked name space.
+
+  \item \isakeyword{session}~@{text "A"}~\isakeyword{in}~@{text "dir"}
+  specifies an explicit directory for this session; by default this is
+  the current directory of the @{verbatim ROOT} file.
+
+  All theories and auxiliary source files are located relatively to
+  the session directory.  The prover process is run within the same as
+  its current working directory.
+
+  \item \isakeyword{description}~@{text "text"} is a free-form
+  annotation for this session.
+
+  \item \isakeyword{options}~@{text "[x = a, y = b, z]"} defines
+  separate options (\secref{sec:system-options}) that are used when
+  processing this session, but \emph{without} propagation to child
+  sessions.  Note that @{text "z"} abbreviates @{text "z = true"} for
+  Boolean options.
+
+  \item \isakeyword{theories}~@{text "options names"} specifies a
+  block of theories that are processed within an environment that is
+  augmented by the given options, in addition to the global session
+  options given before.  Any number of blocks of \isakeyword{theories}
+  may be given.  Options are only active for each
+  \isakeyword{theories} block separately.
+
+  \item \isakeyword{files}~@{text "files"} lists additional source
+  files that are involved in the processing of this session.  This
+  should cover anything outside the formal content of the theory
+  sources, say some auxiliary {\TeX} files that are required for
+  document processing.  In contrast, files that are specified in
+  formal theory headers as @{keyword "uses"} need not be declared
+  again.
+
+  \end{description}
+*}
+
+subsubsection {* Examples *}
+
+text {* See @{file "~~/src/HOL/ROOT"} for a diversity of practically
+  relevant situations, but it uses relatively complex quasi-hierarchic
+  naming conventions like @{text "HOL\<dash>SPARK"}, @{text
+  "HOL\<dash>SPARK\<dash>Examples"}.  An alternative is to use
+  unqualified names that are relatively long and descriptive, as in
+  the Archive of Formal Proofs (\url{http://afp.sf.net}), for
+  example. *}
+
+
+section {* System build options \label{sec:system-options} *}
+
+text {* See @{file "~~/etc/options"} for the main defaults provided by
+  the Isabelle distribution.  Isabelle/jEdit (\secref{sec:tool-jedit})
+  includes a simple editing mode @{verbatim "isabelle-options"} for
+  this file-format.
+
+  The @{tool_def options} tool prints Isabelle system options.  Its
+  command-line usage is:
+\begin{ttbox}
+Usage: isabelle options [OPTIONS] [MORE_OPTIONS ...]
+
+  Options are:
+    -b           include $ISABELLE_BUILD_OPTIONS
+    -x FILE      export to FILE in YXML format
+
+  Print Isabelle system options, augmented by MORE_OPTIONS given as
+  arguments NAME=VAL or NAME.
+\end{ttbox}
+
+  The command line arguments provide additional system options of the
+  form @{text "name"}@{verbatim "="}@{text "value"} or @{text name}
+  for Boolean options.
+
+  Option @{verbatim "-b"} augments the implicit environment of system
+  options by the ones of @{setting ISABELLE_BUILD_OPTIONS}, cf.\
+  \secref{sec:tool-build}.
+
+  Option @{verbatim "-x"} specifies a file to export the result in
+  YXML format, instead of printing it in human-readable form.
+*}
+
+
+section {* Invoking the build process \label{sec:tool-build} *}
+
+text {* The @{tool_def build} tool invokes the build process for
+  Isabelle sessions.  It manages dependencies between sessions,
+  related sources of theories and auxiliary files, and target heap
+  images.  Accordingly, it runs instances of the prover process with
+  optional document preparation.  Its command-line usage
+  is:\footnote{Isabelle/Scala provides the same functionality via
+  \texttt{isabelle.Build.build}.}
+\begin{ttbox}
+Usage: isabelle build [OPTIONS] [SESSIONS ...]
+
+  Options are:
+    -D DIR       include session directory and select its sessions
+    -a           select all sessions
+    -b           build heap images
+    -c           clean build
+    -d DIR       include session directory
+    -g NAME      select session group NAME
+    -j INT       maximum number of parallel jobs (default 1)
+    -l           list session source files
+    -n           no build -- test dependencies only
+    -o OPTION    override session configuration OPTION
+                 (via NAME=VAL or NAME)
+    -s           system build mode: produce output in ISABELLE_HOME
+    -v           verbose
+
+  Build and manage Isabelle sessions, depending on implicit
+  ISABELLE_BUILD_OPTIONS="..."
+
+  ML_PLATFORM="..."
+  ML_HOME="..."
+  ML_SYSTEM="..."
+  ML_OPTIONS="..."
+\end{ttbox}
+
+  \medskip Isabelle sessions are defined via session ROOT files as
+  described in (\secref{sec:session-root}).  The totality of sessions
+  is determined by collecting such specifications from all Isabelle
+  component directories (\secref{sec:components}), augmented by more
+  directories given via options @{verbatim "-d"}~@{text "DIR"} on the
+  command line.  Each such directory may contain a session
+  \texttt{ROOT} file with several session specifications.
+
+  Any session root directory may refer recursively to further
+  directories of the same kind, by listing them in a catalog file
+  @{verbatim "ROOTS"} line-by-line.  This helps to organize large
+  collections of session specifications, or to make @{verbatim "-d"}
+  command line options persistent (say within @{verbatim
+  "$ISABELLE_HOME_USER/ROOTS"}).
+
+  \medskip The subset of sessions to be managed is determined via
+  individual @{text "SESSIONS"} given as command-line arguments, or
+  session groups that are given via one or more options @{verbatim
+  "-g"}~@{text "NAME"}.  Option @{verbatim "-a"} selects all sessions.
+  The build tool takes session dependencies into account: the set of
+  selected sessions is completed by including all ancestors.
+
+  \medskip Option @{verbatim "-D"} is similar to @{verbatim "-d"}, but
+  selects all sessions that are defined in the given directories.
+
+  \medskip The build process depends on additional options
+  (\secref{sec:system-options}) that are passed to the prover
+  eventually.  The settings variable @{setting_ref
+  ISABELLE_BUILD_OPTIONS} allows to provide additional defaults, e.g.\
+  \texttt{ISABELLE_BUILD_OPTIONS="document=pdf threads=4"}. Moreover,
+  the environment of system build options may be augmented on the
+  command line via @{verbatim "-o"}~@{text "name"}@{verbatim
+  "="}@{text "value"} or @{verbatim "-o"}~@{text "name"}, which
+  abbreviates @{verbatim "-o"}~@{text "name"}@{verbatim"=true"} for
+  Boolean options.  Multiple occurrences of @{verbatim "-o"} on the
+  command-line are applied in the given order.
+
+  \medskip Option @{verbatim "-b"} ensures that heap images are
+  produced for all selected sessions.  By default, images are only
+  saved for inner nodes of the hierarchy of sessions, as required for
+  other sessions to continue later on.
+
+  \medskip Option @{verbatim "-c"} cleans all descendants of the
+  selected sessions before performing the specified build operation.
+
+  \medskip Option @{verbatim "-n"} omits the actual build process
+  after the preparatory stage (including optional cleanup).  Note that
+  the return code always indicates the status of the set of selected
+  sessions.
+
+  \medskip Option @{verbatim "-j"} specifies the maximum number of
+  parallel build jobs (prover processes).  Each prover process is
+  subject to a separate limit of parallel worker threads, cf.\ system
+  option @{system_option_ref threads}.
+
+  \medskip Option @{verbatim "-s"} enables \emph{system mode}, which
+  means that resulting heap images and log files are stored in
+  @{verbatim "$ISABELLE_HOME/heaps"} instead of the default location
+  @{setting ISABELLE_OUTPUT} (which is normally in @{setting
+  ISABELLE_HOME_USER}, i.e.\ the user's home directory).
+
+  \medskip Option @{verbatim "-v"} increases the general level of
+  verbosity.  Option @{verbatim "-l"} lists the source files that
+  contribute to a session.
+*}
+
+subsubsection {* Examples *}
+
+text {*
+  Build a specific logic image:
+\begin{ttbox}
+isabelle build -b HOLCF
+\end{ttbox}
+
+  \smallskip Build the main group of logic images:
+\begin{ttbox}
+isabelle build -b -g main
+\end{ttbox}
+
+  \smallskip Provide a general overview of the status of all Isabelle
+  sessions, without building anything:
+\begin{ttbox}
+isabelle build -a -n -v
+\end{ttbox}
+
+  \smallskip Build all sessions with HTML browser info and PDF
+  document preparation:
+\begin{ttbox}
+isabelle build -a -o browser_info -o document=pdf
+\end{ttbox}
+
+  \smallskip Build all sessions with a maximum of 8 parallel prover
+  processes and 4 worker threads each (on a machine with many cores):
+\begin{ttbox}
+isabelle build -a -j8 -o threads=4
+\end{ttbox}
+
+  \smallskip Build some session images with cleanup of their
+  descendants, while retaining their ancestry:
+\begin{ttbox}
+isabelle build -b -c HOL-Boogie HOL-SPARK
+\end{ttbox}
+
+  \smallskip Clean all sessions without building anything:
+\begin{ttbox}
+isabelle build -a -n -c
+\end{ttbox}
+
+  \smallskip Build all sessions from some other directory hierarchy,
+  according to the settings variable @{verbatim "AFP"} that happens to
+  be defined inside the Isabelle environment:
+\begin{ttbox}
+isabelle build -D '$AFP'
+\end{ttbox}
+*}
+
+end
--- a/doc-src/System/Thy/Base.thy	Mon Aug 27 16:10:54 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-theory Base
-imports Pure
-begin
-
-ML_file "../../antiquote_setup.ML"
-setup Antiquote_Setup.setup
-
-declare [[thy_output_source]]
-
-end
--- a/doc-src/System/Thy/Basics.thy	Mon Aug 27 16:10:54 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,554 +0,0 @@
-theory Basics
-imports Base
-begin
-
-chapter {* The Isabelle system environment *}
-
-text {* This manual describes Isabelle together with related tools and
-  user interfaces as seen from a system oriented view.  See also the
-  \emph{Isabelle/Isar Reference Manual}~\cite{isabelle-isar-ref} for
-  the actual Isabelle input language and related concepts, and
-  \emph{The Isabelle/Isar Implementation
-  Manual}~\cite{isabelle-implementation} for the main concepts of the
-  underlying implementation in Isabelle/ML.
-
-  \medskip The Isabelle system environment provides the following
-  basic infrastructure to integrate tools smoothly.
-
-  \begin{enumerate}
-
-  \item The \emph{Isabelle settings} mechanism provides process
-  environment variables to all Isabelle executables (including tools
-  and user interfaces).
-
-  \item The raw \emph{Isabelle process} (@{executable_ref
-  "isabelle-process"}) runs logic sessions either interactively or in
-  batch mode.  In particular, this view abstracts over the invocation
-  of the actual ML system to be used.  Regular users rarely need to
-  care about the low-level process.
-
-  \item The main \emph{Isabelle tool wrapper} (@{executable_ref
-  isabelle}) provides a generic startup environment Isabelle related
-  utilities, user interfaces etc.  Such tools automatically benefit
-  from the settings mechanism.
-
-  \end{enumerate}
-*}
-
-
-section {* Isabelle settings \label{sec:settings} *}
-
-text {*
-  The Isabelle system heavily depends on the \emph{settings
-  mechanism}\indexbold{settings}.  Essentially, this is a statically
-  scoped collection of environment variables, such as @{setting
-  ISABELLE_HOME}, @{setting ML_SYSTEM}, @{setting ML_HOME}.  These
-  variables are \emph{not} intended to be set directly from the shell,
-  though.  Isabelle employs a somewhat more sophisticated scheme of
-  \emph{settings files} --- one for site-wide defaults, another for
-  additional user-specific modifications.  With all configuration
-  variables in clearly defined places, this scheme is more
-  maintainable and user-friendly than global shell environment
-  variables.
-
-  In particular, we avoid the typical situation where prospective
-  users of a software package are told to put several things into
-  their shell startup scripts, before being able to actually run the
-  program. Isabelle requires none such administrative chores of its
-  end-users --- the executables can be invoked straight away.
-  Occasionally, users would still want to put the @{file
-  "$ISABELLE_HOME/bin"} directory into their shell's search path, but
-  this is not required.
-*}
-
-
-subsection {* Bootstrapping the environment \label{sec:boot} *}
-
-text {* Isabelle executables need to be run within a proper settings
-  environment.  This is bootstrapped as described below, on the first
-  invocation of one of the outer wrapper scripts (such as
-  @{executable_ref isabelle}).  This happens only once for each
-  process tree, i.e.\ the environment is passed to subprocesses
-  according to regular Unix conventions.
-
-  \begin{enumerate}
-
-  \item The special variable @{setting_def ISABELLE_HOME} is
-  determined automatically from the location of the binary that has
-  been run.
-  
-  You should not try to set @{setting ISABELLE_HOME} manually. Also
-  note that the Isabelle executables either have to be run from their
-  original location in the distribution directory, or via the
-  executable objects created by the @{tool install} tool.  Symbolic
-  links are admissible, but a plain copy of the @{file
-  "$ISABELLE_HOME/bin"} files will not work!
-
-  \item The file @{file "$ISABELLE_HOME/etc/settings"} is run as a
-  @{executable_ref bash} shell script with the auto-export option for
-  variables enabled.
-  
-  This file holds a rather long list of shell variable assigments,
-  thus providing the site-wide default settings.  The Isabelle
-  distribution already contains a global settings file with sensible
-  defaults for most variables.  When installing the system, only a few
-  of these may have to be adapted (probably @{setting ML_SYSTEM}
-  etc.).
-  
-  \item The file @{verbatim "$ISABELLE_HOME_USER/etc/settings"} (if it
-  exists) is run in the same way as the site default settings. Note
-  that the variable @{setting ISABELLE_HOME_USER} has already been set
-  before --- usually to something like @{verbatim
-  "$USER_HOME/.isabelle/IsabelleXXXX"}.
-  
-  Thus individual users may override the site-wide defaults.  See also
-  file @{file "$ISABELLE_HOME/etc/user-settings.sample"} in the
-  distribution.  Typically, a user settings file would contain only a
-  few lines, just the assigments that are really changed.  One should
-  definitely \emph{not} start with a full copy the basic @{file
-  "$ISABELLE_HOME/etc/settings"}. This could cause very annoying
-  maintainance problems later, when the Isabelle installation is
-  updated or changed otherwise.
-  
-  \end{enumerate}
-
-  Since settings files are regular GNU @{executable_def bash} scripts,
-  one may use complex shell commands, such as @{verbatim "if"} or
-  @{verbatim "case"} statements to set variables depending on the
-  system architecture or other environment variables.  Such advanced
-  features should be added only with great care, though. In
-  particular, external environment references should be kept at a
-  minimum.
-
-  \medskip A few variables are somewhat special:
-
-  \begin{itemize}
-
-  \item @{setting_def ISABELLE_PROCESS} and @{setting_def ISABELLE_TOOL} are set
-  automatically to the absolute path names of the @{executable
-  "isabelle-process"} and @{executable isabelle} executables,
-  respectively.
-  
-  \item @{setting_ref ISABELLE_OUTPUT} will have the identifiers of
-  the Isabelle distribution (cf.\ @{setting ISABELLE_IDENTIFIER}) and
-  the ML system (cf.\ @{setting ML_IDENTIFIER}) appended automatically
-  to its value.
-
-  \end{itemize}
-
-  \medskip Note that the settings environment may be inspected with
-  the @{tool getenv} tool.  This might help to figure out the effect
-  of complex settings scripts.  *}
-
-
-subsection {* Common variables *}
-
-text {*
-  This is a reference of common Isabelle settings variables. Note that
-  the list is somewhat open-ended. Third-party utilities or interfaces
-  may add their own selection. Variables that are special in some
-  sense are marked with @{text "\<^sup>*"}.
-
-  \begin{description}
-
-  \item[@{setting_def USER_HOME}@{text "\<^sup>*"}] Is the cross-platform
-  user home directory.  On Unix systems this is usually the same as
-  @{setting HOME}, but on Windows it is the regular home directory of
-  the user, not the one of within the Cygwin root
-  file-system.\footnote{Cygwin itself offers another choice whether
-  its HOME should point to the \texttt{/home} directory tree or the
-  Windows user home.}
-
- \item[@{setting_def ISABELLE_HOME}@{text "\<^sup>*"}] is the location of the
-  top-level Isabelle distribution directory. This is automatically
-  determined from the Isabelle executable that has been invoked.  Do
-  not attempt to set @{setting ISABELLE_HOME} yourself from the shell!
-  
-  \item[@{setting_def ISABELLE_HOME_USER}] is the user-specific
-  counterpart of @{setting ISABELLE_HOME}. The default value is
-  relative to @{verbatim "$USER_HOME/.isabelle"}, under rare
-  circumstances this may be changed in the global setting file.
-  Typically, the @{setting ISABELLE_HOME_USER} directory mimics
-  @{setting ISABELLE_HOME} to some extend. In particular, site-wide
-  defaults may be overridden by a private @{verbatim
-  "$ISABELLE_HOME_USER/etc/settings"}.
-  
-  \item[@{setting_def ISABELLE_PLATFORM}@{text "\<^sup>*"}] is automatically
-  set to a symbolic identifier for the underlying hardware and
-  operating system.  The Isabelle platform identification always
-  refers to the 32 bit variant, even this is a 64 bit machine.  Note
-  that the ML or Java runtime may have a different idea, depending on
-  which binaries are actually run.
-
-  \item[@{setting_def ISABELLE_PLATFORM64}@{text "\<^sup>*"}] is similar to
-  @{setting ISABELLE_PLATFORM} but refers to the proper 64 bit variant
-  on a platform that supports this; the value is empty for 32 bit.
-  Note that the following bash expression (including the quotes)
-  prefers the 64 bit platform, if that is available:
-
-  @{verbatim [display] "\"${ISABELLE_PLATFORM64:-$ISABELLE_PLATFORM}\""}
-
-  \item[@{setting_def ISABELLE_PROCESS}@{text "\<^sup>*"}, @{setting
-  ISABELLE_TOOL}@{text "\<^sup>*"}] are automatically set to the full path
-  names of the @{executable "isabelle-process"} and @{executable
-  isabelle} executables, respectively.  Thus other tools and scripts
-  need not assume that the @{file "$ISABELLE_HOME/bin"} directory is
-  on the current search path of the shell.
-  
-  \item[@{setting_def ISABELLE_IDENTIFIER}@{text "\<^sup>*"}] refers
-  to the name of this Isabelle distribution, e.g.\ ``@{verbatim
-  Isabelle2012}''.
-
-  \item[@{setting_def ML_SYSTEM}, @{setting_def ML_HOME},
-  @{setting_def ML_OPTIONS}, @{setting_def ML_PLATFORM}, @{setting_def
-  ML_IDENTIFIER}@{text "\<^sup>*"}] specify the underlying ML system
-  to be used for Isabelle.  There is only a fixed set of admissable
-  @{setting ML_SYSTEM} names (see the @{file
-  "$ISABELLE_HOME/etc/settings"} file of the distribution).
-  
-  The actual compiler binary will be run from the directory @{setting
-  ML_HOME}, with @{setting ML_OPTIONS} as first arguments on the
-  command line.  The optional @{setting ML_PLATFORM} may specify the
-  binary format of ML heap images, which is useful for cross-platform
-  installations.  The value of @{setting ML_IDENTIFIER} is
-  automatically obtained by composing the values of @{setting
-  ML_SYSTEM}, @{setting ML_PLATFORM} and the Isabelle version values.
-
-  \item[@{setting_def ISABELLE_JDK_HOME}] needs to point to a full JDK
-  (Java Development Kit) installation with @{verbatim javac} and
-  @{verbatim jar} executables.  This is essential for Isabelle/Scala
-  and other JVM-based tools to work properly.  Note that conventional
-  @{verbatim JAVA_HOME} usually points to the JRE (Java Runtime
-  Environment), not JDK.
-  
-  \item[@{setting_def ISABELLE_PATH}] is a list of directories
-  (separated by colons) where Isabelle logic images may reside.  When
-  looking up heaps files, the value of @{setting ML_IDENTIFIER} is
-  appended to each component internally.
-  
-  \item[@{setting_def ISABELLE_OUTPUT}@{text "\<^sup>*"}] is a
-  directory where output heap files should be stored by default. The
-  ML system and Isabelle version identifier is appended here, too.
-  
-  \item[@{setting_def ISABELLE_BROWSER_INFO}] is the directory where
-  theory browser information (HTML text, graph data, and printable
-  documents) is stored (see also \secref{sec:info}).  The default
-  value is @{verbatim "$ISABELLE_HOME_USER/browser_info"}.
-  
-  \item[@{setting_def ISABELLE_LOGIC}] specifies the default logic to
-  load if none is given explicitely by the user.  The default value is
-  @{verbatim HOL}.
-  
-  \item[@{setting_def ISABELLE_LINE_EDITOR}] specifies the default
-  line editor for the @{tool_ref tty} interface.
-
-  \item[@{setting_def ISABELLE_USEDIR_OPTIONS}] is implicitly prefixed
-  to the command line of any @{tool_ref usedir} invocation. This
-  typically contains compilation options for object-logics --- @{tool
-  usedir} is the basic tool for managing logic sessions (cf.\ the
-  @{verbatim IsaMakefile}s in the distribution).
-
-  \item[@{setting_def ISABELLE_LATEX}, @{setting_def
-  ISABELLE_PDFLATEX}, @{setting_def ISABELLE_BIBTEX}, @{setting_def
-  ISABELLE_DVIPS}] refer to {\LaTeX} related tools for Isabelle
-  document preparation (see also \secref{sec:tool-latex}).
-  
-  \item[@{setting_def ISABELLE_TOOLS}] is a colon separated list of
-  directories that are scanned by @{executable isabelle} for external
-  utility programs (see also \secref{sec:isabelle-tool}).
-  
-  \item[@{setting_def ISABELLE_DOCS}] is a colon separated list of
-  directories with documentation files.
-  
-  \item[@{setting_def ISABELLE_DOC_FORMAT}] specifies the preferred
-  document format, typically @{verbatim dvi} or @{verbatim pdf}.
-  
-  \item[@{setting_def DVI_VIEWER}] specifies the command to be used
-  for displaying @{verbatim dvi} files.
-  
-  \item[@{setting_def PDF_VIEWER}] specifies the command to be used
-  for displaying @{verbatim pdf} files.
-  
-  \item[@{setting_def PRINT_COMMAND}] specifies the standard printer
-  spool command, which is expected to accept @{verbatim ps} files.
-  
-  \item[@{setting_def ISABELLE_TMP_PREFIX}@{text "\<^sup>*"}] is the
-  prefix from which any running @{executable "isabelle-process"}
-  derives an individual directory for temporary files.  The default is
-  somewhere in @{verbatim "/tmp"}.
-  
-  \end{description}
-*}
-
-
-subsection {* Additional components \label{sec:components} *}
-
-text {* Any directory may be registered as an explicit \emph{Isabelle
-  component}.  The general layout conventions are that of the main
-  Isabelle distribution itself, and the following two files (both
-  optional) have a special meaning:
-
-  \begin{itemize}
-
-  \item @{verbatim "etc/settings"} holds additional settings that are
-  initialized when bootstrapping the overall Isabelle environment,
-  cf.\ \secref{sec:boot}.  As usual, the content is interpreted as a
-  @{verbatim bash} script.  It may refer to the component's enclosing
-  directory via the @{verbatim "COMPONENT"} shell variable.
-
-  For example, the following setting allows to refer to files within
-  the component later on, without having to hardwire absolute paths:
-
-\begin{ttbox}
-MY_COMPONENT_HOME="$COMPONENT"
-\end{ttbox}
-
-  Components can also add to existing Isabelle settings such as
-  @{setting_def ISABELLE_TOOLS}, in order to provide
-  component-specific tools that can be invoked by end-users.  For
-  example:
-
-\begin{ttbox}
-ISABELLE_TOOLS="$ISABELLE_TOOLS:$COMPONENT/lib/Tools"
-\end{ttbox}
-
-  \item @{verbatim "etc/components"} holds a list of further
-  sub-components of the same structure.  The directory specifications
-  given here can be either absolute (with leading @{verbatim "/"}) or
-  relative to the component's main directory.
-
-  \end{itemize}
-
-  The root of component initialization is @{setting ISABELLE_HOME}
-  itself.  After initializing all of its sub-components recursively,
-  @{setting ISABELLE_HOME_USER} is included in the same manner (if
-  that directory exists).  This allows to install private components
-  via @{verbatim "$ISABELLE_HOME_USER/etc/components"}, although it is
-  often more convenient to do that programmatically via the
-  \verb,init_component, shell function in the \verb,etc/settings,
-  script of \verb,$ISABELLE_HOME_USER, (or any other component
-  directory).  For example:
-\begin{ttbox}
-init_component "$HOME/screwdriver-2.0"
-\end{ttbox}
-
-  This is tolerant wrt.\ missing component directories, but might
-  produce a warning.
-
-  \medskip More complex situations may be addressed by initializing
-  components listed in a given catalog file, relatively to some base
-  directory:
-
-\begin{ttbox}
-init_components "$HOME/my_component_store" "some_catalog_file"
-\end{ttbox}
-
-  The component directories listed in the catalog file are treated as
-  relative to the given base directory.
-
-  See also \secref{sec:tool-components} for some tool-support for
-  resolving components that are formally initialized but not installed
-  yet.
-*}
-
-
-section {* The raw Isabelle process *}
-
-text {*
-  The @{executable_def "isabelle-process"} executable runs bare-bones
-  Isabelle logic sessions --- either interactively or in batch mode.
-  It provides an abstraction over the underlying ML system, and over
-  the actual heap file locations.  Its usage is:
-
-\begin{ttbox}
-Usage: isabelle-process [OPTIONS] [INPUT] [OUTPUT]
-
-  Options are:
-    -I           startup Isar interaction mode
-    -P           startup Proof General interaction mode
-    -S           secure mode -- disallow critical operations
-    -T ADDR      startup process wrapper, with socket address
-    -W IN:OUT    startup process wrapper, with input/output fifos
-    -X           startup PGIP interaction mode
-    -e MLTEXT    pass MLTEXT to the ML session
-    -f           pass 'Session.finish();' to the ML session
-    -m MODE      add print mode for output
-    -q           non-interactive session
-    -r           open heap file read-only
-    -u           pass 'use"ROOT.ML";' to the ML session
-    -w           reset write permissions on OUTPUT
-
-  INPUT (default "\$ISABELLE_LOGIC") and OUTPUT specify in/out heaps.
-  These are either names to be searched in the Isabelle path, or
-  actual file names (containing at least one /).
-  If INPUT is "RAW_ML_SYSTEM", just start the bare bones ML system.
-\end{ttbox}
-
-  Input files without path specifications are looked up in the
-  @{setting ISABELLE_PATH} setting, which may consist of multiple
-  components separated by colons --- these are tried in the given
-  order with the value of @{setting ML_IDENTIFIER} appended
-  internally.  In a similar way, base names are relative to the
-  directory specified by @{setting ISABELLE_OUTPUT}.  In any case,
-  actual file locations may also be given by including at least one
-  slash (@{verbatim "/"}) in the name (hint: use @{verbatim "./"} to
-  refer to the current directory).
-*}
-
-
-subsubsection {* Options *}
-
-text {*
-  If the input heap file does not have write permission bits set, or
-  the @{verbatim "-r"} option is given explicitely, then the session
-  started will be read-only.  That is, the ML world cannot be
-  committed back into the image file.  Otherwise, a writable session
-  enables commits into either the input file, or into another output
-  heap file (if that is given as the second argument on the command
-  line).
-
-  The read-write state of sessions is determined at startup only, it
-  cannot be changed intermediately. Also note that heap images may
-  require considerable amounts of disk space (approximately
-  50--200~MB). Users are responsible for themselves to dispose their
-  heap files when they are no longer needed.
-
-  \medskip The @{verbatim "-w"} option makes the output heap file
-  read-only after terminating.  Thus subsequent invocations cause the
-  logic image to be read-only automatically.
-
-  \medskip Using the @{verbatim "-e"} option, arbitrary ML code may be
-  passed to the Isabelle session from the command line. Multiple
-  @{verbatim "-e"}'s are evaluated in the given order. Strange things
-  may happen when errorneous ML code is provided. Also make sure that
-  the ML commands are terminated properly by semicolon.
-
-  \medskip The @{verbatim "-u"} option is a shortcut for @{verbatim
-  "-e"} passing ``@{verbatim "use \"ROOT.ML\";"}'' to the ML session.
-  The @{verbatim "-f"} option passes ``@{verbatim
-  "Session.finish();"}'', which is intended mainly for administrative
-  purposes.
-
-  \medskip The @{verbatim "-m"} option adds identifiers of print modes
-  to be made active for this session. Typically, this is used by some
-  user interface, e.g.\ to enable output of proper mathematical
-  symbols.
-
-  \medskip Isabelle normally enters an interactive top-level loop
-  (after processing the @{verbatim "-e"} texts). The @{verbatim "-q"}
-  option inhibits interaction, thus providing a pure batch mode
-  facility.
-
-  \medskip The @{verbatim "-I"} option makes Isabelle enter Isar
-  interaction mode on startup, instead of the primitive ML top-level.
-  The @{verbatim "-P"} option configures the top-level loop for
-  interaction with the Proof General user interface, and the
-  @{verbatim "-X"} option enables XML-based PGIP communication.
-
-  \medskip The @{verbatim "-T"} or @{verbatim "-W"} option makes
-  Isabelle enter a special process wrapper for interaction via the
-  Isabelle/Scala layer, see also @{file
-  "~~/src/Pure/System/isabelle_process.scala"}.  The protocol between
-  the ML and JVM process is private to the implementation.
-
-  \medskip The @{verbatim "-S"} option makes the Isabelle process more
-  secure by disabling some critical operations, notably runtime
-  compilation and evaluation of ML source code.
-*}
-
-
-subsubsection {* Examples *}
-
-text {*
-  Run an interactive session of the default object-logic (as specified
-  by the @{setting ISABELLE_LOGIC} setting) like this:
-\begin{ttbox}
-isabelle-process
-\end{ttbox}
-
-  Usually @{setting ISABELLE_LOGIC} refers to one of the standard
-  logic images, which are read-only by default.  A writable session
-  --- based on @{verbatim HOL}, but output to @{verbatim Test} (in the
-  directory specified by the @{setting ISABELLE_OUTPUT} setting) ---
-  may be invoked as follows:
-\begin{ttbox}
-isabelle-process HOL Test
-\end{ttbox}
-  Ending this session normally (e.g.\ by typing control-D) dumps the
-  whole ML system state into @{verbatim Test} (be prepared for more
-  than 100\,MB):
-
-  The @{verbatim Test} session may be continued later (still in
-  writable state) by:
-\begin{ttbox}
-isabelle-process Test
-\end{ttbox}
-  A read-only @{verbatim Test} session may be started by:
-\begin{ttbox}
-isabelle-process -r Test
-\end{ttbox}
-
-  \medskip Note that manual session management like this does
-  \emph{not} provide proper setup for theory presentation.  This would
-  require @{tool usedir}.
-
-  \bigskip The next example demonstrates batch execution of Isabelle.
-  We retrieve the @{verbatim Main} theory value from the theory loader
-  within ML (observe the delicate quoting rules for the Bash shell
-  vs.\ ML):
-\begin{ttbox}
-isabelle-process -e 'Thy_Info.get_theory "Main";' -q -r HOL
-\end{ttbox}
-  Note that the output text will be interspersed with additional junk
-  messages by the ML runtime environment.  The @{verbatim "-W"} option
-  allows to communicate with the Isabelle process via an external
-  program in a more robust fashion.
-*}
-
-
-section {* The Isabelle tool wrapper \label{sec:isabelle-tool} *}
-
-text {*
-  All Isabelle related tools and interfaces are called via a common
-  wrapper --- @{executable isabelle}:
-
-\begin{ttbox}
-Usage: isabelle TOOL [ARGS ...]
-
-  Start Isabelle tool NAME with ARGS; pass "-?" for tool specific help.
-
-Available tools:
-  \dots
-\end{ttbox}
-
-  In principle, Isabelle tools are ordinary executable scripts that
-  are run within the Isabelle settings environment, see
-  \secref{sec:settings}.  The set of available tools is collected by
-  @{executable isabelle} from the directories listed in the @{setting
-  ISABELLE_TOOLS} setting.  Do not try to call the scripts directly
-  from the shell.  Neither should you add the tool directories to your
-  shell's search path!
-*}
-
-
-subsubsection {* Examples *}
-
-text {* Show the list of available documentation of the Isabelle
-  distribution:
-
-\begin{ttbox}
-  isabelle doc
-\end{ttbox}
-
-  View a certain document as follows:
-\begin{ttbox}
-  isabelle doc system
-\end{ttbox}
-
-  Query the Isabelle settings environment:
-\begin{ttbox}
-  isabelle getenv ISABELLE_HOME_USER
-\end{ttbox}
-*}
-
-end
\ No newline at end of file
--- a/doc-src/System/Thy/Interfaces.thy	Mon Aug 27 16:10:54 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,281 +0,0 @@
-theory Interfaces
-imports Base
-begin
-
-chapter {* User interfaces *}
-
-section {* Isabelle/jEdit Prover IDE \label{sec:tool-jedit} *}
-
-text {* The @{tool_def jedit} tool invokes a version of
-  jEdit\footnote{\url{http://www.jedit.org/}} that has been augmented
-  with some components to provide a fully-featured Prover IDE:
-\begin{ttbox} Usage: isabelle jedit [OPTIONS]
-  [FILES ...]
-
-  Options are:
-    -J OPTION    add JVM runtime option (default JEDIT_JAVA_OPTIONS)
-    -b           build only
-    -d DIR       include session directory
-    -f           fresh build
-    -j OPTION    add jEdit runtime option (default JEDIT_OPTIONS)
-    -l NAME      logic image name (default ISABELLE_LOGIC)
-    -m MODE      add print mode for output
-
-Start jEdit with Isabelle plugin setup and opens theory FILES
-(default Scratch.thy).
-\end{ttbox}
-
-  The @{verbatim "-l"} option specifies the session name of the logic
-  image to be used for proof processing.  Additional session root
-  directories may be included via option @{verbatim "-d"} to augment
-  that name space (see also \secref{sec:tool-build}).
-
-  The @{verbatim "-m"} option specifies additional print modes.
-
-  The @{verbatim "-J"} and @{verbatim "-j"} options allow to pass
-  additional low-level options to the JVM or jEdit, respectively.  The
-  defaults are provided by the Isabelle settings environment
-  (\secref{sec:settings}).
-
-  The @{verbatim "-b"} and @{verbatim "-f"} options control the
-  self-build mechanism of Isabelle/jEdit.  This is only relevant for
-  building from sources, which also requires an auxiliary @{verbatim
-  jedit_build}
-  component.\footnote{\url{http://isabelle.in.tum.de/components}} Note
-  that official Isabelle releases already include a version of
-  Isabelle/jEdit that is built properly.  *}
-
-
-section {* Proof General / Emacs *}
-
-text {* The @{tool_def emacs} tool invokes a version of Emacs and
-  Proof General\footnote{http://proofgeneral.inf.ed.ac.uk/} within the
-  regular Isabelle settings environment (\secref{sec:settings}).  This
-  is more convenient than starting Emacs separately, loading the Proof
-  General LISP files, and then attempting to start Isabelle with
-  dynamic @{setting PATH} lookup etc.
-
-  The actual interface script is part of the Proof General
-  distribution; its usage depends on the particular version.  There
-  are some options available, such as @{verbatim "-l"} for passing the
-  logic image to be used by default, or @{verbatim "-m"} to tune the
-  standard print mode.  The following Isabelle settings are
-  particularly important for Proof General:
-
-  \begin{description}
-
-  \item[@{setting_def PROOFGENERAL_HOME}] points to the main
-  installation directory of the Proof General distribution.  This is
-  implicitly provided for versions of Proof General that are
-  distributed as Isabelle component, see also \secref{sec:components};
-  otherwise it needs to be configured manually.
-
-  \item[@{setting_def PROOFGENERAL_OPTIONS}] is implicitly prefixed to
-  the command line of any invocation of the Proof General @{verbatim
-  interface} script.  This allows to provide persistent default
-  options for the invocation of \texttt{isabelle emacs}.
-
-  \end{description}
-*}
-
-
-section {* Plain TTY interaction \label{sec:tool-tty} *}
-
-text {*
-  The @{tool_def tty} tool runs the Isabelle process interactively
-  within a plain terminal session:
-\begin{ttbox}
-Usage: isabelle tty [OPTIONS]
-
-  Options are:
-    -l NAME      logic image name (default ISABELLE_LOGIC)
-    -m MODE      add print mode for output
-    -p NAME      line editor program name (default ISABELLE_LINE_EDITOR)
-
-  Run Isabelle process with plain tty interaction and line editor.
-\end{ttbox}
-
-  The @{verbatim "-l"} option specifies the logic image.  The
-  @{verbatim "-m"} option specifies additional print modes.  The
-  @{verbatim "-p"} option specifies an alternative line editor (such
-  as the @{executable_def rlwrap} wrapper for GNU readline); the
-  fall-back is to use raw standard input.
-
-  Regular interaction works via the standard Isabelle/Isar toplevel
-  loop.  The Isar command @{command exit} drops out into the
-  bare-bones ML system, which is occasionally useful for debugging of
-  the Isar infrastructure itself.  Invoking @{ML Isar.loop}~@{verbatim
-  "();"} in ML will return to the Isar toplevel.  *}
-
-
-
-section {* Theory graph browser \label{sec:browse} *}
-
-text {* The Isabelle graph browser is a general tool for visualizing
-  dependency graphs.  Certain nodes of the graph (i.e.\ theories) can
-  be grouped together in ``directories'', whose contents may be
-  hidden, thus enabling the user to collapse irrelevant portions of
-  information.  The browser is written in Java, it can be used both as
-  a stand-alone application and as an applet.  *}
-
-
-subsection {* Invoking the graph browser *}
-
-text {* The stand-alone version of the graph browser is wrapped up as
-  @{tool_def browser}:
-\begin{ttbox}
-Usage: isabelle browser [OPTIONS] [GRAPHFILE]
-
-  Options are:
-    -b           Admin/build only
-    -c           cleanup -- remove GRAPHFILE after use
-    -o FILE      output to FILE (ps, eps, pdf)
-\end{ttbox}
-  When no filename is specified, the browser automatically changes to
-  the directory @{setting ISABELLE_BROWSER_INFO}.
-
-  \medskip The @{verbatim "-b"} option indicates that this is for
-  administrative build only, i.e.\ no browser popup if no files are
-  given.
-
-  The @{verbatim "-c"} option causes the input file to be removed
-  after use.
-
-  The @{verbatim "-o"} option indicates batch-mode operation, with the
-  output written to the indicated file; note that @{verbatim pdf}
-  produces an @{verbatim eps} copy as well.
-
-  \medskip The applet version of the browser is part of the standard
-  WWW theory presentation, see the link ``theory dependencies'' within
-  each session index.
-*}
-
-
-subsection {* Using the graph browser *}
-
-text {*
-  The browser's main window, which is shown in
-  \figref{fig:browserwindow}, consists of two sub-windows.  In the
-  left sub-window, the directory tree is displayed. The graph itself
-  is displayed in the right sub-window.
-
-  \begin{figure}[ht]
-  \includegraphics[width=\textwidth]{browser_screenshot}
-  \caption{\label{fig:browserwindow} Browser main window}
-  \end{figure}
-*}
-
-
-subsubsection {* The directory tree window *}
-
-text {*
-  We describe the usage of the directory browser and the meaning of
-  the different items in the browser window.
-
-  \begin{itemize}
-
-  \item A red arrow before a directory name indicates that the
-  directory is currently ``folded'', i.e.~the nodes in this directory
-  are collapsed to one single node. In the right sub-window, the names
-  of nodes corresponding to folded directories are enclosed in square
-  brackets and displayed in red color.
-
-  \item A green downward arrow before a directory name indicates that
-  the directory is currently ``unfolded''. It can be folded by
-  clicking on the directory name.  Clicking on the name for a second
-  time unfolds the directory again.  Alternatively, a directory can
-  also be unfolded by clicking on the corresponding node in the right
-  sub-window.
-
-  \item Blue arrows stand before ordinary node names. When clicking on
-  such a name (i.e.\ that of a theory), the graph display window
-  focuses to the corresponding node. Double clicking invokes a text
-  viewer window in which the contents of the theory file are
-  displayed.
-
-  \end{itemize}
-*}
-
-
-subsubsection {* The graph display window *}
-
-text {*
-  When pointing on an ordinary node, an upward and a downward arrow is
-  shown.  Initially, both of these arrows are green. Clicking on the
-  upward or downward arrow collapses all predecessor or successor
-  nodes, respectively. The arrow's color then changes to red,
-  indicating that the predecessor or successor nodes are currently
-  collapsed. The node corresponding to the collapsed nodes has the
-  name ``@{verbatim "[....]"}''. To uncollapse the nodes again, simply
-  click on the red arrow or on the node with the name ``@{verbatim
-  "[....]"}''. Similar to the directory browser, the contents of
-  theory files can be displayed by double clicking on the
-  corresponding node.
-*}
-
-
-subsubsection {* The ``File'' menu *}
-
-text {*
-  Due to Java Applet security restrictions this menu is only available
-  in the full application version. The meaning of the menu items is as
-  follows:
-
-  \begin{description}
-
-  \item[Open \dots] Open a new graph file.
-
-  \item[Export to PostScript] Outputs the current graph in Postscript
-  format, appropriately scaled to fit on one single sheet of A4 paper.
-  The resulting file can be printed directly.
-
-  \item[Export to EPS] Outputs the current graph in Encapsulated
-  Postscript format. The resulting file can be included in other
-  documents.
-
-  \item[Quit] Quit the graph browser.
-
-  \end{description}
-*}
-
-
-subsection {* Syntax of graph definition files *}
-
-text {*
-  A graph definition file has the following syntax:
-
-  \begin{center}\small
-  \begin{tabular}{rcl}
-    @{text graph} & @{text "="} & @{text "{ vertex"}~@{verbatim ";"}~@{text "}+"} \\
-    @{text vertex} & @{text "="} & @{text "vertex_name vertex_ID dir_name ["}~@{verbatim "+"}~@{text "] path ["}~@{verbatim "<"}~@{text "|"}~@{verbatim ">"}~@{text "] { vertex_ID }*"}
-  \end{tabular}
-  \end{center}
-
-  The meaning of the items in a vertex description is as follows:
-
-  \begin{description}
-
-  \item[@{text vertex_name}] The name of the vertex.
-
-  \item[@{text vertex_ID}] The vertex identifier. Note that there may
-  be several vertices with equal names, whereas identifiers must be
-  unique.
-
-  \item[@{text dir_name}] The name of the ``directory'' the vertex
-  should be placed in.  A ``@{verbatim "+"}'' sign after @{text
-  dir_name} indicates that the nodes in the directory are initially
-  visible. Directories are initially invisible by default.
-
-  \item[@{text path}] The path of the corresponding theory file. This
-  is specified relatively to the path of the graph definition file.
-
-  \item[List of successor/predecessor nodes] A ``@{verbatim "<"}''
-  sign before the list means that successor nodes are listed, a
-  ``@{verbatim ">"}'' sign means that predecessor nodes are listed. If
-  neither ``@{verbatim "<"}'' nor ``@{verbatim ">"}'' is found, the
-  browser assumes that successor nodes are listed.
-
-  \end{description}
-*}
-
-end
\ No newline at end of file
--- a/doc-src/System/Thy/Misc.thy	Mon Aug 27 16:10:54 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,598 +0,0 @@
-theory Misc
-imports Base
-begin
-
-chapter {* Miscellaneous tools \label{ch:tools} *}
-
-text {*
-  Subsequently we describe various Isabelle related utilities, given
-  in alphabetical order.
-*}
-
-
-section {* Resolving Isabelle components \label{sec:tool-components} *}
-
-text {*
-  The @{tool_def components} tool resolves Isabelle components:
-\begin{ttbox}
-Usage: isabelle components [OPTIONS] [COMPONENTS ...]
-
-  Options are:
-    -R URL       component repository
-                 (default $ISABELLE_COMPONENT_REPOSITORY)
-    -a           all missing components
-    -l           list status
-
-  Resolve Isabelle components via download and installation.
-  COMPONENTS are identified via base name.
-
-  ISABELLE_COMPONENT_REPOSITORY="http://isabelle.in.tum.de/components"
-\end{ttbox}
-
-  Components are initialized as described in \secref{sec:components}
-  in a permissive manner, which can mark components as ``missing''.
-  This state is amended by letting @{tool "components"} download and
-  unpack components that are published on the default component
-  repository \url{http://isabelle.in.tum.de/components/} in
-  particular.
-
-  Option @{verbatim "-R"} specifies an alternative component
-  repository.  Note that @{verbatim "file:///"} URLs can be used for
-  local directories.
-
-  Option @{verbatim "-a"} selects all missing components to be
-  installed.  Explicit components may be named as command
-  line-arguments as well.  Note that components are uniquely
-  identified by their base name, while the installation takes place in
-  the location that was specified in the attempt to initialize the
-  component before.
-
-  Option @{verbatim "-l"} lists the current state of available and
-  missing components with their location (full name) within the
-  file-system.  *}
-
-
-section {* Displaying documents *}
-
-text {* The @{tool_def display} tool displays documents in DVI or PDF
-  format:
-\begin{ttbox}
-Usage: isabelle display [OPTIONS] FILE
-
-  Options are:
-    -c           cleanup -- remove FILE after use
-
-  Display document FILE (in DVI format).
-\end{ttbox}
-
-  \medskip The @{verbatim "-c"} option causes the input file to be
-  removed after use.  The program for viewing @{verbatim dvi} files is
-  determined by the @{setting DVI_VIEWER} setting.
-*}
-
-
-section {* Viewing documentation \label{sec:tool-doc} *}
-
-text {*
-  The @{tool_def doc} tool displays online documentation:
-\begin{ttbox}
-Usage: isabelle doc [DOC]
-
-  View Isabelle documentation DOC, or show list of available documents.
-\end{ttbox}
-  If called without arguments, it lists all available documents. Each
-  line starts with an identifier, followed by a short description. Any
-  of these identifiers may be specified as the first argument in order
-  to have the corresponding document displayed.
-
-  \medskip The @{setting ISABELLE_DOCS} setting specifies the list of
-  directories (separated by colons) to be scanned for documentations.
-  The program for viewing @{verbatim dvi} files is determined by the
-  @{setting DVI_VIEWER} setting.
-*}
-
-
-section {* Shell commands within the settings environment \label{sec:tool-env} *}
-
-text {* The @{tool_def env} tool is a direct wrapper for the standard
-  @{verbatim "/usr/bin/env"} command on POSIX systems, running within
-  the Isabelle settings environment (\secref{sec:settings}).
-
-  The command-line arguments are that of the underlying version of
-  @{verbatim env}.  For example, the following invokes an instance of
-  the GNU Bash shell within the Isabelle environment:
-\begin{alltt}
-  isabelle env bash
-\end{alltt}
-*}
-
-
-section {* Getting logic images *}
-
-text {* The @{tool_def findlogics} tool traverses all directories
-  specified in @{setting ISABELLE_PATH}, looking for Isabelle logic
-  images. Its usage is:
-\begin{ttbox}
-Usage: isabelle findlogics
-
-  Collect heap file names from ISABELLE_PATH.
-\end{ttbox}
-
-  The base names of all files found on the path are printed --- sorted
-  and with duplicates removed. Also note that lookup in @{setting
-  ISABELLE_PATH} includes the current values of @{setting ML_SYSTEM}
-  and @{setting ML_PLATFORM}. Thus switching to another ML compiler
-  may change the set of logic images available.
-*}
-
-
-section {* Inspecting the settings environment \label{sec:tool-getenv} *}
-
-text {* The Isabelle settings environment --- as provided by the
-  site-default and user-specific settings files --- can be inspected
-  with the @{tool_def getenv} tool:
-\begin{ttbox}
-Usage: isabelle getenv [OPTIONS] [VARNAMES ...]
-
-  Options are:
-    -a           display complete environment
-    -b           print values only (doesn't work for -a)
-    -d FILE      dump complete environment to FILE
-                 (null terminated entries)
-
-  Get value of VARNAMES from the Isabelle settings.
-\end{ttbox}
-
-  With the @{verbatim "-a"} option, one may inspect the full process
-  environment that Isabelle related programs are run in. This usually
-  contains much more variables than are actually Isabelle settings.
-  Normally, output is a list of lines of the form @{text
-  name}@{verbatim "="}@{text value}. The @{verbatim "-b"} option
-  causes only the values to be printed.
-
-  Option @{verbatim "-d"} produces a dump of the complete environment
-  to the specified file.  Entries are terminated by the ASCII null
-  character, i.e.\ the C string terminator.
-*}
-
-
-subsubsection {* Examples *}
-
-text {* Get the location of @{setting ISABELLE_HOME_USER} where
-  user-specific information is stored:
-\begin{ttbox}
-isabelle getenv ISABELLE_HOME_USER
-\end{ttbox}
-
-  \medskip Get the value only of the same settings variable, which is
-particularly useful in shell scripts:
-\begin{ttbox}
-isabelle getenv -b ISABELLE_OUTPUT
-\end{ttbox}
-*}
-
-
-section {* Installing standalone Isabelle executables \label{sec:tool-install} *}
-
-text {* By default, the main Isabelle binaries (@{executable
-  "isabelle"} etc.)  are just run from their location within the
-  distribution directory, probably indirectly by the shell through its
-  @{setting PATH}.  Other schemes of installation are supported by the
-  @{tool_def install} tool:
-\begin{ttbox}
-Usage: isabelle install [OPTIONS]
-
-  Options are:
-    -d DISTDIR   use DISTDIR as Isabelle distribution
-                 (default ISABELLE_HOME)
-    -p DIR       install standalone binaries in DIR
-
-  Install Isabelle executables with absolute references to the current
-  distribution directory.
-\end{ttbox}
-
-  The @{verbatim "-d"} option overrides the current Isabelle
-  distribution directory as determined by @{setting ISABELLE_HOME}.
-
-  The @{verbatim "-p"} option installs executable wrapper scripts for
-  @{executable "isabelle-process"}, @{executable isabelle}, containing
-  proper absolute references to the Isabelle distribution directory.
-  A typical @{verbatim DIR} specification would be some directory
-  expected to be in the shell's @{setting PATH}, such as @{verbatim
-  "$HOME/bin"}.
-
-  It is possible to make symbolic links of the main Isabelle
-  executables, but making separate copies outside the Isabelle
-  distribution directory will not work.
-*}
-
-
-section {* Creating instances of the Isabelle logo *}
-
-text {* The @{tool_def logo} tool creates any instance of the generic
-  Isabelle logo as EPS or PDF.
-\begin{ttbox}
-Usage: isabelle logo [OPTIONS] NAME
-
-  Create instance NAME of the Isabelle logo (as EPS or PDF).
-
-  Options are:
-    -o OUTFILE   specify output file and format
-                 (default "isabelle_name.pdf")
-    -q           quiet mode
-\end{ttbox}
-
-  Option @{verbatim "-o"} specifies an explicit output file name and
-  format, e.g.\ @{verbatim "mylogo.eps"} for an EPS logo.  The default
-  is @{verbatim "isabelle_"}@{text name}@{verbatim ".pdf"}, with the
-  lower-case version of the given name and PDF output.
-
-  Option @{verbatim "-q"} omits printing of the result file name.
-
-  \medskip Implementors of Isabelle tools and applications are
-  encouraged to make derived Isabelle logos for their own projects
-  using this template.  *}
-
-
-section {* Isabelle wrapper for make \label{sec:tool-make} *}
-
-text {* The old @{tool_def make} tool is a very simple wrapper for
-  ordinary Unix @{executable make}:
-\begin{ttbox}
-Usage: isabelle make [ARGS ...]
-
-  Compile the logic in current directory using IsaMakefile.
-  ARGS are directly passed to the system make program.
-\end{ttbox}
-
-  Note that the Isabelle settings environment is also active. Thus one
-  may refer to its values within the @{verbatim IsaMakefile}, e.g.\
-  @{verbatim "$(ISABELLE_HOME)"}. Furthermore, programs started from
-  the make file also inherit this environment.
-*}
-
-
-section {* Creating Isabelle session directories
-  \label{sec:tool-mkdir} *}
-
-text {* The old @{tool_def mkdir} tool prepares Isabelle session
-  source directories, including a sensible default setup of @{verbatim
-  IsaMakefile}, @{verbatim ROOT.ML}, and a @{verbatim document}
-  directory with a minimal @{verbatim root.tex} that is sufficient to
-  print all theories of the session (in the order of appearance); see
-  \secref{sec:tool-document} for further information on Isabelle
-  document preparation.  The usage of @{tool mkdir} is:
-
-\begin{ttbox}
-Usage: isabelle mkdir [OPTIONS] [LOGIC] NAME
-
-  Options are:
-    -I FILE      alternative IsaMakefile output
-    -P           include parent logic target
-    -b           setup build mode (session outputs heap image)
-    -q           quiet mode
-
-  Prepare session directory, including IsaMakefile and document source,
-  with parent LOGIC (default ISABELLE_LOGIC=\$ISABELLE_LOGIC)
-\end{ttbox}
-
-  The @{tool mkdir} tool is conservative in the sense that any
-  existing @{verbatim IsaMakefile} etc.\ is left unchanged.  Thus it
-  is safe to invoke it multiple times, although later runs may not
-  have the desired effect.
-
-  Note that @{tool mkdir} is unable to change @{verbatim IsaMakefile}
-  incrementally --- manual changes are required for multiple
-  sub-sessions.  On order to get an initial working session, the only
-  editing needed is to add appropriate @{ML use_thy} calls to the
-  generated @{verbatim ROOT.ML} file.
-*}
-
-
-subsubsection {* Options *}
-
-text {*
-  The @{verbatim "-I"} option specifies an alternative to @{verbatim
-  IsaMakefile} for dependencies.  Note that ``@{verbatim "-"}'' refers
-  to \emph{stdout}, i.e.\ ``@{verbatim "-I-"}'' provides an easy way
-  to peek at @{tool mkdir}'s idea of @{tool make} setup required for
-  some particular of Isabelle session.
-
-  \medskip The @{verbatim "-P"} option includes a target for the
-  parent @{verbatim LOGIC} session in the generated @{verbatim
-  IsaMakefile}.  The corresponding sources are assumed to be located
-  within the Isabelle distribution.
-
-  \medskip The @{verbatim "-b"} option sets up the current directory
-  as the base for a new session that provides an actual logic image,
-  as opposed to one that only runs several theories based on an
-  existing image.  Note that in the latter case, everything except
-  @{verbatim IsaMakefile} would be placed into a separate directory
-  @{verbatim NAME}, rather than the current one.  See
-  \secref{sec:tool-usedir} for further information on \emph{build
-  mode} vs.\ \emph{example mode} of @{tool usedir}.
-
-  \medskip The @{verbatim "-q"} option enables quiet mode, suppressing
-  further notes on how to proceed.
-*}
-
-
-section {* Printing documents *}
-
-text {*
-  The @{tool_def print} tool prints documents:
-\begin{ttbox}
-Usage: isabelle print [OPTIONS] FILE
-
-  Options are:
-    -c           cleanup -- remove FILE after use
-
-  Print document FILE.
-\end{ttbox}
-
-  The @{verbatim "-c"} option causes the input file to be removed
-  after use.  The printer spool command is determined by the @{setting
-  PRINT_COMMAND} setting.
-*}
-
-
-section {* Remove awkward symbol names from theory sources *}
-
-text {*
-  The @{tool_def unsymbolize} tool tunes Isabelle theory sources to
-  improve readability for plain ASCII output (e.g.\ in email
-  communication).  Most notably, @{tool unsymbolize} replaces awkward
-  arrow symbols such as @{verbatim "\\"}@{verbatim "<Longrightarrow>"}
-  by @{verbatim "==>"}.
-\begin{ttbox}
-Usage: isabelle unsymbolize [FILES|DIRS...]
-
-  Recursively find .thy/.ML files, removing unreadable symbol names.
-  Note: this is an ad-hoc script; there is no systematic way to replace
-  symbols independently of the inner syntax of a theory!
-
-  Renames old versions of FILES by appending "~~".
-\end{ttbox}
-*}
-
-
-section {* Running Isabelle sessions \label{sec:tool-usedir} *}
-
-text {* The old @{tool_def usedir} tool builds object-logic images, or
-  runs example sessions based on existing logics. Its usage is:
-\begin{ttbox}
-Usage: isabelle usedir [OPTIONS] LOGIC NAME
-
-  Options are:
-    -C BOOL      copy existing document directory to -D PATH (default true)
-    -D PATH      dump generated document sources into PATH
-    -M MAX       multithreading: maximum number of worker threads (default 1)
-    -P PATH      set path for remote theory browsing information
-    -Q INT       set threshold for sub-proof parallelization (default 50)
-    -T LEVEL     multithreading: trace level (default 0)
-    -V VARIANT   declare alternative document VARIANT
-    -b           build mode (output heap image, using current dir)
-    -d FORMAT    build document as FORMAT (default false)
-    -f NAME      use ML file NAME (default ROOT.ML)
-    -g BOOL      generate session graph image for document (default false)
-    -i BOOL      generate theory browser information (default false)
-    -m MODE      add print mode for output
-    -p LEVEL     set level of detail for proof objects (default 0)
-    -q LEVEL     set level of parallel proof checking (default 1)
-    -r           reset session path
-    -s NAME      override session NAME
-    -t BOOL      internal session timing (default false)
-    -v BOOL      be verbose (default false)
-
-  Build object-logic or run examples. Also creates browsing
-  information (HTML etc.) according to settings.
-
-  ISABELLE_USEDIR_OPTIONS=...
-
-  ML_PLATFORM=...
-  ML_HOME=...
-  ML_SYSTEM=...
-  ML_OPTIONS=...
-\end{ttbox}
-
-  Note that the value of the @{setting_ref ISABELLE_USEDIR_OPTIONS}
-  setting is implicitly prefixed to \emph{any} @{tool usedir}
-  call. Since the @{verbatim IsaMakefile}s of all object-logics
-  distributed with Isabelle just invoke @{tool usedir} for the real
-  work, one may control compilation options globally via above
-  variable. In particular, generation of \rmindex{HTML} browsing
-  information and document preparation is controlled here.
-*}
-
-
-subsubsection {* Options *}
-
-text {*
-  Basically, there are two different modes of operation: \emph{build
-  mode} (enabled through the @{verbatim "-b"} option) and
-  \emph{example mode} (default).
-
-  Calling @{tool usedir} with @{verbatim "-b"} runs @{executable
-  "isabelle-process"} with input image @{verbatim LOGIC} and output to
-  @{verbatim NAME}, as provided on the command line. This will be a
-  batch session, running @{verbatim ROOT.ML} from the current
-  directory and then quitting.  It is assumed that @{verbatim ROOT.ML}
-  contains all ML commands required to build the logic.
-
-  In example mode, @{tool usedir} runs a read-only session of
-  @{verbatim LOGIC} and automatically runs @{verbatim ROOT.ML} from
-  within directory @{verbatim NAME}.  It assumes that this file
-  contains appropriate ML commands to run the desired examples.
-
-  \medskip The @{verbatim "-i"} option controls theory browser data
-  generation. It may be explicitly turned on or off --- as usual, the
-  last occurrence of @{verbatim "-i"} on the command line wins.
-
-  The @{verbatim "-P"} option specifies a path (or actual URL) to be
-  prefixed to any \emph{non-local} reference of existing theories.
-  Thus user sessions may easily link to existing Isabelle libraries
-  already present on the WWW.
-
-  The @{verbatim "-m"} options specifies additional print modes to be
-  activated temporarily while the session is processed.
-
-  \medskip The @{verbatim "-d"} option controls document preparation.
-  Valid arguments are @{verbatim false} (do not prepare any document;
-  this is default), or any of @{verbatim dvi}, @{verbatim dvi.gz},
-  @{verbatim ps}, @{verbatim ps.gz}, @{verbatim pdf}.  The logic
-  session has to provide a properly setup @{verbatim document}
-  directory.  See \secref{sec:tool-document} and
-  \secref{sec:tool-latex} for more details.
-
-  \medskip The @{verbatim "-V"} option declares alternative document
-  variants, consisting of name/tags pairs (cf.\ options @{verbatim
-  "-n"} and @{verbatim "-t"} of @{tool_ref document}).  The standard
-  document is equivalent to ``@{verbatim
-  "document=theory,proof,ML"}'', which means that all theory begin/end
-  commands, proof body texts, and ML code will be presented
-  faithfully.
-
-  An alternative variant ``@{verbatim "outline=/proof/ML"}'' would
-  fold proof and ML parts, replacing the original text by a short
-  place-holder.  The form ``@{text name}@{verbatim "=-"},'' means to
-  remove document @{text name} from the list of variants to be
-  processed.  Any number of @{verbatim "-V"} options may be given;
-  later declarations have precedence over earlier ones.
-
-  Some document variant @{text name} may use an alternative {\LaTeX}
-  entry point called @{verbatim "document/root_"}@{text
-  "name"}@{verbatim ".tex"} if that file exists; otherwise the common
-  @{verbatim "document/root.tex"} is used.
-
-  \medskip The @{verbatim "-g"} option produces images of the theory
-  dependency graph (cf.\ \secref{sec:browse}) for inclusion in the
-  generated document, both as @{verbatim session_graph.eps} and
-  @{verbatim session_graph.pdf} at the same time.  To include this in
-  the final {\LaTeX} document one could say @{verbatim
-  "\\includegraphics{session_graph}"} in @{verbatim
-  "document/root.tex"} (omitting the file-name extension enables
-  {\LaTeX} to select to correct version, either for the DVI or PDF
-  output path).
-
-  \medskip The @{verbatim "-D"} option causes the generated document
-  sources to be dumped at location @{verbatim PATH}; this path is
-  relative to the session's main directory.  If the @{verbatim "-C"}
-  option is true, this will include a copy of an existing @{verbatim
-  document} directory as provided by the user.  For example, @{tool
-  usedir}~@{verbatim "-D generated HOL Foo"} produces a complete set
-  of document sources at @{verbatim "Foo/generated"}.  Subsequent
-  invocation of @{tool document}~@{verbatim "Foo/generated"} (see also
-  \secref{sec:tool-document}) will process the final result
-  independently of an Isabelle job.  This decoupled mode of operation
-  facilitates debugging of serious {\LaTeX} errors, for example.
-
-  \medskip The @{verbatim "-p"} option determines the level of detail
-  for internal proof objects, see also the \emph{Isabelle Reference
-  Manual}~\cite{isabelle-ref}.
-
-  \medskip The @{verbatim "-q"} option specifies the level of parallel
-  proof checking: @{verbatim 0} no proofs, @{verbatim 1} toplevel
-  proofs (default), @{verbatim 2} toplevel and nested Isar proofs.
-  The option @{verbatim "-Q"} specifies a threshold for @{verbatim
-  "-q2"}: nested proofs are only parallelized when the current number
-  of forked proofs falls below the given value (default 50),
-  multiplied by the number of worker threads (see option @{verbatim
-  "-M"}).
-
-  \medskip The @{verbatim "-t"} option produces a more detailed
-  internal timing report of the session.
-
-  \medskip The @{verbatim "-v"} option causes additional information
-  to be printed while running the session, notably the location of
-  prepared documents.
-
-  \medskip The @{verbatim "-M"} option specifies the maximum number of
-  parallel worker threads used for processing independent tasks when
-  checking theory sources (multithreading only works on suitable ML
-  platforms).  The special value of @{verbatim 0} or @{verbatim max}
-  refers to the number of actual CPU cores of the underlying machine,
-  which is a good starting point for optimal performance tuning.  The
-  @{verbatim "-T"} option determines the level of detail in tracing
-  output concerning the internal locking and scheduling in
-  multithreaded operation.  This may be helpful in isolating
-  performance bottle-necks, e.g.\ due to excessive wait states when
-  locking critical code sections.
-
-  \medskip Any @{tool usedir} session is named by some \emph{session
-  identifier}. These accumulate, documenting the way sessions depend
-  on others. For example, consider @{verbatim "Pure/FOL/ex"}, which
-  refers to the examples of FOL, which in turn is built upon Pure.
-
-  The current session's identifier is by default just the base name of
-  the @{verbatim LOGIC} argument (in build mode), or of the @{verbatim
-  NAME} argument (in example mode). This may be overridden explicitly
-  via the @{verbatim "-s"} option.
-*}
-
-
-section {* Output the version identifier of the Isabelle distribution *}
-
-text {*
-  The @{tool_def version} tool displays Isabelle version information:
-\begin{ttbox}
-Usage: isabelle version [OPTIONS]
-
-  Options are:
-    -i           short identification (derived from Mercurial id)
-
-  Display Isabelle version information.
-\end{ttbox}
-
-  \medskip The default is to output the full version string of the
-  Isabelle distribution, e.g.\ ``@{verbatim "Isabelle2012: May 2012"}.
-
-  The @{verbatim "-i"} option produces a short identification derived
-  from the Mercurial id of the @{setting ISABELLE_HOME} directory.
-*}
-
-
-section {* Convert XML to YXML *}
-
-text {*
-  The @{tool_def yxml} tool converts a standard XML document (stdin)
-  to the much simpler and more efficient YXML format of Isabelle
-  (stdout).  The YXML format is defined as follows.
-
-  \begin{enumerate}
-
-  \item The encoding is always UTF-8.
-
-  \item Body text is represented verbatim (no escaping, no special
-  treatment of white space, no named entities, no CDATA chunks, no
-  comments).
-
-  \item Markup elements are represented via ASCII control characters
-  @{text "\<^bold>X = 5"} and @{text "\<^bold>Y = 6"} as follows:
-
-  \begin{tabular}{ll}
-    XML & YXML \\\hline
-    @{verbatim "<"}@{text "name attribute"}@{verbatim "="}@{text "value \<dots>"}@{verbatim ">"} &
-    @{text "\<^bold>X\<^bold>Yname\<^bold>Yattribute"}@{verbatim "="}@{text "value\<dots>\<^bold>X"} \\
-    @{verbatim "</"}@{text name}@{verbatim ">"} & @{text "\<^bold>X\<^bold>Y\<^bold>X"} \\
-  \end{tabular}
-
-  There is no special case for empty body text, i.e.\ @{verbatim
-  "<foo/>"} is treated like @{verbatim "<foo></foo>"}.  Also note that
-  @{text "\<^bold>X"} and @{text "\<^bold>Y"} may never occur in
-  well-formed XML documents.
-
-  \end{enumerate}
-
-  Parsing YXML is pretty straight-forward: split the text into chunks
-  separated by @{text "\<^bold>X"}, then split each chunk into
-  sub-chunks separated by @{text "\<^bold>Y"}.  Markup chunks start
-  with an empty sub-chunk, and a second empty sub-chunk indicates
-  close of an element.  Any other non-empty chunk consists of plain
-  text.  For example, see @{file "~~/src/Pure/PIDE/yxml.ML"} or
-  @{file "~~/src/Pure/PIDE/yxml.scala"}.
-
-  YXML documents may be detected quickly by checking that the first
-  two characters are @{text "\<^bold>X\<^bold>Y"}.
-*}
-
-end
\ No newline at end of file
--- a/doc-src/System/Thy/Presentation.thy	Mon Aug 27 16:10:54 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,319 +0,0 @@
-theory Presentation
-imports Base
-begin
-
-chapter {* Presenting theories \label{ch:present} *}
-
-text {* Isabelle provides several ways to present the outcome of
-  formal developments, including WWW-based browsable libraries or
-  actual printable documents.  Presentation is centered around the
-  concept of \emph{sessions} (\chref{ch:session}).  The global session
-  structure is that of a tree, with Isabelle Pure at its root, further
-  object-logics derived (e.g.\ HOLCF from HOL, and HOL from Pure), and
-  application sessions further on in the hierarchy.
-
-  The tools @{tool_ref mkroot} and @{tool_ref build} provide the
-  primary means for managing Isabelle sessions, including proper setup
-  for presentation; @{tool build} takes care to have @{executable_ref
-  "isabelle-process"} run any additional stages required for document
-  preparation, notably the @{tool_ref document} and @{tool_ref latex}.
-  The complete tool chain for managing batch-mode Isabelle sessions is
-  illustrated in \figref{fig:session-tools}.
-
-  \begin{figure}[htbp]
-  \begin{center}
-  \begin{tabular}{lp{0.6\textwidth}}
-
-      @{tool_ref mkroot} & invoked once by the user to initialize the
-      session @{verbatim ROOT} with optional @{verbatim document}
-      directory; \\
-
-      @{tool_ref build} & invoked repeatedly by the user to keep
-      session output up-to-date (HTML, documents etc.); \\
-
-      @{executable "isabelle-process"} & run through @{tool_ref
-      build}; \\
-
-      @{tool_ref document} & run by the Isabelle process if document
-      preparation is enabled; \\
-
-      @{tool_ref latex} & universal {\LaTeX} tool wrapper invoked
-      multiple times by @{tool_ref document}; also useful for manual
-      experiments; \\
-
-  \end{tabular}
-  \caption{The tool chain of Isabelle session presentation} \label{fig:session-tools}
-  \end{center}
-  \end{figure}
-*}
-
-
-section {* Generating theory browser information \label{sec:info} *}
-
-text {*
-  \index{theory browsing information|bold}
-
-  As a side-effect of building sessions, Isabelle is able to generate
-  theory browsing information, including HTML documents that show the
-  theory sources and the relationship with its ancestors and
-  descendants.  Besides the HTML file that is generated for every
-  theory, Isabelle stores links to all theories in an index
-  file. These indexes are linked with other indexes to represent the
-  overall tree structure of the sessions.
-
-  Isabelle also generates graph files that represent the theory
-  dependencies within a session.  There is a graph browser Java applet
-  embedded in the generated HTML pages, and also a stand-alone
-  application that allows browsing theory graphs without having to
-  start a WWW client first.  The latter version also includes features
-  such as generating Postscript files, which are not available in the
-  applet version.  See \secref{sec:browse} for further information.
-
-  \medskip
-
-  The easiest way to let Isabelle generate theory browsing information
-  for existing sessions is to invoke @{tool build} with suitable
-  options:
-
-\begin{ttbox}
-isabelle build -o browser_info -v -c FOL
-\end{ttbox}
-
-  The presentation output will appear in @{verbatim
-  "$ISABELLE_BROWSER_INFO/FOL"} as reported by the above verbose
-  invocation of the build process.
-
-  Many Isabelle sessions (such as @{verbatim "HOL-Library"} in @{file
-  "~~/src/HOL/Library"}) also provide actual printable documents.
-  These are prepared automatically as well if enabled like this:
-\begin{ttbox}
-isabelle build -o browser_info -o document=pdf -v -c HOL-Library
-\end{ttbox}
-
-  Enabling both browser info and document preparation simultaneously
-  causes an appropriate ``document'' link to be included in the HTML
-  index.  Documents may be generated independently of browser
-  information as well, see \secref{sec:tool-document} for further
-  details.
-
-  \bigskip The theory browsing information is stored in a
-  sub-directory directory determined by the @{setting_ref
-  ISABELLE_BROWSER_INFO} setting plus a prefix corresponding to the
-  session identifier (according to the tree structure of sub-sessions
-  by default).  In order to present Isabelle applications on the web,
-  the corresponding subdirectory from @{setting ISABELLE_BROWSER_INFO}
-  can be put on a WWW server.
-*}
-
-section {* Preparing session root directories \label{sec:tool-mkroot} *}
-
-text {* The @{tool_def mkroot} tool configures a given directory as
-  session root, with some @{verbatim ROOT} file and optional document
-  source directory.  Its usage is:
-\begin{ttbox}
-Usage: isabelle mkroot [OPTIONS] [DIR]
-
-  Options are:
-    -d           enable document preparation
-    -n NAME      alternative session name (default: DIR base name)
-
-  Prepare session root DIR (default: current directory).
-\end{ttbox}
-
-  The results are placed in the given directory @{text dir}, which
-  refers to the current directory by default.  The @{tool mkroot} tool
-  is conservative in the sense that it does not overwrite existing
-  files or directories.  Earlier attempts to generate a session root
-  need to be deleted manually.
-
-  \medskip Option @{verbatim "-d"} indicates that the session shall be
-  accompanied by a formal document, with @{text dir}@{verbatim
-  "/document/root.tex"} as its {\LaTeX} entry point (see also
-  \chref{ch:present}).
-
-  Option @{verbatim "-n"} allows to specify an alternative session
-  name; otherwise the base name of the given directory is used.
-
-  \medskip The implicit Isabelle settings variable @{setting
-  ISABELLE_LOGIC} specifies the parent session, and @{setting
-  ISABELLE_DOCUMENT_FORMAT} the document format to be filled filled
-  into the generated @{verbatim ROOT} file.  *}
-
-
-subsubsection {* Examples *}
-
-text {* Produce session @{verbatim Test} (with document preparation)
-  within a separate directory of the same name:
-\begin{ttbox}
-isabelle mkroot -d Test && isabelle build -D Test
-\end{ttbox}
-
-  \medskip Upgrade the current directory into a session ROOT with
-  document preparation, and build it:
-\begin{ttbox}
-isabelle mkroot -d && isabelle build -D .
-\end{ttbox}
-*}
-
-
-section {* Preparing Isabelle session documents
-  \label{sec:tool-document} *}
-
-text {* The @{tool_def document} tool prepares logic session
-  documents, processing the sources both as provided by the user and
-  generated by Isabelle.  Its usage is:
-\begin{ttbox}
-Usage: isabelle document [OPTIONS] [DIR]
-
-  Options are:
-    -c           cleanup -- be aggressive in removing old stuff
-    -n NAME      specify document name (default 'document')
-    -o FORMAT    specify output format: dvi (default), dvi.gz, ps,
-                 ps.gz, pdf
-    -t TAGS      specify tagged region markup
-
-  Prepare the theory session document in DIR (default 'document')
-  producing the specified output format.
-\end{ttbox}
-  This tool is usually run automatically as part of the Isabelle build
-  process, provided document preparation has been enabled via suitable
-  options.  It may be manually invoked on the generated browser
-  information document output as well, e.g.\ in case of errors
-  encountered in the batch run.
-
-  \medskip The @{verbatim "-c"} option tells @{tool document} to
-  dispose the document sources after successful operation!  This is
-  the right thing to do for sources generated by an Isabelle process,
-  but take care of your files in manual document preparation!
-
-  \medskip The @{verbatim "-n"} and @{verbatim "-o"} option specify
-  the final output file name and format, the default is ``@{verbatim
-  document.dvi}''.  Note that the result will appear in the parent of
-  the target @{verbatim DIR}.
-
-  \medskip The @{verbatim "-t"} option tells {\LaTeX} how to interpret
-  tagged Isabelle command regions.  Tags are specified as a comma
-  separated list of modifier/name pairs: ``@{verbatim "+"}@{text
-  foo}'' (or just ``@{text foo}'') means to keep, ``@{verbatim
-  "-"}@{text foo}'' to drop, and ``@{verbatim "/"}@{text foo}'' to
-  fold text tagged as @{text foo}.  The builtin default is equivalent
-  to the tag specification ``@{verbatim
-  "+theory,+proof,+ML,+visible,-invisible"}''; see also the {\LaTeX}
-  macros @{verbatim "\\isakeeptag"}, @{verbatim "\\isadroptag"}, and
-  @{verbatim "\\isafoldtag"}, in @{file
-  "~~/lib/texinputs/isabelle.sty"}.
-
-  \medskip Document preparation requires a @{verbatim document}
-  directory within the session sources.  This directory is supposed to
-  contain all the files needed to produce the final document --- apart
-  from the actual theories which are generated by Isabelle.
-
-  \medskip For most practical purposes, @{tool document} is smart
-  enough to create any of the specified output formats, taking
-  @{verbatim root.tex} supplied by the user as a starting point.  This
-  even includes multiple runs of {\LaTeX} to accommodate references
-  and bibliographies (the latter assumes @{verbatim root.bib} within
-  the same directory).
-
-  In more complex situations, a separate @{verbatim build} script for
-  the document sources may be given.  It is invoked with command-line
-  arguments for the document format and the document variant name.
-  The script needs to produce corresponding output files, e.g.\
-  @{verbatim root.pdf} for target format @{verbatim pdf} (and default
-  default variants).  The main work can be again delegated to @{tool
-  latex}, but it is also possible to harvest generated {\LaTeX}
-  sources and copy them elsewhere, for example.
-
-  \medskip When running the session, Isabelle copies the content of
-  the original @{verbatim document} directory into its proper place
-  within @{setting ISABELLE_BROWSER_INFO}, according to the session
-  path and document variant.  Then, for any processed theory @{text A}
-  some {\LaTeX} source is generated and put there as @{text
-  A}@{verbatim ".tex"}.  Furthermore, a list of all generated theory
-  files is put into @{verbatim session.tex}.  Typically, the root
-  {\LaTeX} file provided by the user would include @{verbatim
-  session.tex} to get a document containing all the theories.
-
-  The {\LaTeX} versions of the theories require some macros defined in
-  @{file "~~/lib/texinputs/isabelle.sty"}.  Doing @{verbatim
-  "\\usepackage{isabelle}"} in @{verbatim root.tex} should be fine;
-  the underlying @{tool latex} already includes an appropriate path
-  specification for {\TeX} inputs.
-
-  If the text contains any references to Isabelle symbols (such as
-  @{verbatim "\\"}@{verbatim "<forall>"}) then @{verbatim
-  "isabellesym.sty"} should be included as well.  This package
-  contains a standard set of {\LaTeX} macro definitions @{verbatim
-  "\\isasym"}@{text foo} corresponding to @{verbatim "\\"}@{verbatim
-  "<"}@{text foo}@{verbatim ">"}, see \cite{isabelle-implementation} for a
-  complete list of predefined Isabelle symbols.  Users may invent
-  further symbols as well, just by providing {\LaTeX} macros in a
-  similar fashion as in @{file "~~/lib/texinputs/isabellesym.sty"} of
-  the distribution.
-
-  For proper setup of DVI and PDF documents (with hyperlinks and
-  bookmarks), we recommend to include @{file
-  "~~/lib/texinputs/pdfsetup.sty"} as well.
-
-  \medskip As a final step of Isabelle document preparation, @{tool
-  document}~@{verbatim "-c"} is run on the resulting copy of the
-  @{verbatim document} directory.  Thus the actual output document is
-  built and installed in its proper place.  The generated sources are
-  deleted after successful run of {\LaTeX} and friends.
-
-  Some care is needed if the document output location is configured
-  differently, say within a directory whose content is still required
-  afterwards!
-*}
-
-
-section {* Running {\LaTeX} within the Isabelle environment
-  \label{sec:tool-latex} *}
-
-text {* The @{tool_def latex} tool provides the basic interface for
-  Isabelle document preparation.  Its usage is:
-\begin{ttbox}
-Usage: isabelle latex [OPTIONS] [FILE]
-
-  Options are:
-    -o FORMAT    specify output format: dvi (default), dvi.gz, ps,
-                 ps.gz, pdf, bbl, idx, sty, syms
-
-  Run LaTeX (and related tools) on FILE (default root.tex),
-  producing the specified output format.
-\end{ttbox}
-
-  Appropriate {\LaTeX}-related programs are run on the input file,
-  according to the given output format: @{executable latex},
-  @{executable pdflatex}, @{executable dvips}, @{executable bibtex}
-  (for @{verbatim bbl}), and @{executable makeindex} (for @{verbatim
-  idx}).  The actual commands are determined from the settings
-  environment (@{setting ISABELLE_LATEX} etc.).
-
-  The @{verbatim sty} output format causes the Isabelle style files to
-  be updated from the distribution.  This is useful in special
-  situations where the document sources are to be processed another
-  time by separate tools.
-
-  The @{verbatim syms} output is for internal use; it generates lists
-  of symbols that are available without loading additional {\LaTeX}
-  packages.
-*}
-
-
-subsubsection {* Examples *}
-
-text {* Invoking @{tool latex} by hand may be occasionally useful when
-  debugging failed attempts of the automatic document preparation
-  stage of batch-mode Isabelle.  The abortive process leaves the
-  sources at a certain place within @{setting ISABELLE_BROWSER_INFO},
-  see the runtime error message for details.  This enables users to
-  inspect {\LaTeX} runs in further detail, e.g.\ like this:
-
-\begin{ttbox}
-  cd ~/.isabelle/IsabelleXXXX/browser_info/HOL/Test/document
-  isabelle latex -o pdf
-\end{ttbox}
-*}
-
-end
\ No newline at end of file
--- a/doc-src/System/Thy/Scala.thy	Mon Aug 27 16:10:54 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-theory Scala
-imports Base
-begin
-
-chapter {* Isabelle/Scala development tools *}
-
-text {* Isabelle/ML and Isabelle/Scala are the two main language
-environments for Isabelle tool implementations.  There are some basic
-command-line tools to work with the underlying Java Virtual Machine,
-the Scala toplevel and compiler.  Note that Isabelle/jEdit
-(\secref{sec:tool-tty}) provides a Scala Console for interactive
-experimentation within the running application. *}
-
-
-section {* Java Runtime Environment within Isabelle \label{sec:tool-java} *}
-
-text {* The @{tool_def java} tool is a direct wrapper for the Java
-  Runtime Environment, within the regular Isabelle settings
-  environment (\secref{sec:settings}).  The command line arguments are
-  that of the underlying Java version.  It is run in @{verbatim
-  "-server"} mode if possible, to improve performance (at the cost of
-  extra startup time).
-
-  The @{verbatim java} executable is the one within @{setting
-  ISABELLE_JDK_HOME}, according to the standard directory layout for
-  official JDK distributions.  The class loader is augmented such that
-  the name space of @{verbatim "Isabelle/Pure.jar"} is available,
-  which is the main Isabelle/Scala module.
-
-  For example, the following command-line invokes the main method of
-  class @{verbatim isabelle.GUI_Setup}, which opens a windows with
-  some diagnostic information about the Isabelle environment:
-\begin{alltt}
-  isabelle java isabelle.GUI_Setup
-\end{alltt}
-*}
-
-
-section {* Scala toplevel \label{sec:tool-scala} *}
-
-text {* The @{tool_def scala} tool is a direct wrapper for the Scala
-  toplevel; see also @{tool java} above.  The command line arguments
-  are that of the underlying Scala version.
-
-  This allows to interact with Isabelle/Scala in TTY mode like this:
-\begin{alltt}
-  isabelle scala
-  scala> isabelle.Isabelle_System.getenv("ISABELLE_HOME")
-  scala> val options = isabelle.Options.init()
-  scala> options.bool("browser_info")
-\end{alltt}
-*}
-
-
-section {* Scala compiler \label{sec:tool-scalac} *}
-
-text {* The @{tool_def scalac} tool is a direct wrapper for the Scala
-  compiler; see also @{tool scala} above.  The command line arguments
-  are that of the underlying Scala version.
-
-  This allows to compile further Scala modules, depending on existing
-  Isabelle/Scala functionality.  The resulting class or jar files can
-  be added to the @{setting CLASSPATH} via the @{verbatim classpath}
-  Bash function that is provided by the Isabelle process environment.
-  Thus add-on components can register themselves in a modular manner,
-  see also \secref{sec:components}.
-
-  Note that jEdit (\secref{sec:tool-jedit}) has its own mechanisms for
-  adding plugin components, which needs special attention since
-  it overrides the standard Java class loader.  *}
-
-end
--- a/doc-src/System/Thy/Sessions.thy	Mon Aug 27 16:10:54 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,324 +0,0 @@
-theory Sessions
-imports Base
-begin
-
-chapter {* Isabelle sessions and build management \label{ch:session} *}
-
-text {* An Isabelle \emph{session} consists of a collection of related
-  theories that may be associated with formal documents (see also
-  \chref{ch:present}).  There is also a notion of \emph{persistent
-  heap} image to capture the state of a session, similar to
-  object-code in compiled programming languages.  Thus the concept of
-  session resembles that of a ``project'' in common IDE environments,
-  but the specific name emphasizes the connection to interactive
-  theorem proving: the session wraps-up the results of
-  user-interaction with the prover in a persistent form.
-
-  Application sessions are built on a given parent session, which may
-  be built recursively on other parents.  Following this path in the
-  hierarchy eventually leads to some major object-logic session like
-  @{text "HOL"}, which itself is based on @{text "Pure"} as the common
-  root of all sessions.
-
-  Processing sessions may take considerable time.  Isabelle build
-  management helps to organize this efficiently.  This includes
-  support for parallel build jobs, in addition to the multithreaded
-  theory and proof checking that is already provided by the prover
-  process itself.  *}
-
-
-section {* Session ROOT specifications \label{sec:session-root} *}
-
-text {* Session specifications reside in files called @{verbatim ROOT}
-  within certain directories, such as the home locations of registered
-  Isabelle components or additional project directories given by the
-  user.
-
-  The ROOT file format follows the lexical conventions of the
-  \emph{outer syntax} of Isabelle/Isar, see also
-  \cite{isabelle-isar-ref}.  This defines common forms like
-  identifiers, names, quoted strings, verbatim text, nested comments
-  etc.  The grammar for a single @{syntax session_entry} is given as
-  syntax diagram below; each ROOT file may contain multiple session
-  specifications like this.
-
-  Isabelle/jEdit (\secref{sec:tool-jedit}) includes a simple editing
-  mode @{verbatim "isabelle-root"} for session ROOT files.
-
-  @{rail "
-    @{syntax_def session_entry}: @'session' spec '=' (@{syntax name} '+')? body
-    ;
-    body: description? options? ( theories + ) files?
-    ;
-    spec: @{syntax name} groups? dir?
-    ;
-    groups: '(' (@{syntax name} +) ')'
-    ;
-    dir: @'in' @{syntax name}
-    ;
-    description: @'description' @{syntax text}
-    ;
-    options: @'options' opts
-    ;
-    opts: '[' ( (@{syntax name} '=' value | @{syntax name}) + ',' ) ']'
-    ;
-    value: @{syntax name} | @{syntax real}
-    ;
-    theories: @'theories' opts? ( @{syntax name} * )
-    ;
-    files: @'files' ( @{syntax name} + )
-    "}
-
-  \begin{description}
-
-  \item \isakeyword{session}~@{text "A = B + body"} defines a new
-  session @{text "A"} based on parent session @{text "B"}, with its
-  content given in @{text body} (theories and auxiliary source files).
-  Note that a parent (like @{text "HOL"}) is mandatory in practical
-  applications: only Isabelle/Pure can bootstrap itself from nothing.
-
-  All such session specifications together describe a hierarchy (tree)
-  of sessions, with globally unique names.  The new session name
-  @{text "A"} should be sufficiently long to stand on its own in a
-  potentially large library.
-
-  \item \isakeyword{session}~@{text "A (groups)"} indicates a
-  collection of groups where the new session is a member.  Group names
-  are uninterpreted and merely follow certain conventions.  For
-  example, the Isabelle distribution tags some important sessions by
-  the group name called ``@{text "main"}''.  Other projects may invent
-  their own conventions, but this requires some care to avoid clashes
-  within this unchecked name space.
-
-  \item \isakeyword{session}~@{text "A"}~\isakeyword{in}~@{text "dir"}
-  specifies an explicit directory for this session; by default this is
-  the current directory of the @{verbatim ROOT} file.
-
-  All theories and auxiliary source files are located relatively to
-  the session directory.  The prover process is run within the same as
-  its current working directory.
-
-  \item \isakeyword{description}~@{text "text"} is a free-form
-  annotation for this session.
-
-  \item \isakeyword{options}~@{text "[x = a, y = b, z]"} defines
-  separate options (\secref{sec:system-options}) that are used when
-  processing this session, but \emph{without} propagation to child
-  sessions.  Note that @{text "z"} abbreviates @{text "z = true"} for
-  Boolean options.
-
-  \item \isakeyword{theories}~@{text "options names"} specifies a
-  block of theories that are processed within an environment that is
-  augmented by the given options, in addition to the global session
-  options given before.  Any number of blocks of \isakeyword{theories}
-  may be given.  Options are only active for each
-  \isakeyword{theories} block separately.
-
-  \item \isakeyword{files}~@{text "files"} lists additional source
-  files that are involved in the processing of this session.  This
-  should cover anything outside the formal content of the theory
-  sources, say some auxiliary {\TeX} files that are required for
-  document processing.  In contrast, files that are specified in
-  formal theory headers as @{keyword "uses"} need not be declared
-  again.
-
-  \end{description}
-*}
-
-subsubsection {* Examples *}
-
-text {* See @{file "~~/src/HOL/ROOT"} for a diversity of practically
-  relevant situations, but it uses relatively complex quasi-hierarchic
-  naming conventions like @{text "HOL\<dash>SPARK"}, @{text
-  "HOL\<dash>SPARK\<dash>Examples"}.  An alternative is to use
-  unqualified names that are relatively long and descriptive, as in
-  the Archive of Formal Proofs (\url{http://afp.sf.net}), for
-  example. *}
-
-
-section {* System build options \label{sec:system-options} *}
-
-text {* See @{file "~~/etc/options"} for the main defaults provided by
-  the Isabelle distribution.  Isabelle/jEdit (\secref{sec:tool-jedit})
-  includes a simple editing mode @{verbatim "isabelle-options"} for
-  this file-format.
-
-  The @{tool_def options} tool prints Isabelle system options.  Its
-  command-line usage is:
-\begin{ttbox}
-Usage: isabelle options [OPTIONS] [MORE_OPTIONS ...]
-
-  Options are:
-    -b           include $ISABELLE_BUILD_OPTIONS
-    -x FILE      export to FILE in YXML format
-
-  Print Isabelle system options, augmented by MORE_OPTIONS given as
-  arguments NAME=VAL or NAME.
-\end{ttbox}
-
-  The command line arguments provide additional system options of the
-  form @{text "name"}@{verbatim "="}@{text "value"} or @{text name}
-  for Boolean options.
-
-  Option @{verbatim "-b"} augments the implicit environment of system
-  options by the ones of @{setting ISABELLE_BUILD_OPTIONS}, cf.\
-  \secref{sec:tool-build}.
-
-  Option @{verbatim "-x"} specifies a file to export the result in
-  YXML format, instead of printing it in human-readable form.
-*}
-
-
-section {* Invoking the build process \label{sec:tool-build} *}
-
-text {* The @{tool_def build} tool invokes the build process for
-  Isabelle sessions.  It manages dependencies between sessions,
-  related sources of theories and auxiliary files, and target heap
-  images.  Accordingly, it runs instances of the prover process with
-  optional document preparation.  Its command-line usage
-  is:\footnote{Isabelle/Scala provides the same functionality via
-  \texttt{isabelle.Build.build}.}
-\begin{ttbox}
-Usage: isabelle build [OPTIONS] [SESSIONS ...]
-
-  Options are:
-    -D DIR       include session directory and select its sessions
-    -a           select all sessions
-    -b           build heap images
-    -c           clean build
-    -d DIR       include session directory
-    -g NAME      select session group NAME
-    -j INT       maximum number of parallel jobs (default 1)
-    -l           list session source files
-    -n           no build -- test dependencies only
-    -o OPTION    override session configuration OPTION
-                 (via NAME=VAL or NAME)
-    -s           system build mode: produce output in ISABELLE_HOME
-    -v           verbose
-
-  Build and manage Isabelle sessions, depending on implicit
-  ISABELLE_BUILD_OPTIONS="..."
-
-  ML_PLATFORM="..."
-  ML_HOME="..."
-  ML_SYSTEM="..."
-  ML_OPTIONS="..."
-\end{ttbox}
-
-  \medskip Isabelle sessions are defined via session ROOT files as
-  described in (\secref{sec:session-root}).  The totality of sessions
-  is determined by collecting such specifications from all Isabelle
-  component directories (\secref{sec:components}), augmented by more
-  directories given via options @{verbatim "-d"}~@{text "DIR"} on the
-  command line.  Each such directory may contain a session
-  \texttt{ROOT} file with several session specifications.
-
-  Any session root directory may refer recursively to further
-  directories of the same kind, by listing them in a catalog file
-  @{verbatim "ROOTS"} line-by-line.  This helps to organize large
-  collections of session specifications, or to make @{verbatim "-d"}
-  command line options persistent (say within @{verbatim
-  "$ISABELLE_HOME_USER/ROOTS"}).
-
-  \medskip The subset of sessions to be managed is determined via
-  individual @{text "SESSIONS"} given as command-line arguments, or
-  session groups that are given via one or more options @{verbatim
-  "-g"}~@{text "NAME"}.  Option @{verbatim "-a"} selects all sessions.
-  The build tool takes session dependencies into account: the set of
-  selected sessions is completed by including all ancestors.
-
-  \medskip Option @{verbatim "-D"} is similar to @{verbatim "-d"}, but
-  selects all sessions that are defined in the given directories.
-
-  \medskip The build process depends on additional options
-  (\secref{sec:system-options}) that are passed to the prover
-  eventually.  The settings variable @{setting_ref
-  ISABELLE_BUILD_OPTIONS} allows to provide additional defaults, e.g.\
-  \texttt{ISABELLE_BUILD_OPTIONS="document=pdf threads=4"}. Moreover,
-  the environment of system build options may be augmented on the
-  command line via @{verbatim "-o"}~@{text "name"}@{verbatim
-  "="}@{text "value"} or @{verbatim "-o"}~@{text "name"}, which
-  abbreviates @{verbatim "-o"}~@{text "name"}@{verbatim"=true"} for
-  Boolean options.  Multiple occurrences of @{verbatim "-o"} on the
-  command-line are applied in the given order.
-
-  \medskip Option @{verbatim "-b"} ensures that heap images are
-  produced for all selected sessions.  By default, images are only
-  saved for inner nodes of the hierarchy of sessions, as required for
-  other sessions to continue later on.
-
-  \medskip Option @{verbatim "-c"} cleans all descendants of the
-  selected sessions before performing the specified build operation.
-
-  \medskip Option @{verbatim "-n"} omits the actual build process
-  after the preparatory stage (including optional cleanup).  Note that
-  the return code always indicates the status of the set of selected
-  sessions.
-
-  \medskip Option @{verbatim "-j"} specifies the maximum number of
-  parallel build jobs (prover processes).  Each prover process is
-  subject to a separate limit of parallel worker threads, cf.\ system
-  option @{system_option_ref threads}.
-
-  \medskip Option @{verbatim "-s"} enables \emph{system mode}, which
-  means that resulting heap images and log files are stored in
-  @{verbatim "$ISABELLE_HOME/heaps"} instead of the default location
-  @{setting ISABELLE_OUTPUT} (which is normally in @{setting
-  ISABELLE_HOME_USER}, i.e.\ the user's home directory).
-
-  \medskip Option @{verbatim "-v"} increases the general level of
-  verbosity.  Option @{verbatim "-l"} lists the source files that
-  contribute to a session.
-*}
-
-subsubsection {* Examples *}
-
-text {*
-  Build a specific logic image:
-\begin{ttbox}
-isabelle build -b HOLCF
-\end{ttbox}
-
-  \smallskip Build the main group of logic images:
-\begin{ttbox}
-isabelle build -b -g main
-\end{ttbox}
-
-  \smallskip Provide a general overview of the status of all Isabelle
-  sessions, without building anything:
-\begin{ttbox}
-isabelle build -a -n -v
-\end{ttbox}
-
-  \smallskip Build all sessions with HTML browser info and PDF
-  document preparation:
-\begin{ttbox}
-isabelle build -a -o browser_info -o document=pdf
-\end{ttbox}
-
-  \smallskip Build all sessions with a maximum of 8 parallel prover
-  processes and 4 worker threads each (on a machine with many cores):
-\begin{ttbox}
-isabelle build -a -j8 -o threads=4
-\end{ttbox}
-
-  \smallskip Build some session images with cleanup of their
-  descendants, while retaining their ancestry:
-\begin{ttbox}
-isabelle build -b -c HOL-Boogie HOL-SPARK
-\end{ttbox}
-
-  \smallskip Clean all sessions without building anything:
-\begin{ttbox}
-isabelle build -a -n -c
-\end{ttbox}
-
-  \smallskip Build all sessions from some other directory hierarchy,
-  according to the settings variable @{verbatim "AFP"} that happens to
-  be defined inside the Isabelle environment:
-\begin{ttbox}
-isabelle build -D '$AFP'
-\end{ttbox}
-*}
-
-end
--- a/doc-src/System/Thy/document/Base.tex	Mon Aug 27 16:10:54 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-%
-\begin{isabellebody}%
-\def\isabellecontext{Base}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\isatagtheory
-\isacommand{theory}\isamarkupfalse%
-\ Base\isanewline
-\isakeyword{imports}\ Pure\isanewline
-\isakeyword{begin}%
-\endisatagtheory
-{\isafoldtheory}%
-%
-\isadelimtheory
-\isanewline
-%
-\endisadelimtheory
-%
-\isadelimML
-\isanewline
-%
-\endisadelimML
-%
-\isatagML
-\isacommand{ML{\isaliteral{5F}{\isacharunderscore}}file}\isamarkupfalse%
-\ {\isaliteral{22}{\isachardoublequoteopen}}{\isaliteral{2E}{\isachardot}}{\isaliteral{2E}{\isachardot}}{\isaliteral{2F}{\isacharslash}}{\isaliteral{2E}{\isachardot}}{\isaliteral{2E}{\isachardot}}{\isaliteral{2F}{\isacharslash}}antiquote{\isaliteral{5F}{\isacharunderscore}}setup{\isaliteral{2E}{\isachardot}}ML{\isaliteral{22}{\isachardoublequoteclose}}\isanewline
-\isacommand{setup}\isamarkupfalse%
-\ Antiquote{\isaliteral{5F}{\isacharunderscore}}Setup{\isaliteral{2E}{\isachardot}}setup%
-\endisatagML
-{\isafoldML}%
-%
-\isadelimML
-\isanewline
-%
-\endisadelimML
-\isanewline
-\isacommand{declare}\isamarkupfalse%
-\ {\isaliteral{5B}{\isacharbrackleft}}{\isaliteral{5B}{\isacharbrackleft}}thy{\isaliteral{5F}{\isacharunderscore}}output{\isaliteral{5F}{\isacharunderscore}}source{\isaliteral{5D}{\isacharbrackright}}{\isaliteral{5D}{\isacharbrackright}}\isanewline
-%
-\isadelimtheory
-\isanewline
-%
-\endisadelimtheory
-%
-\isatagtheory
-\isacommand{end}\isamarkupfalse%
-%
-\endisatagtheory
-{\isafoldtheory}%
-%
-\isadelimtheory
-\isanewline
-%
-\endisadelimtheory
-\end{isabellebody}%
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: "root"
-%%% End:
--- a/doc-src/System/Thy/document/Basics.tex	Mon Aug 27 16:10:54 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,590 +0,0 @@
-%
-\begin{isabellebody}%
-\def\isabellecontext{Basics}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\isatagtheory
-\isacommand{theory}\isamarkupfalse%
-\ Basics\isanewline
-\isakeyword{imports}\ Base\isanewline
-\isakeyword{begin}%
-\endisatagtheory
-{\isafoldtheory}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\isamarkupchapter{The Isabelle system environment%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-This manual describes Isabelle together with related tools and
-  user interfaces as seen from a system oriented view.  See also the
-  \emph{Isabelle/Isar Reference Manual}~\cite{isabelle-isar-ref} for
-  the actual Isabelle input language and related concepts, and
-  \emph{The Isabelle/Isar Implementation
-  Manual}~\cite{isabelle-implementation} for the main concepts of the
-  underlying implementation in Isabelle/ML.
-
-  \medskip The Isabelle system environment provides the following
-  basic infrastructure to integrate tools smoothly.
-
-  \begin{enumerate}
-
-  \item The \emph{Isabelle settings} mechanism provides process
-  environment variables to all Isabelle executables (including tools
-  and user interfaces).
-
-  \item The raw \emph{Isabelle process} (\indexref{}{executable}{isabelle-process}\hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isaliteral{2D}{\isacharminus}}process}}}}) runs logic sessions either interactively or in
-  batch mode.  In particular, this view abstracts over the invocation
-  of the actual ML system to be used.  Regular users rarely need to
-  care about the low-level process.
-
-  \item The main \emph{Isabelle tool wrapper} (\indexref{}{executable}{isabelle}\hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}}) provides a generic startup environment Isabelle related
-  utilities, user interfaces etc.  Such tools automatically benefit
-  from the settings mechanism.
-
-  \end{enumerate}%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Isabelle settings \label{sec:settings}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The Isabelle system heavily depends on the \emph{settings
-  mechanism}\indexbold{settings}.  Essentially, this is a statically
-  scoped collection of environment variables, such as \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME}}}}, \hyperlink{setting.ML-SYSTEM}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}SYSTEM}}}}, \hyperlink{setting.ML-HOME}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}HOME}}}}.  These
-  variables are \emph{not} intended to be set directly from the shell,
-  though.  Isabelle employs a somewhat more sophisticated scheme of
-  \emph{settings files} --- one for site-wide defaults, another for
-  additional user-specific modifications.  With all configuration
-  variables in clearly defined places, this scheme is more
-  maintainable and user-friendly than global shell environment
-  variables.
-
-  In particular, we avoid the typical situation where prospective
-  users of a software package are told to put several things into
-  their shell startup scripts, before being able to actually run the
-  program. Isabelle requires none such administrative chores of its
-  end-users --- the executables can be invoked straight away.
-  Occasionally, users would still want to put the \verb|$ISABELLE_HOME/bin| directory into their shell's search path, but
-  this is not required.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsubsection{Bootstrapping the environment \label{sec:boot}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-Isabelle executables need to be run within a proper settings
-  environment.  This is bootstrapped as described below, on the first
-  invocation of one of the outer wrapper scripts (such as
-  \indexref{}{executable}{isabelle}\hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}}).  This happens only once for each
-  process tree, i.e.\ the environment is passed to subprocesses
-  according to regular Unix conventions.
-
-  \begin{enumerate}
-
-  \item The special variable \indexdef{}{setting}{ISABELLE\_HOME}\hypertarget{setting.ISABELLE-HOME}{\hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME}}}}} is
-  determined automatically from the location of the binary that has
-  been run.
-  
-  You should not try to set \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME}}}} manually. Also
-  note that the Isabelle executables either have to be run from their
-  original location in the distribution directory, or via the
-  executable objects created by the \hyperlink{tool.install}{\mbox{\isa{\isatool{install}}}} tool.  Symbolic
-  links are admissible, but a plain copy of the \verb|$ISABELLE_HOME/bin| files will not work!
-
-  \item The file \verb|$ISABELLE_HOME/etc/settings| is run as a
-  \indexref{}{executable}{bash}\hyperlink{executable.bash}{\mbox{\isa{\isatt{bash}}}} shell script with the auto-export option for
-  variables enabled.
-  
-  This file holds a rather long list of shell variable assigments,
-  thus providing the site-wide default settings.  The Isabelle
-  distribution already contains a global settings file with sensible
-  defaults for most variables.  When installing the system, only a few
-  of these may have to be adapted (probably \hyperlink{setting.ML-SYSTEM}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}SYSTEM}}}}
-  etc.).
-  
-  \item The file \verb|$ISABELLE_HOME_USER/etc/settings| (if it
-  exists) is run in the same way as the site default settings. Note
-  that the variable \hyperlink{setting.ISABELLE-HOME-USER}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME{\isaliteral{5F}{\isacharunderscore}}USER}}}} has already been set
-  before --- usually to something like \verb|$USER_HOME/.isabelle/IsabelleXXXX|.
-  
-  Thus individual users may override the site-wide defaults.  See also
-  file \verb|$ISABELLE_HOME/etc/user-settings.sample| in the
-  distribution.  Typically, a user settings file would contain only a
-  few lines, just the assigments that are really changed.  One should
-  definitely \emph{not} start with a full copy the basic \verb|$ISABELLE_HOME/etc/settings|. This could cause very annoying
-  maintainance problems later, when the Isabelle installation is
-  updated or changed otherwise.
-  
-  \end{enumerate}
-
-  Since settings files are regular GNU \indexdef{}{executable}{bash}\hypertarget{executable.bash}{\hyperlink{executable.bash}{\mbox{\isa{\isatt{bash}}}}} scripts,
-  one may use complex shell commands, such as \verb|if| or
-  \verb|case| statements to set variables depending on the
-  system architecture or other environment variables.  Such advanced
-  features should be added only with great care, though. In
-  particular, external environment references should be kept at a
-  minimum.
-
-  \medskip A few variables are somewhat special:
-
-  \begin{itemize}
-
-  \item \indexdef{}{setting}{ISABELLE\_PROCESS}\hypertarget{setting.ISABELLE-PROCESS}{\hyperlink{setting.ISABELLE-PROCESS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}PROCESS}}}}} and \indexdef{}{setting}{ISABELLE\_TOOL}\hypertarget{setting.ISABELLE-TOOL}{\hyperlink{setting.ISABELLE-TOOL}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}TOOL}}}}} are set
-  automatically to the absolute path names of the \hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isaliteral{2D}{\isacharminus}}process}}}} and \hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}} executables,
-  respectively.
-  
-  \item \indexref{}{setting}{ISABELLE\_OUTPUT}\hyperlink{setting.ISABELLE-OUTPUT}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}OUTPUT}}}} will have the identifiers of
-  the Isabelle distribution (cf.\ \hyperlink{setting.ISABELLE-IDENTIFIER}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}IDENTIFIER}}}}) and
-  the ML system (cf.\ \hyperlink{setting.ML-IDENTIFIER}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}IDENTIFIER}}}}) appended automatically
-  to its value.
-
-  \end{itemize}
-
-  \medskip Note that the settings environment may be inspected with
-  the \hyperlink{tool.getenv}{\mbox{\isa{\isatool{getenv}}}} tool.  This might help to figure out the effect
-  of complex settings scripts.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsubsection{Common variables%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-This is a reference of common Isabelle settings variables. Note that
-  the list is somewhat open-ended. Third-party utilities or interfaces
-  may add their own selection. Variables that are special in some
-  sense are marked with \isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}.
-
-  \begin{description}
-
-  \item[\indexdef{}{setting}{USER\_HOME}\hypertarget{setting.USER-HOME}{\hyperlink{setting.USER-HOME}{\mbox{\isa{\isatt{USER{\isaliteral{5F}{\isacharunderscore}}HOME}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}] Is the cross-platform
-  user home directory.  On Unix systems this is usually the same as
-  \hyperlink{setting.HOME}{\mbox{\isa{\isatt{HOME}}}}, but on Windows it is the regular home directory of
-  the user, not the one of within the Cygwin root
-  file-system.\footnote{Cygwin itself offers another choice whether
-  its HOME should point to the \texttt{/home} directory tree or the
-  Windows user home.}
-
- \item[\indexdef{}{setting}{ISABELLE\_HOME}\hypertarget{setting.ISABELLE-HOME}{\hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}] is the location of the
-  top-level Isabelle distribution directory. This is automatically
-  determined from the Isabelle executable that has been invoked.  Do
-  not attempt to set \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME}}}} yourself from the shell!
-  
-  \item[\indexdef{}{setting}{ISABELLE\_HOME\_USER}\hypertarget{setting.ISABELLE-HOME-USER}{\hyperlink{setting.ISABELLE-HOME-USER}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME{\isaliteral{5F}{\isacharunderscore}}USER}}}}}] is the user-specific
-  counterpart of \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME}}}}. The default value is
-  relative to \verb|$USER_HOME/.isabelle|, under rare
-  circumstances this may be changed in the global setting file.
-  Typically, the \hyperlink{setting.ISABELLE-HOME-USER}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME{\isaliteral{5F}{\isacharunderscore}}USER}}}} directory mimics
-  \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME}}}} to some extend. In particular, site-wide
-  defaults may be overridden by a private \verb|$ISABELLE_HOME_USER/etc/settings|.
-  
-  \item[\indexdef{}{setting}{ISABELLE\_PLATFORM}\hypertarget{setting.ISABELLE-PLATFORM}{\hyperlink{setting.ISABELLE-PLATFORM}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}PLATFORM}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}] is automatically
-  set to a symbolic identifier for the underlying hardware and
-  operating system.  The Isabelle platform identification always
-  refers to the 32 bit variant, even this is a 64 bit machine.  Note
-  that the ML or Java runtime may have a different idea, depending on
-  which binaries are actually run.
-
-  \item[\indexdef{}{setting}{ISABELLE\_PLATFORM64}\hypertarget{setting.ISABELLE-PLATFORM64}{\hyperlink{setting.ISABELLE-PLATFORM64}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}PLATFORM{\isadigit{6}}{\isadigit{4}}}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}] is similar to
-  \hyperlink{setting.ISABELLE-PLATFORM}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}PLATFORM}}}} but refers to the proper 64 bit variant
-  on a platform that supports this; the value is empty for 32 bit.
-  Note that the following bash expression (including the quotes)
-  prefers the 64 bit platform, if that is available:
-
-  \verb|"${ISABELLE_PLATFORM64:-$ISABELLE_PLATFORM}"|
-
-  \item[\indexdef{}{setting}{ISABELLE\_PROCESS}\hypertarget{setting.ISABELLE-PROCESS}{\hyperlink{setting.ISABELLE-PROCESS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}PROCESS}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}, \hyperlink{setting.ISABELLE-TOOL}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}TOOL}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}] are automatically set to the full path
-  names of the \hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isaliteral{2D}{\isacharminus}}process}}}} and \hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}} executables, respectively.  Thus other tools and scripts
-  need not assume that the \verb|$ISABELLE_HOME/bin| directory is
-  on the current search path of the shell.
-  
-  \item[\indexdef{}{setting}{ISABELLE\_IDENTIFIER}\hypertarget{setting.ISABELLE-IDENTIFIER}{\hyperlink{setting.ISABELLE-IDENTIFIER}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}IDENTIFIER}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}] refers
-  to the name of this Isabelle distribution, e.g.\ ``\verb|Isabelle2012|''.
-
-  \item[\indexdef{}{setting}{ML\_SYSTEM}\hypertarget{setting.ML-SYSTEM}{\hyperlink{setting.ML-SYSTEM}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}SYSTEM}}}}}, \indexdef{}{setting}{ML\_HOME}\hypertarget{setting.ML-HOME}{\hyperlink{setting.ML-HOME}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}HOME}}}}},
-  \indexdef{}{setting}{ML\_OPTIONS}\hypertarget{setting.ML-OPTIONS}{\hyperlink{setting.ML-OPTIONS}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}OPTIONS}}}}}, \indexdef{}{setting}{ML\_PLATFORM}\hypertarget{setting.ML-PLATFORM}{\hyperlink{setting.ML-PLATFORM}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}PLATFORM}}}}}, \indexdef{}{setting}{ML\_IDENTIFIER}\hypertarget{setting.ML-IDENTIFIER}{\hyperlink{setting.ML-IDENTIFIER}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}IDENTIFIER}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}] specify the underlying ML system
-  to be used for Isabelle.  There is only a fixed set of admissable
-  \hyperlink{setting.ML-SYSTEM}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}SYSTEM}}}} names (see the \verb|$ISABELLE_HOME/etc/settings| file of the distribution).
-  
-  The actual compiler binary will be run from the directory \hyperlink{setting.ML-HOME}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}HOME}}}}, with \hyperlink{setting.ML-OPTIONS}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}OPTIONS}}}} as first arguments on the
-  command line.  The optional \hyperlink{setting.ML-PLATFORM}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}PLATFORM}}}} may specify the
-  binary format of ML heap images, which is useful for cross-platform
-  installations.  The value of \hyperlink{setting.ML-IDENTIFIER}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}IDENTIFIER}}}} is
-  automatically obtained by composing the values of \hyperlink{setting.ML-SYSTEM}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}SYSTEM}}}}, \hyperlink{setting.ML-PLATFORM}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}PLATFORM}}}} and the Isabelle version values.
-
-  \item[\indexdef{}{setting}{ISABELLE\_JDK\_HOME}\hypertarget{setting.ISABELLE-JDK-HOME}{\hyperlink{setting.ISABELLE-JDK-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}JDK{\isaliteral{5F}{\isacharunderscore}}HOME}}}}}] needs to point to a full JDK
-  (Java Development Kit) installation with \verb|javac| and
-  \verb|jar| executables.  This is essential for Isabelle/Scala
-  and other JVM-based tools to work properly.  Note that conventional
-  \verb|JAVA_HOME| usually points to the JRE (Java Runtime
-  Environment), not JDK.
-  
-  \item[\indexdef{}{setting}{ISABELLE\_PATH}\hypertarget{setting.ISABELLE-PATH}{\hyperlink{setting.ISABELLE-PATH}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}PATH}}}}}] is a list of directories
-  (separated by colons) where Isabelle logic images may reside.  When
-  looking up heaps files, the value of \hyperlink{setting.ML-IDENTIFIER}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}IDENTIFIER}}}} is
-  appended to each component internally.
-  
-  \item[\indexdef{}{setting}{ISABELLE\_OUTPUT}\hypertarget{setting.ISABELLE-OUTPUT}{\hyperlink{setting.ISABELLE-OUTPUT}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}OUTPUT}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}] is a
-  directory where output heap files should be stored by default. The
-  ML system and Isabelle version identifier is appended here, too.
-  
-  \item[\indexdef{}{setting}{ISABELLE\_BROWSER\_INFO}\hypertarget{setting.ISABELLE-BROWSER-INFO}{\hyperlink{setting.ISABELLE-BROWSER-INFO}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}BROWSER{\isaliteral{5F}{\isacharunderscore}}INFO}}}}}] is the directory where
-  theory browser information (HTML text, graph data, and printable
-  documents) is stored (see also \secref{sec:info}).  The default
-  value is \verb|$ISABELLE_HOME_USER/browser_info|.
-  
-  \item[\indexdef{}{setting}{ISABELLE\_LOGIC}\hypertarget{setting.ISABELLE-LOGIC}{\hyperlink{setting.ISABELLE-LOGIC}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}LOGIC}}}}}] specifies the default logic to
-  load if none is given explicitely by the user.  The default value is
-  \verb|HOL|.
-  
-  \item[\indexdef{}{setting}{ISABELLE\_LINE\_EDITOR}\hypertarget{setting.ISABELLE-LINE-EDITOR}{\hyperlink{setting.ISABELLE-LINE-EDITOR}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}LINE{\isaliteral{5F}{\isacharunderscore}}EDITOR}}}}}] specifies the default
-  line editor for the \indexref{}{tool}{tty}\hyperlink{tool.tty}{\mbox{\isa{\isatool{tty}}}} interface.
-
-  \item[\indexdef{}{setting}{ISABELLE\_USEDIR\_OPTIONS}\hypertarget{setting.ISABELLE-USEDIR-OPTIONS}{\hyperlink{setting.ISABELLE-USEDIR-OPTIONS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}USEDIR{\isaliteral{5F}{\isacharunderscore}}OPTIONS}}}}}] is implicitly prefixed
-  to the command line of any \indexref{}{tool}{usedir}\hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} invocation. This
-  typically contains compilation options for object-logics --- \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} is the basic tool for managing logic sessions (cf.\ the
-  \verb|IsaMakefile|s in the distribution).
-
-  \item[\indexdef{}{setting}{ISABELLE\_LATEX}\hypertarget{setting.ISABELLE-LATEX}{\hyperlink{setting.ISABELLE-LATEX}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}LATEX}}}}}, \indexdef{}{setting}{ISABELLE\_PDFLATEX}\hypertarget{setting.ISABELLE-PDFLATEX}{\hyperlink{setting.ISABELLE-PDFLATEX}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}PDFLATEX}}}}}, \indexdef{}{setting}{ISABELLE\_BIBTEX}\hypertarget{setting.ISABELLE-BIBTEX}{\hyperlink{setting.ISABELLE-BIBTEX}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}BIBTEX}}}}}, \indexdef{}{setting}{ISABELLE\_DVIPS}\hypertarget{setting.ISABELLE-DVIPS}{\hyperlink{setting.ISABELLE-DVIPS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}DVIPS}}}}}] refer to {\LaTeX} related tools for Isabelle
-  document preparation (see also \secref{sec:tool-latex}).
-  
-  \item[\indexdef{}{setting}{ISABELLE\_TOOLS}\hypertarget{setting.ISABELLE-TOOLS}{\hyperlink{setting.ISABELLE-TOOLS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}TOOLS}}}}}] is a colon separated list of
-  directories that are scanned by \hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}} for external
-  utility programs (see also \secref{sec:isabelle-tool}).
-  
-  \item[\indexdef{}{setting}{ISABELLE\_DOCS}\hypertarget{setting.ISABELLE-DOCS}{\hyperlink{setting.ISABELLE-DOCS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}DOCS}}}}}] is a colon separated list of
-  directories with documentation files.
-  
-  \item[\indexdef{}{setting}{ISABELLE\_DOC\_FORMAT}\hypertarget{setting.ISABELLE-DOC-FORMAT}{\hyperlink{setting.ISABELLE-DOC-FORMAT}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}DOC{\isaliteral{5F}{\isacharunderscore}}FORMAT}}}}}] specifies the preferred
-  document format, typically \verb|dvi| or \verb|pdf|.
-  
-  \item[\indexdef{}{setting}{DVI\_VIEWER}\hypertarget{setting.DVI-VIEWER}{\hyperlink{setting.DVI-VIEWER}{\mbox{\isa{\isatt{DVI{\isaliteral{5F}{\isacharunderscore}}VIEWER}}}}}] specifies the command to be used
-  for displaying \verb|dvi| files.
-  
-  \item[\indexdef{}{setting}{PDF\_VIEWER}\hypertarget{setting.PDF-VIEWER}{\hyperlink{setting.PDF-VIEWER}{\mbox{\isa{\isatt{PDF{\isaliteral{5F}{\isacharunderscore}}VIEWER}}}}}] specifies the command to be used
-  for displaying \verb|pdf| files.
-  
-  \item[\indexdef{}{setting}{PRINT\_COMMAND}\hypertarget{setting.PRINT-COMMAND}{\hyperlink{setting.PRINT-COMMAND}{\mbox{\isa{\isatt{PRINT{\isaliteral{5F}{\isacharunderscore}}COMMAND}}}}}] specifies the standard printer
-  spool command, which is expected to accept \verb|ps| files.
-  
-  \item[\indexdef{}{setting}{ISABELLE\_TMP\_PREFIX}\hypertarget{setting.ISABELLE-TMP-PREFIX}{\hyperlink{setting.ISABELLE-TMP-PREFIX}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}TMP{\isaliteral{5F}{\isacharunderscore}}PREFIX}}}}}\isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E7375703E}{}\isactrlsup {\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}] is the
-  prefix from which any running \hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isaliteral{2D}{\isacharminus}}process}}}}
-  derives an individual directory for temporary files.  The default is
-  somewhere in \verb|/tmp|.
-  
-  \end{description}%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsubsection{Additional components \label{sec:components}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-Any directory may be registered as an explicit \emph{Isabelle
-  component}.  The general layout conventions are that of the main
-  Isabelle distribution itself, and the following two files (both
-  optional) have a special meaning:
-
-  \begin{itemize}
-
-  \item \verb|etc/settings| holds additional settings that are
-  initialized when bootstrapping the overall Isabelle environment,
-  cf.\ \secref{sec:boot}.  As usual, the content is interpreted as a
-  \verb|bash| script.  It may refer to the component's enclosing
-  directory via the \verb|COMPONENT| shell variable.
-
-  For example, the following setting allows to refer to files within
-  the component later on, without having to hardwire absolute paths:
-
-\begin{ttbox}
-MY_COMPONENT_HOME="$COMPONENT"
-\end{ttbox}
-
-  Components can also add to existing Isabelle settings such as
-  \indexdef{}{setting}{ISABELLE\_TOOLS}\hypertarget{setting.ISABELLE-TOOLS}{\hyperlink{setting.ISABELLE-TOOLS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}TOOLS}}}}}, in order to provide
-  component-specific tools that can be invoked by end-users.  For
-  example:
-
-\begin{ttbox}
-ISABELLE_TOOLS="$ISABELLE_TOOLS:$COMPONENT/lib/Tools"
-\end{ttbox}
-
-  \item \verb|etc/components| holds a list of further
-  sub-components of the same structure.  The directory specifications
-  given here can be either absolute (with leading \verb|/|) or
-  relative to the component's main directory.
-
-  \end{itemize}
-
-  The root of component initialization is \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME}}}}
-  itself.  After initializing all of its sub-components recursively,
-  \hyperlink{setting.ISABELLE-HOME-USER}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME{\isaliteral{5F}{\isacharunderscore}}USER}}}} is included in the same manner (if
-  that directory exists).  This allows to install private components
-  via \verb|$ISABELLE_HOME_USER/etc/components|, although it is
-  often more convenient to do that programmatically via the
-  \verb,init_component, shell function in the \verb,etc/settings,
-  script of \verb,$ISABELLE_HOME_USER, (or any other component
-  directory).  For example:
-\begin{ttbox}
-init_component "$HOME/screwdriver-2.0"
-\end{ttbox}
-
-  This is tolerant wrt.\ missing component directories, but might
-  produce a warning.
-
-  \medskip More complex situations may be addressed by initializing
-  components listed in a given catalog file, relatively to some base
-  directory:
-
-\begin{ttbox}
-init_components "$HOME/my_component_store" "some_catalog_file"
-\end{ttbox}
-
-  The component directories listed in the catalog file are treated as
-  relative to the given base directory.
-
-  See also \secref{sec:tool-components} for some tool-support for
-  resolving components that are formally initialized but not installed
-  yet.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{The raw Isabelle process%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{executable}{isabelle-process}\hypertarget{executable.isabelle-process}{\hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isaliteral{2D}{\isacharminus}}process}}}}} executable runs bare-bones
-  Isabelle logic sessions --- either interactively or in batch mode.
-  It provides an abstraction over the underlying ML system, and over
-  the actual heap file locations.  Its usage is:
-
-\begin{ttbox}
-Usage: isabelle-process [OPTIONS] [INPUT] [OUTPUT]
-
-  Options are:
-    -I           startup Isar interaction mode
-    -P           startup Proof General interaction mode
-    -S           secure mode -- disallow critical operations
-    -T ADDR      startup process wrapper, with socket address
-    -W IN:OUT    startup process wrapper, with input/output fifos
-    -X           startup PGIP interaction mode
-    -e MLTEXT    pass MLTEXT to the ML session
-    -f           pass 'Session.finish();' to the ML session
-    -m MODE      add print mode for output
-    -q           non-interactive session
-    -r           open heap file read-only
-    -u           pass 'use"ROOT.ML";' to the ML session
-    -w           reset write permissions on OUTPUT
-
-  INPUT (default "\$ISABELLE_LOGIC") and OUTPUT specify in/out heaps.
-  These are either names to be searched in the Isabelle path, or
-  actual file names (containing at least one /).
-  If INPUT is "RAW_ML_SYSTEM", just start the bare bones ML system.
-\end{ttbox}
-
-  Input files without path specifications are looked up in the
-  \hyperlink{setting.ISABELLE-PATH}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}PATH}}}} setting, which may consist of multiple
-  components separated by colons --- these are tried in the given
-  order with the value of \hyperlink{setting.ML-IDENTIFIER}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}IDENTIFIER}}}} appended
-  internally.  In a similar way, base names are relative to the
-  directory specified by \hyperlink{setting.ISABELLE-OUTPUT}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}OUTPUT}}}}.  In any case,
-  actual file locations may also be given by including at least one
-  slash (\verb|/|) in the name (hint: use \verb|./| to
-  refer to the current directory).%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsubsubsection{Options%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-If the input heap file does not have write permission bits set, or
-  the \verb|-r| option is given explicitely, then the session
-  started will be read-only.  That is, the ML world cannot be
-  committed back into the image file.  Otherwise, a writable session
-  enables commits into either the input file, or into another output
-  heap file (if that is given as the second argument on the command
-  line).
-
-  The read-write state of sessions is determined at startup only, it
-  cannot be changed intermediately. Also note that heap images may
-  require considerable amounts of disk space (approximately
-  50--200~MB). Users are responsible for themselves to dispose their
-  heap files when they are no longer needed.
-
-  \medskip The \verb|-w| option makes the output heap file
-  read-only after terminating.  Thus subsequent invocations cause the
-  logic image to be read-only automatically.
-
-  \medskip Using the \verb|-e| option, arbitrary ML code may be
-  passed to the Isabelle session from the command line. Multiple
-  \verb|-e|'s are evaluated in the given order. Strange things
-  may happen when errorneous ML code is provided. Also make sure that
-  the ML commands are terminated properly by semicolon.
-
-  \medskip The \verb|-u| option is a shortcut for \verb|-e| passing ``\verb|use "ROOT.ML";|'' to the ML session.
-  The \verb|-f| option passes ``\verb|Session.finish();|'', which is intended mainly for administrative
-  purposes.
-
-  \medskip The \verb|-m| option adds identifiers of print modes
-  to be made active for this session. Typically, this is used by some
-  user interface, e.g.\ to enable output of proper mathematical
-  symbols.
-
-  \medskip Isabelle normally enters an interactive top-level loop
-  (after processing the \verb|-e| texts). The \verb|-q|
-  option inhibits interaction, thus providing a pure batch mode
-  facility.
-
-  \medskip The \verb|-I| option makes Isabelle enter Isar
-  interaction mode on startup, instead of the primitive ML top-level.
-  The \verb|-P| option configures the top-level loop for
-  interaction with the Proof General user interface, and the
-  \verb|-X| option enables XML-based PGIP communication.
-
-  \medskip The \verb|-T| or \verb|-W| option makes
-  Isabelle enter a special process wrapper for interaction via the
-  Isabelle/Scala layer, see also \verb|~~/src/Pure/System/isabelle_process.scala|.  The protocol between
-  the ML and JVM process is private to the implementation.
-
-  \medskip The \verb|-S| option makes the Isabelle process more
-  secure by disabling some critical operations, notably runtime
-  compilation and evaluation of ML source code.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsubsubsection{Examples%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-Run an interactive session of the default object-logic (as specified
-  by the \hyperlink{setting.ISABELLE-LOGIC}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}LOGIC}}}} setting) like this:
-\begin{ttbox}
-isabelle-process
-\end{ttbox}
-
-  Usually \hyperlink{setting.ISABELLE-LOGIC}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}LOGIC}}}} refers to one of the standard
-  logic images, which are read-only by default.  A writable session
-  --- based on \verb|HOL|, but output to \verb|Test| (in the
-  directory specified by the \hyperlink{setting.ISABELLE-OUTPUT}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}OUTPUT}}}} setting) ---
-  may be invoked as follows:
-\begin{ttbox}
-isabelle-process HOL Test
-\end{ttbox}
-  Ending this session normally (e.g.\ by typing control-D) dumps the
-  whole ML system state into \verb|Test| (be prepared for more
-  than 100\,MB):
-
-  The \verb|Test| session may be continued later (still in
-  writable state) by:
-\begin{ttbox}
-isabelle-process Test
-\end{ttbox}
-  A read-only \verb|Test| session may be started by:
-\begin{ttbox}
-isabelle-process -r Test
-\end{ttbox}
-
-  \medskip Note that manual session management like this does
-  \emph{not} provide proper setup for theory presentation.  This would
-  require \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}}.
-
-  \bigskip The next example demonstrates batch execution of Isabelle.
-  We retrieve the \verb|Main| theory value from the theory loader
-  within ML (observe the delicate quoting rules for the Bash shell
-  vs.\ ML):
-\begin{ttbox}
-isabelle-process -e 'Thy_Info.get_theory "Main";' -q -r HOL
-\end{ttbox}
-  Note that the output text will be interspersed with additional junk
-  messages by the ML runtime environment.  The \verb|-W| option
-  allows to communicate with the Isabelle process via an external
-  program in a more robust fashion.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{The Isabelle tool wrapper \label{sec:isabelle-tool}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-All Isabelle related tools and interfaces are called via a common
-  wrapper --- \hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}}:
-
-\begin{ttbox}
-Usage: isabelle TOOL [ARGS ...]
-
-  Start Isabelle tool NAME with ARGS; pass "-?" for tool specific help.
-
-Available tools:
-  \dots
-\end{ttbox}
-
-  In principle, Isabelle tools are ordinary executable scripts that
-  are run within the Isabelle settings environment, see
-  \secref{sec:settings}.  The set of available tools is collected by
-  \hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}} from the directories listed in the \hyperlink{setting.ISABELLE-TOOLS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}TOOLS}}}} setting.  Do not try to call the scripts directly
-  from the shell.  Neither should you add the tool directories to your
-  shell's search path!%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsubsubsection{Examples%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-Show the list of available documentation of the Isabelle
-  distribution:
-
-\begin{ttbox}
-  isabelle doc
-\end{ttbox}
-
-  View a certain document as follows:
-\begin{ttbox}
-  isabelle doc system
-\end{ttbox}
-
-  Query the Isabelle settings environment:
-\begin{ttbox}
-  isabelle getenv ISABELLE_HOME_USER
-\end{ttbox}%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\isatagtheory
-\isacommand{end}\isamarkupfalse%
-%
-\endisatagtheory
-{\isafoldtheory}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-\end{isabellebody}%
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: "root"
-%%% End:
--- a/doc-src/System/Thy/document/Interfaces.tex	Mon Aug 27 16:10:54 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,338 +0,0 @@
-%
-\begin{isabellebody}%
-\def\isabellecontext{Interfaces}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\isatagtheory
-\isacommand{theory}\isamarkupfalse%
-\ Interfaces\isanewline
-\isakeyword{imports}\ Base\isanewline
-\isakeyword{begin}%
-\endisatagtheory
-{\isafoldtheory}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\isamarkupchapter{User interfaces%
-}
-\isamarkuptrue%
-%
-\isamarkupsection{Isabelle/jEdit Prover IDE \label{sec:tool-jedit}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{tool}{jedit}\hypertarget{tool.jedit}{\hyperlink{tool.jedit}{\mbox{\isa{\isatool{jedit}}}}} tool invokes a version of
-  jEdit\footnote{\url{http://www.jedit.org/}} that has been augmented
-  with some components to provide a fully-featured Prover IDE:
-\begin{ttbox} Usage: isabelle jedit [OPTIONS]
-  [FILES ...]
-
-  Options are:
-    -J OPTION    add JVM runtime option (default JEDIT_JAVA_OPTIONS)
-    -b           build only
-    -d DIR       include session directory
-    -f           fresh build
-    -j OPTION    add jEdit runtime option (default JEDIT_OPTIONS)
-    -l NAME      logic image name (default ISABELLE_LOGIC)
-    -m MODE      add print mode for output
-
-Start jEdit with Isabelle plugin setup and opens theory FILES
-(default Scratch.thy).
-\end{ttbox}
-
-  The \verb|-l| option specifies the session name of the logic
-  image to be used for proof processing.  Additional session root
-  directories may be included via option \verb|-d| to augment
-  that name space (see also \secref{sec:tool-build}).
-
-  The \verb|-m| option specifies additional print modes.
-
-  The \verb|-J| and \verb|-j| options allow to pass
-  additional low-level options to the JVM or jEdit, respectively.  The
-  defaults are provided by the Isabelle settings environment
-  (\secref{sec:settings}).
-
-  The \verb|-b| and \verb|-f| options control the
-  self-build mechanism of Isabelle/jEdit.  This is only relevant for
-  building from sources, which also requires an auxiliary \verb|jedit_build|
-  component.\footnote{\url{http://isabelle.in.tum.de/components}} Note
-  that official Isabelle releases already include a version of
-  Isabelle/jEdit that is built properly.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Proof General / Emacs%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{tool}{emacs}\hypertarget{tool.emacs}{\hyperlink{tool.emacs}{\mbox{\isa{\isatool{emacs}}}}} tool invokes a version of Emacs and
-  Proof General\footnote{http://proofgeneral.inf.ed.ac.uk/} within the
-  regular Isabelle settings environment (\secref{sec:settings}).  This
-  is more convenient than starting Emacs separately, loading the Proof
-  General LISP files, and then attempting to start Isabelle with
-  dynamic \hyperlink{setting.PATH}{\mbox{\isa{\isatt{PATH}}}} lookup etc.
-
-  The actual interface script is part of the Proof General
-  distribution; its usage depends on the particular version.  There
-  are some options available, such as \verb|-l| for passing the
-  logic image to be used by default, or \verb|-m| to tune the
-  standard print mode.  The following Isabelle settings are
-  particularly important for Proof General:
-
-  \begin{description}
-
-  \item[\indexdef{}{setting}{PROOFGENERAL\_HOME}\hypertarget{setting.PROOFGENERAL-HOME}{\hyperlink{setting.PROOFGENERAL-HOME}{\mbox{\isa{\isatt{PROOFGENERAL{\isaliteral{5F}{\isacharunderscore}}HOME}}}}}] points to the main
-  installation directory of the Proof General distribution.  This is
-  implicitly provided for versions of Proof General that are
-  distributed as Isabelle component, see also \secref{sec:components};
-  otherwise it needs to be configured manually.
-
-  \item[\indexdef{}{setting}{PROOFGENERAL\_OPTIONS}\hypertarget{setting.PROOFGENERAL-OPTIONS}{\hyperlink{setting.PROOFGENERAL-OPTIONS}{\mbox{\isa{\isatt{PROOFGENERAL{\isaliteral{5F}{\isacharunderscore}}OPTIONS}}}}}] is implicitly prefixed to
-  the command line of any invocation of the Proof General \verb|interface| script.  This allows to provide persistent default
-  options for the invocation of \texttt{isabelle emacs}.
-
-  \end{description}%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Plain TTY interaction \label{sec:tool-tty}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{tool}{tty}\hypertarget{tool.tty}{\hyperlink{tool.tty}{\mbox{\isa{\isatool{tty}}}}} tool runs the Isabelle process interactively
-  within a plain terminal session:
-\begin{ttbox}
-Usage: isabelle tty [OPTIONS]
-
-  Options are:
-    -l NAME      logic image name (default ISABELLE_LOGIC)
-    -m MODE      add print mode for output
-    -p NAME      line editor program name (default ISABELLE_LINE_EDITOR)
-
-  Run Isabelle process with plain tty interaction and line editor.
-\end{ttbox}
-
-  The \verb|-l| option specifies the logic image.  The
-  \verb|-m| option specifies additional print modes.  The
-  \verb|-p| option specifies an alternative line editor (such
-  as the \indexdef{}{executable}{rlwrap}\hypertarget{executable.rlwrap}{\hyperlink{executable.rlwrap}{\mbox{\isa{\isatt{rlwrap}}}}} wrapper for GNU readline); the
-  fall-back is to use raw standard input.
-
-  Regular interaction works via the standard Isabelle/Isar toplevel
-  loop.  The Isar command \hyperlink{command.exit}{\mbox{\isa{\isacommand{exit}}}} drops out into the
-  bare-bones ML system, which is occasionally useful for debugging of
-  the Isar infrastructure itself.  Invoking \verb|Isar.loop|~\verb|();| in ML will return to the Isar toplevel.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Theory graph browser \label{sec:browse}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The Isabelle graph browser is a general tool for visualizing
-  dependency graphs.  Certain nodes of the graph (i.e.\ theories) can
-  be grouped together in ``directories'', whose contents may be
-  hidden, thus enabling the user to collapse irrelevant portions of
-  information.  The browser is written in Java, it can be used both as
-  a stand-alone application and as an applet.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsubsection{Invoking the graph browser%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The stand-alone version of the graph browser is wrapped up as
-  \indexdef{}{tool}{browser}\hypertarget{tool.browser}{\hyperlink{tool.browser}{\mbox{\isa{\isatool{browser}}}}}:
-\begin{ttbox}
-Usage: isabelle browser [OPTIONS] [GRAPHFILE]
-
-  Options are:
-    -b           Admin/build only
-    -c           cleanup -- remove GRAPHFILE after use
-    -o FILE      output to FILE (ps, eps, pdf)
-\end{ttbox}
-  When no filename is specified, the browser automatically changes to
-  the directory \hyperlink{setting.ISABELLE-BROWSER-INFO}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}BROWSER{\isaliteral{5F}{\isacharunderscore}}INFO}}}}.
-
-  \medskip The \verb|-b| option indicates that this is for
-  administrative build only, i.e.\ no browser popup if no files are
-  given.
-
-  The \verb|-c| option causes the input file to be removed
-  after use.
-
-  The \verb|-o| option indicates batch-mode operation, with the
-  output written to the indicated file; note that \verb|pdf|
-  produces an \verb|eps| copy as well.
-
-  \medskip The applet version of the browser is part of the standard
-  WWW theory presentation, see the link ``theory dependencies'' within
-  each session index.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsubsection{Using the graph browser%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The browser's main window, which is shown in
-  \figref{fig:browserwindow}, consists of two sub-windows.  In the
-  left sub-window, the directory tree is displayed. The graph itself
-  is displayed in the right sub-window.
-
-  \begin{figure}[ht]
-  \includegraphics[width=\textwidth]{browser_screenshot}
-  \caption{\label{fig:browserwindow} Browser main window}
-  \end{figure}%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsubsubsection{The directory tree window%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-We describe the usage of the directory browser and the meaning of
-  the different items in the browser window.
-
-  \begin{itemize}
-
-  \item A red arrow before a directory name indicates that the
-  directory is currently ``folded'', i.e.~the nodes in this directory
-  are collapsed to one single node. In the right sub-window, the names
-  of nodes corresponding to folded directories are enclosed in square
-  brackets and displayed in red color.
-
-  \item A green downward arrow before a directory name indicates that
-  the directory is currently ``unfolded''. It can be folded by
-  clicking on the directory name.  Clicking on the name for a second
-  time unfolds the directory again.  Alternatively, a directory can
-  also be unfolded by clicking on the corresponding node in the right
-  sub-window.
-
-  \item Blue arrows stand before ordinary node names. When clicking on
-  such a name (i.e.\ that of a theory), the graph display window
-  focuses to the corresponding node. Double clicking invokes a text
-  viewer window in which the contents of the theory file are
-  displayed.
-
-  \end{itemize}%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsubsubsection{The graph display window%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-When pointing on an ordinary node, an upward and a downward arrow is
-  shown.  Initially, both of these arrows are green. Clicking on the
-  upward or downward arrow collapses all predecessor or successor
-  nodes, respectively. The arrow's color then changes to red,
-  indicating that the predecessor or successor nodes are currently
-  collapsed. The node corresponding to the collapsed nodes has the
-  name ``\verb|[....]|''. To uncollapse the nodes again, simply
-  click on the red arrow or on the node with the name ``\verb|[....]|''. Similar to the directory browser, the contents of
-  theory files can be displayed by double clicking on the
-  corresponding node.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsubsubsection{The ``File'' menu%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-Due to Java Applet security restrictions this menu is only available
-  in the full application version. The meaning of the menu items is as
-  follows:
-
-  \begin{description}
-
-  \item[Open \dots] Open a new graph file.
-
-  \item[Export to PostScript] Outputs the current graph in Postscript
-  format, appropriately scaled to fit on one single sheet of A4 paper.
-  The resulting file can be printed directly.
-
-  \item[Export to EPS] Outputs the current graph in Encapsulated
-  Postscript format. The resulting file can be included in other
-  documents.
-
-  \item[Quit] Quit the graph browser.
-
-  \end{description}%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsubsection{Syntax of graph definition files%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-A graph definition file has the following syntax:
-
-  \begin{center}\small
-  \begin{tabular}{rcl}
-    \isa{graph} & \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3D}{\isacharequal}}{\isaliteral{22}{\isachardoublequote}}} & \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{7B}{\isacharbraceleft}}\ vertex{\isaliteral{22}{\isachardoublequote}}}~\verb|;|~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{7D}{\isacharbraceright}}{\isaliteral{2B}{\isacharplus}}{\isaliteral{22}{\isachardoublequote}}} \\
-    \isa{vertex} & \isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{3D}{\isacharequal}}{\isaliteral{22}{\isachardoublequote}}} & \isa{{\isaliteral{22}{\isachardoublequote}}vertex{\isaliteral{5F}{\isacharunderscore}}name\ vertex{\isaliteral{5F}{\isacharunderscore}}ID\ dir{\isaliteral{5F}{\isacharunderscore}}name\ {\isaliteral{5B}{\isacharbrackleft}}{\isaliteral{22}{\isachardoublequote}}}~\verb|+|~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{5D}{\isacharbrackright}}\ path\ {\isaliteral{5B}{\isacharbrackleft}}{\isaliteral{22}{\isachardoublequote}}}~\verb|<|~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{7C}{\isacharbar}}{\isaliteral{22}{\isachardoublequote}}}~\verb|>|~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{5D}{\isacharbrackright}}\ {\isaliteral{7B}{\isacharbraceleft}}\ vertex{\isaliteral{5F}{\isacharunderscore}}ID\ {\isaliteral{7D}{\isacharbraceright}}{\isaliteral{2A}{\isacharasterisk}}{\isaliteral{22}{\isachardoublequote}}}
-  \end{tabular}
-  \end{center}
-
-  The meaning of the items in a vertex description is as follows:
-
-  \begin{description}
-
-  \item[\isa{vertex{\isaliteral{5F}{\isacharunderscore}}name}] The name of the vertex.
-
-  \item[\isa{vertex{\isaliteral{5F}{\isacharunderscore}}ID}] The vertex identifier. Note that there may
-  be several vertices with equal names, whereas identifiers must be
-  unique.
-
-  \item[\isa{dir{\isaliteral{5F}{\isacharunderscore}}name}] The name of the ``directory'' the vertex
-  should be placed in.  A ``\verb|+|'' sign after \isa{dir{\isaliteral{5F}{\isacharunderscore}}name} indicates that the nodes in the directory are initially
-  visible. Directories are initially invisible by default.
-
-  \item[\isa{path}] The path of the corresponding theory file. This
-  is specified relatively to the path of the graph definition file.
-
-  \item[List of successor/predecessor nodes] A ``\verb|<|''
-  sign before the list means that successor nodes are listed, a
-  ``\verb|>|'' sign means that predecessor nodes are listed. If
-  neither ``\verb|<|'' nor ``\verb|>|'' is found, the
-  browser assumes that successor nodes are listed.
-
-  \end{description}%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\isatagtheory
-\isacommand{end}\isamarkupfalse%
-%
-\endisatagtheory
-{\isafoldtheory}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-\end{isabellebody}%
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: "root"
-%%% End:
--- a/doc-src/System/Thy/document/Misc.tex	Mon Aug 27 16:10:54 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,662 +0,0 @@
-%
-\begin{isabellebody}%
-\def\isabellecontext{Misc}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\isatagtheory
-\isacommand{theory}\isamarkupfalse%
-\ Misc\isanewline
-\isakeyword{imports}\ Base\isanewline
-\isakeyword{begin}%
-\endisatagtheory
-{\isafoldtheory}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\isamarkupchapter{Miscellaneous tools \label{ch:tools}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-Subsequently we describe various Isabelle related utilities, given
-  in alphabetical order.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Resolving Isabelle components \label{sec:tool-components}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{tool}{components}\hypertarget{tool.components}{\hyperlink{tool.components}{\mbox{\isa{\isatool{components}}}}} tool resolves Isabelle components:
-\begin{ttbox}
-Usage: isabelle components [OPTIONS] [COMPONENTS ...]
-
-  Options are:
-    -R URL       component repository
-                 (default $ISABELLE_COMPONENT_REPOSITORY)
-    -a           all missing components
-    -l           list status
-
-  Resolve Isabelle components via download and installation.
-  COMPONENTS are identified via base name.
-
-  ISABELLE_COMPONENT_REPOSITORY="http://isabelle.in.tum.de/components"
-\end{ttbox}
-
-  Components are initialized as described in \secref{sec:components}
-  in a permissive manner, which can mark components as ``missing''.
-  This state is amended by letting \hyperlink{tool.components}{\mbox{\isa{\isatool{components}}}} download and
-  unpack components that are published on the default component
-  repository \url{http://isabelle.in.tum.de/components/} in
-  particular.
-
-  Option \verb|-R| specifies an alternative component
-  repository.  Note that \verb|file:///| URLs can be used for
-  local directories.
-
-  Option \verb|-a| selects all missing components to be
-  installed.  Explicit components may be named as command
-  line-arguments as well.  Note that components are uniquely
-  identified by their base name, while the installation takes place in
-  the location that was specified in the attempt to initialize the
-  component before.
-
-  Option \verb|-l| lists the current state of available and
-  missing components with their location (full name) within the
-  file-system.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Displaying documents%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{tool}{display}\hypertarget{tool.display}{\hyperlink{tool.display}{\mbox{\isa{\isatool{display}}}}} tool displays documents in DVI or PDF
-  format:
-\begin{ttbox}
-Usage: isabelle display [OPTIONS] FILE
-
-  Options are:
-    -c           cleanup -- remove FILE after use
-
-  Display document FILE (in DVI format).
-\end{ttbox}
-
-  \medskip The \verb|-c| option causes the input file to be
-  removed after use.  The program for viewing \verb|dvi| files is
-  determined by the \hyperlink{setting.DVI-VIEWER}{\mbox{\isa{\isatt{DVI{\isaliteral{5F}{\isacharunderscore}}VIEWER}}}} setting.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Viewing documentation \label{sec:tool-doc}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{tool}{doc}\hypertarget{tool.doc}{\hyperlink{tool.doc}{\mbox{\isa{\isatool{doc}}}}} tool displays online documentation:
-\begin{ttbox}
-Usage: isabelle doc [DOC]
-
-  View Isabelle documentation DOC, or show list of available documents.
-\end{ttbox}
-  If called without arguments, it lists all available documents. Each
-  line starts with an identifier, followed by a short description. Any
-  of these identifiers may be specified as the first argument in order
-  to have the corresponding document displayed.
-
-  \medskip The \hyperlink{setting.ISABELLE-DOCS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}DOCS}}}} setting specifies the list of
-  directories (separated by colons) to be scanned for documentations.
-  The program for viewing \verb|dvi| files is determined by the
-  \hyperlink{setting.DVI-VIEWER}{\mbox{\isa{\isatt{DVI{\isaliteral{5F}{\isacharunderscore}}VIEWER}}}} setting.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Shell commands within the settings environment \label{sec:tool-env}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{tool}{env}\hypertarget{tool.env}{\hyperlink{tool.env}{\mbox{\isa{\isatool{env}}}}} tool is a direct wrapper for the standard
-  \verb|/usr/bin/env| command on POSIX systems, running within
-  the Isabelle settings environment (\secref{sec:settings}).
-
-  The command-line arguments are that of the underlying version of
-  \verb|env|.  For example, the following invokes an instance of
-  the GNU Bash shell within the Isabelle environment:
-\begin{alltt}
-  isabelle env bash
-\end{alltt}%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Getting logic images%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{tool}{findlogics}\hypertarget{tool.findlogics}{\hyperlink{tool.findlogics}{\mbox{\isa{\isatool{findlogics}}}}} tool traverses all directories
-  specified in \hyperlink{setting.ISABELLE-PATH}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}PATH}}}}, looking for Isabelle logic
-  images. Its usage is:
-\begin{ttbox}
-Usage: isabelle findlogics
-
-  Collect heap file names from ISABELLE_PATH.
-\end{ttbox}
-
-  The base names of all files found on the path are printed --- sorted
-  and with duplicates removed. Also note that lookup in \hyperlink{setting.ISABELLE-PATH}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}PATH}}}} includes the current values of \hyperlink{setting.ML-SYSTEM}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}SYSTEM}}}}
-  and \hyperlink{setting.ML-PLATFORM}{\mbox{\isa{\isatt{ML{\isaliteral{5F}{\isacharunderscore}}PLATFORM}}}}. Thus switching to another ML compiler
-  may change the set of logic images available.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Inspecting the settings environment \label{sec:tool-getenv}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The Isabelle settings environment --- as provided by the
-  site-default and user-specific settings files --- can be inspected
-  with the \indexdef{}{tool}{getenv}\hypertarget{tool.getenv}{\hyperlink{tool.getenv}{\mbox{\isa{\isatool{getenv}}}}} tool:
-\begin{ttbox}
-Usage: isabelle getenv [OPTIONS] [VARNAMES ...]
-
-  Options are:
-    -a           display complete environment
-    -b           print values only (doesn't work for -a)
-    -d FILE      dump complete environment to FILE
-                 (null terminated entries)
-
-  Get value of VARNAMES from the Isabelle settings.
-\end{ttbox}
-
-  With the \verb|-a| option, one may inspect the full process
-  environment that Isabelle related programs are run in. This usually
-  contains much more variables than are actually Isabelle settings.
-  Normally, output is a list of lines of the form \isa{name}\verb|=|\isa{value}. The \verb|-b| option
-  causes only the values to be printed.
-
-  Option \verb|-d| produces a dump of the complete environment
-  to the specified file.  Entries are terminated by the ASCII null
-  character, i.e.\ the C string terminator.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsubsubsection{Examples%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-Get the location of \hyperlink{setting.ISABELLE-HOME-USER}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME{\isaliteral{5F}{\isacharunderscore}}USER}}}} where
-  user-specific information is stored:
-\begin{ttbox}
-isabelle getenv ISABELLE_HOME_USER
-\end{ttbox}
-
-  \medskip Get the value only of the same settings variable, which is
-particularly useful in shell scripts:
-\begin{ttbox}
-isabelle getenv -b ISABELLE_OUTPUT
-\end{ttbox}%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Installing standalone Isabelle executables \label{sec:tool-install}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-By default, the main Isabelle binaries (\hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}} etc.)  are just run from their location within the
-  distribution directory, probably indirectly by the shell through its
-  \hyperlink{setting.PATH}{\mbox{\isa{\isatt{PATH}}}}.  Other schemes of installation are supported by the
-  \indexdef{}{tool}{install}\hypertarget{tool.install}{\hyperlink{tool.install}{\mbox{\isa{\isatool{install}}}}} tool:
-\begin{ttbox}
-Usage: isabelle install [OPTIONS]
-
-  Options are:
-    -d DISTDIR   use DISTDIR as Isabelle distribution
-                 (default ISABELLE_HOME)
-    -p DIR       install standalone binaries in DIR
-
-  Install Isabelle executables with absolute references to the current
-  distribution directory.
-\end{ttbox}
-
-  The \verb|-d| option overrides the current Isabelle
-  distribution directory as determined by \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME}}}}.
-
-  The \verb|-p| option installs executable wrapper scripts for
-  \hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isaliteral{2D}{\isacharminus}}process}}}}, \hyperlink{executable.isabelle}{\mbox{\isa{\isatt{isabelle}}}}, containing
-  proper absolute references to the Isabelle distribution directory.
-  A typical \verb|DIR| specification would be some directory
-  expected to be in the shell's \hyperlink{setting.PATH}{\mbox{\isa{\isatt{PATH}}}}, such as \verb|$HOME/bin|.
-
-  It is possible to make symbolic links of the main Isabelle
-  executables, but making separate copies outside the Isabelle
-  distribution directory will not work.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Creating instances of the Isabelle logo%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{tool}{logo}\hypertarget{tool.logo}{\hyperlink{tool.logo}{\mbox{\isa{\isatool{logo}}}}} tool creates any instance of the generic
-  Isabelle logo as EPS or PDF.
-\begin{ttbox}
-Usage: isabelle logo [OPTIONS] NAME
-
-  Create instance NAME of the Isabelle logo (as EPS or PDF).
-
-  Options are:
-    -o OUTFILE   specify output file and format
-                 (default "isabelle_name.pdf")
-    -q           quiet mode
-\end{ttbox}
-
-  Option \verb|-o| specifies an explicit output file name and
-  format, e.g.\ \verb|mylogo.eps| for an EPS logo.  The default
-  is \verb|isabelle_|\isa{name}\verb|.pdf|, with the
-  lower-case version of the given name and PDF output.
-
-  Option \verb|-q| omits printing of the result file name.
-
-  \medskip Implementors of Isabelle tools and applications are
-  encouraged to make derived Isabelle logos for their own projects
-  using this template.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Isabelle wrapper for make \label{sec:tool-make}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The old \indexdef{}{tool}{make}\hypertarget{tool.make}{\hyperlink{tool.make}{\mbox{\isa{\isatool{make}}}}} tool is a very simple wrapper for
-  ordinary Unix \hyperlink{executable.make}{\mbox{\isa{\isatt{make}}}}:
-\begin{ttbox}
-Usage: isabelle make [ARGS ...]
-
-  Compile the logic in current directory using IsaMakefile.
-  ARGS are directly passed to the system make program.
-\end{ttbox}
-
-  Note that the Isabelle settings environment is also active. Thus one
-  may refer to its values within the \verb|IsaMakefile|, e.g.\
-  \verb|$(ISABELLE_HOME)|. Furthermore, programs started from
-  the make file also inherit this environment.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Creating Isabelle session directories
-  \label{sec:tool-mkdir}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The old \indexdef{}{tool}{mkdir}\hypertarget{tool.mkdir}{\hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}}} tool prepares Isabelle session
-  source directories, including a sensible default setup of \verb|IsaMakefile|, \verb|ROOT.ML|, and a \verb|document|
-  directory with a minimal \verb|root.tex| that is sufficient to
-  print all theories of the session (in the order of appearance); see
-  \secref{sec:tool-document} for further information on Isabelle
-  document preparation.  The usage of \hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}} is:
-
-\begin{ttbox}
-Usage: isabelle mkdir [OPTIONS] [LOGIC] NAME
-
-  Options are:
-    -I FILE      alternative IsaMakefile output
-    -P           include parent logic target
-    -b           setup build mode (session outputs heap image)
-    -q           quiet mode
-
-  Prepare session directory, including IsaMakefile and document source,
-  with parent LOGIC (default ISABELLE_LOGIC=\$ISABELLE_LOGIC)
-\end{ttbox}
-
-  The \hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}} tool is conservative in the sense that any
-  existing \verb|IsaMakefile| etc.\ is left unchanged.  Thus it
-  is safe to invoke it multiple times, although later runs may not
-  have the desired effect.
-
-  Note that \hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}} is unable to change \verb|IsaMakefile|
-  incrementally --- manual changes are required for multiple
-  sub-sessions.  On order to get an initial working session, the only
-  editing needed is to add appropriate \verb|use_thy| calls to the
-  generated \verb|ROOT.ML| file.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsubsubsection{Options%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \verb|-I| option specifies an alternative to \verb|IsaMakefile| for dependencies.  Note that ``\verb|-|'' refers
-  to \emph{stdout}, i.e.\ ``\verb|-I-|'' provides an easy way
-  to peek at \hyperlink{tool.mkdir}{\mbox{\isa{\isatool{mkdir}}}}'s idea of \hyperlink{tool.make}{\mbox{\isa{\isatool{make}}}} setup required for
-  some particular of Isabelle session.
-
-  \medskip The \verb|-P| option includes a target for the
-  parent \verb|LOGIC| session in the generated \verb|IsaMakefile|.  The corresponding sources are assumed to be located
-  within the Isabelle distribution.
-
-  \medskip The \verb|-b| option sets up the current directory
-  as the base for a new session that provides an actual logic image,
-  as opposed to one that only runs several theories based on an
-  existing image.  Note that in the latter case, everything except
-  \verb|IsaMakefile| would be placed into a separate directory
-  \verb|NAME|, rather than the current one.  See
-  \secref{sec:tool-usedir} for further information on \emph{build
-  mode} vs.\ \emph{example mode} of \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}}.
-
-  \medskip The \verb|-q| option enables quiet mode, suppressing
-  further notes on how to proceed.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Printing documents%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{tool}{print}\hypertarget{tool.print}{\hyperlink{tool.print}{\mbox{\isa{\isatool{print}}}}} tool prints documents:
-\begin{ttbox}
-Usage: isabelle print [OPTIONS] FILE
-
-  Options are:
-    -c           cleanup -- remove FILE after use
-
-  Print document FILE.
-\end{ttbox}
-
-  The \verb|-c| option causes the input file to be removed
-  after use.  The printer spool command is determined by the \hyperlink{setting.PRINT-COMMAND}{\mbox{\isa{\isatt{PRINT{\isaliteral{5F}{\isacharunderscore}}COMMAND}}}} setting.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Remove awkward symbol names from theory sources%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{tool}{unsymbolize}\hypertarget{tool.unsymbolize}{\hyperlink{tool.unsymbolize}{\mbox{\isa{\isatool{unsymbolize}}}}} tool tunes Isabelle theory sources to
-  improve readability for plain ASCII output (e.g.\ in email
-  communication).  Most notably, \hyperlink{tool.unsymbolize}{\mbox{\isa{\isatool{unsymbolize}}}} replaces awkward
-  arrow symbols such as \verb|\|\verb|<Longrightarrow>|
-  by \verb|==>|.
-\begin{ttbox}
-Usage: isabelle unsymbolize [FILES|DIRS...]
-
-  Recursively find .thy/.ML files, removing unreadable symbol names.
-  Note: this is an ad-hoc script; there is no systematic way to replace
-  symbols independently of the inner syntax of a theory!
-
-  Renames old versions of FILES by appending "~~".
-\end{ttbox}%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Running Isabelle sessions \label{sec:tool-usedir}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The old \indexdef{}{tool}{usedir}\hypertarget{tool.usedir}{\hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}}} tool builds object-logic images, or
-  runs example sessions based on existing logics. Its usage is:
-\begin{ttbox}
-Usage: isabelle usedir [OPTIONS] LOGIC NAME
-
-  Options are:
-    -C BOOL      copy existing document directory to -D PATH (default true)
-    -D PATH      dump generated document sources into PATH
-    -M MAX       multithreading: maximum number of worker threads (default 1)
-    -P PATH      set path for remote theory browsing information
-    -Q INT       set threshold for sub-proof parallelization (default 50)
-    -T LEVEL     multithreading: trace level (default 0)
-    -V VARIANT   declare alternative document VARIANT
-    -b           build mode (output heap image, using current dir)
-    -d FORMAT    build document as FORMAT (default false)
-    -f NAME      use ML file NAME (default ROOT.ML)
-    -g BOOL      generate session graph image for document (default false)
-    -i BOOL      generate theory browser information (default false)
-    -m MODE      add print mode for output
-    -p LEVEL     set level of detail for proof objects (default 0)
-    -q LEVEL     set level of parallel proof checking (default 1)
-    -r           reset session path
-    -s NAME      override session NAME
-    -t BOOL      internal session timing (default false)
-    -v BOOL      be verbose (default false)
-
-  Build object-logic or run examples. Also creates browsing
-  information (HTML etc.) according to settings.
-
-  ISABELLE_USEDIR_OPTIONS=...
-
-  ML_PLATFORM=...
-  ML_HOME=...
-  ML_SYSTEM=...
-  ML_OPTIONS=...
-\end{ttbox}
-
-  Note that the value of the \indexref{}{setting}{ISABELLE\_USEDIR\_OPTIONS}\hyperlink{setting.ISABELLE-USEDIR-OPTIONS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}USEDIR{\isaliteral{5F}{\isacharunderscore}}OPTIONS}}}}
-  setting is implicitly prefixed to \emph{any} \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}}
-  call. Since the \verb|IsaMakefile|s of all object-logics
-  distributed with Isabelle just invoke \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} for the real
-  work, one may control compilation options globally via above
-  variable. In particular, generation of \rmindex{HTML} browsing
-  information and document preparation is controlled here.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsubsubsection{Options%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-Basically, there are two different modes of operation: \emph{build
-  mode} (enabled through the \verb|-b| option) and
-  \emph{example mode} (default).
-
-  Calling \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} with \verb|-b| runs \hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isaliteral{2D}{\isacharminus}}process}}}} with input image \verb|LOGIC| and output to
-  \verb|NAME|, as provided on the command line. This will be a
-  batch session, running \verb|ROOT.ML| from the current
-  directory and then quitting.  It is assumed that \verb|ROOT.ML|
-  contains all ML commands required to build the logic.
-
-  In example mode, \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} runs a read-only session of
-  \verb|LOGIC| and automatically runs \verb|ROOT.ML| from
-  within directory \verb|NAME|.  It assumes that this file
-  contains appropriate ML commands to run the desired examples.
-
-  \medskip The \verb|-i| option controls theory browser data
-  generation. It may be explicitly turned on or off --- as usual, the
-  last occurrence of \verb|-i| on the command line wins.
-
-  The \verb|-P| option specifies a path (or actual URL) to be
-  prefixed to any \emph{non-local} reference of existing theories.
-  Thus user sessions may easily link to existing Isabelle libraries
-  already present on the WWW.
-
-  The \verb|-m| options specifies additional print modes to be
-  activated temporarily while the session is processed.
-
-  \medskip The \verb|-d| option controls document preparation.
-  Valid arguments are \verb|false| (do not prepare any document;
-  this is default), or any of \verb|dvi|, \verb|dvi.gz|,
-  \verb|ps|, \verb|ps.gz|, \verb|pdf|.  The logic
-  session has to provide a properly setup \verb|document|
-  directory.  See \secref{sec:tool-document} and
-  \secref{sec:tool-latex} for more details.
-
-  \medskip The \verb|-V| option declares alternative document
-  variants, consisting of name/tags pairs (cf.\ options \verb|-n| and \verb|-t| of \indexref{}{tool}{document}\hyperlink{tool.document}{\mbox{\isa{\isatool{document}}}}).  The standard
-  document is equivalent to ``\verb|document=theory,proof,ML|'', which means that all theory begin/end
-  commands, proof body texts, and ML code will be presented
-  faithfully.
-
-  An alternative variant ``\verb|outline=/proof/ML|'' would
-  fold proof and ML parts, replacing the original text by a short
-  place-holder.  The form ``\isa{name}\verb|=-|,'' means to
-  remove document \isa{name} from the list of variants to be
-  processed.  Any number of \verb|-V| options may be given;
-  later declarations have precedence over earlier ones.
-
-  Some document variant \isa{name} may use an alternative {\LaTeX}
-  entry point called \verb|document/root_|\isa{{\isaliteral{22}{\isachardoublequote}}name{\isaliteral{22}{\isachardoublequote}}}\verb|.tex| if that file exists; otherwise the common
-  \verb|document/root.tex| is used.
-
-  \medskip The \verb|-g| option produces images of the theory
-  dependency graph (cf.\ \secref{sec:browse}) for inclusion in the
-  generated document, both as \verb|session_graph.eps| and
-  \verb|session_graph.pdf| at the same time.  To include this in
-  the final {\LaTeX} document one could say \verb|\includegraphics{session_graph}| in \verb|document/root.tex| (omitting the file-name extension enables
-  {\LaTeX} to select to correct version, either for the DVI or PDF
-  output path).
-
-  \medskip The \verb|-D| option causes the generated document
-  sources to be dumped at location \verb|PATH|; this path is
-  relative to the session's main directory.  If the \verb|-C|
-  option is true, this will include a copy of an existing \verb|document| directory as provided by the user.  For example, \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}}~\verb|-D generated HOL Foo| produces a complete set
-  of document sources at \verb|Foo/generated|.  Subsequent
-  invocation of \hyperlink{tool.document}{\mbox{\isa{\isatool{document}}}}~\verb|Foo/generated| (see also
-  \secref{sec:tool-document}) will process the final result
-  independently of an Isabelle job.  This decoupled mode of operation
-  facilitates debugging of serious {\LaTeX} errors, for example.
-
-  \medskip The \verb|-p| option determines the level of detail
-  for internal proof objects, see also the \emph{Isabelle Reference
-  Manual}~\cite{isabelle-ref}.
-
-  \medskip The \verb|-q| option specifies the level of parallel
-  proof checking: \verb|0| no proofs, \verb|1| toplevel
-  proofs (default), \verb|2| toplevel and nested Isar proofs.
-  The option \verb|-Q| specifies a threshold for \verb|-q2|: nested proofs are only parallelized when the current number
-  of forked proofs falls below the given value (default 50),
-  multiplied by the number of worker threads (see option \verb|-M|).
-
-  \medskip The \verb|-t| option produces a more detailed
-  internal timing report of the session.
-
-  \medskip The \verb|-v| option causes additional information
-  to be printed while running the session, notably the location of
-  prepared documents.
-
-  \medskip The \verb|-M| option specifies the maximum number of
-  parallel worker threads used for processing independent tasks when
-  checking theory sources (multithreading only works on suitable ML
-  platforms).  The special value of \verb|0| or \verb|max|
-  refers to the number of actual CPU cores of the underlying machine,
-  which is a good starting point for optimal performance tuning.  The
-  \verb|-T| option determines the level of detail in tracing
-  output concerning the internal locking and scheduling in
-  multithreaded operation.  This may be helpful in isolating
-  performance bottle-necks, e.g.\ due to excessive wait states when
-  locking critical code sections.
-
-  \medskip Any \hyperlink{tool.usedir}{\mbox{\isa{\isatool{usedir}}}} session is named by some \emph{session
-  identifier}. These accumulate, documenting the way sessions depend
-  on others. For example, consider \verb|Pure/FOL/ex|, which
-  refers to the examples of FOL, which in turn is built upon Pure.
-
-  The current session's identifier is by default just the base name of
-  the \verb|LOGIC| argument (in build mode), or of the \verb|NAME| argument (in example mode). This may be overridden explicitly
-  via the \verb|-s| option.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Output the version identifier of the Isabelle distribution%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{tool}{version}\hypertarget{tool.version}{\hyperlink{tool.version}{\mbox{\isa{\isatool{version}}}}} tool displays Isabelle version information:
-\begin{ttbox}
-Usage: isabelle version [OPTIONS]
-
-  Options are:
-    -i           short identification (derived from Mercurial id)
-
-  Display Isabelle version information.
-\end{ttbox}
-
-  \medskip The default is to output the full version string of the
-  Isabelle distribution, e.g.\ ``\verb|Isabelle2012: May 2012|.
-
-  The \verb|-i| option produces a short identification derived
-  from the Mercurial id of the \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME}}}} directory.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Convert XML to YXML%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{tool}{yxml}\hypertarget{tool.yxml}{\hyperlink{tool.yxml}{\mbox{\isa{\isatool{yxml}}}}} tool converts a standard XML document (stdin)
-  to the much simpler and more efficient YXML format of Isabelle
-  (stdout).  The YXML format is defined as follows.
-
-  \begin{enumerate}
-
-  \item The encoding is always UTF-8.
-
-  \item Body text is represented verbatim (no escaping, no special
-  treatment of white space, no named entities, no CDATA chunks, no
-  comments).
-
-  \item Markup elements are represented via ASCII control characters
-  \isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E626F6C643E}{}\isactrlbold X\ {\isaliteral{3D}{\isacharequal}}\ {\isadigit{5}}{\isaliteral{22}{\isachardoublequote}}} and \isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E626F6C643E}{}\isactrlbold Y\ {\isaliteral{3D}{\isacharequal}}\ {\isadigit{6}}{\isaliteral{22}{\isachardoublequote}}} as follows:
-
-  \begin{tabular}{ll}
-    XML & YXML \\\hline
-    \verb|<|\isa{{\isaliteral{22}{\isachardoublequote}}name\ attribute{\isaliteral{22}{\isachardoublequote}}}\verb|=|\isa{{\isaliteral{22}{\isachardoublequote}}value\ {\isaliteral{5C3C646F74733E}{\isasymdots}}{\isaliteral{22}{\isachardoublequote}}}\verb|>| &
-    \isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E626F6C643E}{}\isactrlbold X\isaliteral{5C3C5E626F6C643E}{}\isactrlbold Yname\isaliteral{5C3C5E626F6C643E}{}\isactrlbold Yattribute{\isaliteral{22}{\isachardoublequote}}}\verb|=|\isa{{\isaliteral{22}{\isachardoublequote}}value{\isaliteral{5C3C646F74733E}{\isasymdots}}\isaliteral{5C3C5E626F6C643E}{}\isactrlbold X{\isaliteral{22}{\isachardoublequote}}} \\
-    \verb|</|\isa{name}\verb|>| & \isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E626F6C643E}{}\isactrlbold X\isaliteral{5C3C5E626F6C643E}{}\isactrlbold Y\isaliteral{5C3C5E626F6C643E}{}\isactrlbold X{\isaliteral{22}{\isachardoublequote}}} \\
-  \end{tabular}
-
-  There is no special case for empty body text, i.e.\ \verb|<foo/>| is treated like \verb|<foo></foo>|.  Also note that
-  \isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E626F6C643E}{}\isactrlbold X{\isaliteral{22}{\isachardoublequote}}} and \isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E626F6C643E}{}\isactrlbold Y{\isaliteral{22}{\isachardoublequote}}} may never occur in
-  well-formed XML documents.
-
-  \end{enumerate}
-
-  Parsing YXML is pretty straight-forward: split the text into chunks
-  separated by \isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E626F6C643E}{}\isactrlbold X{\isaliteral{22}{\isachardoublequote}}}, then split each chunk into
-  sub-chunks separated by \isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E626F6C643E}{}\isactrlbold Y{\isaliteral{22}{\isachardoublequote}}}.  Markup chunks start
-  with an empty sub-chunk, and a second empty sub-chunk indicates
-  close of an element.  Any other non-empty chunk consists of plain
-  text.  For example, see \verb|~~/src/Pure/PIDE/yxml.ML| or
-  \verb|~~/src/Pure/PIDE/yxml.scala|.
-
-  YXML documents may be detected quickly by checking that the first
-  two characters are \isa{{\isaliteral{22}{\isachardoublequote}}\isaliteral{5C3C5E626F6C643E}{}\isactrlbold X\isaliteral{5C3C5E626F6C643E}{}\isactrlbold Y{\isaliteral{22}{\isachardoublequote}}}.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\isatagtheory
-\isacommand{end}\isamarkupfalse%
-%
-\endisatagtheory
-{\isafoldtheory}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-\end{isabellebody}%
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: "root"
-%%% End:
--- a/doc-src/System/Thy/document/Presentation.tex	Mon Aug 27 16:10:54 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,352 +0,0 @@
-%
-\begin{isabellebody}%
-\def\isabellecontext{Presentation}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\isatagtheory
-\isacommand{theory}\isamarkupfalse%
-\ Presentation\isanewline
-\isakeyword{imports}\ Base\isanewline
-\isakeyword{begin}%
-\endisatagtheory
-{\isafoldtheory}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\isamarkupchapter{Presenting theories \label{ch:present}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-Isabelle provides several ways to present the outcome of
-  formal developments, including WWW-based browsable libraries or
-  actual printable documents.  Presentation is centered around the
-  concept of \emph{sessions} (\chref{ch:session}).  The global session
-  structure is that of a tree, with Isabelle Pure at its root, further
-  object-logics derived (e.g.\ HOLCF from HOL, and HOL from Pure), and
-  application sessions further on in the hierarchy.
-
-  The tools \indexref{}{tool}{mkroot}\hyperlink{tool.mkroot}{\mbox{\isa{\isatool{mkroot}}}} and \indexref{}{tool}{build}\hyperlink{tool.build}{\mbox{\isa{\isatool{build}}}} provide the
-  primary means for managing Isabelle sessions, including proper setup
-  for presentation; \hyperlink{tool.build}{\mbox{\isa{\isatool{build}}}} takes care to have \indexref{}{executable}{isabelle-process}\hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isaliteral{2D}{\isacharminus}}process}}}} run any additional stages required for document
-  preparation, notably the \indexref{}{tool}{document}\hyperlink{tool.document}{\mbox{\isa{\isatool{document}}}} and \indexref{}{tool}{latex}\hyperlink{tool.latex}{\mbox{\isa{\isatool{latex}}}}.
-  The complete tool chain for managing batch-mode Isabelle sessions is
-  illustrated in \figref{fig:session-tools}.
-
-  \begin{figure}[htbp]
-  \begin{center}
-  \begin{tabular}{lp{0.6\textwidth}}
-
-      \indexref{}{tool}{mkroot}\hyperlink{tool.mkroot}{\mbox{\isa{\isatool{mkroot}}}} & invoked once by the user to initialize the
-      session \verb|ROOT| with optional \verb|document|
-      directory; \\
-
-      \indexref{}{tool}{build}\hyperlink{tool.build}{\mbox{\isa{\isatool{build}}}} & invoked repeatedly by the user to keep
-      session output up-to-date (HTML, documents etc.); \\
-
-      \hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isaliteral{2D}{\isacharminus}}process}}}} & run through \indexref{}{tool}{build}\hyperlink{tool.build}{\mbox{\isa{\isatool{build}}}}; \\
-
-      \indexref{}{tool}{document}\hyperlink{tool.document}{\mbox{\isa{\isatool{document}}}} & run by the Isabelle process if document
-      preparation is enabled; \\
-
-      \indexref{}{tool}{latex}\hyperlink{tool.latex}{\mbox{\isa{\isatool{latex}}}} & universal {\LaTeX} tool wrapper invoked
-      multiple times by \indexref{}{tool}{document}\hyperlink{tool.document}{\mbox{\isa{\isatool{document}}}}; also useful for manual
-      experiments; \\
-
-  \end{tabular}
-  \caption{The tool chain of Isabelle session presentation} \label{fig:session-tools}
-  \end{center}
-  \end{figure}%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Generating theory browser information \label{sec:info}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-\index{theory browsing information|bold}
-
-  As a side-effect of building sessions, Isabelle is able to generate
-  theory browsing information, including HTML documents that show the
-  theory sources and the relationship with its ancestors and
-  descendants.  Besides the HTML file that is generated for every
-  theory, Isabelle stores links to all theories in an index
-  file. These indexes are linked with other indexes to represent the
-  overall tree structure of the sessions.
-
-  Isabelle also generates graph files that represent the theory
-  dependencies within a session.  There is a graph browser Java applet
-  embedded in the generated HTML pages, and also a stand-alone
-  application that allows browsing theory graphs without having to
-  start a WWW client first.  The latter version also includes features
-  such as generating Postscript files, which are not available in the
-  applet version.  See \secref{sec:browse} for further information.
-
-  \medskip
-
-  The easiest way to let Isabelle generate theory browsing information
-  for existing sessions is to invoke \hyperlink{tool.build}{\mbox{\isa{\isatool{build}}}} with suitable
-  options:
-
-\begin{ttbox}
-isabelle build -o browser_info -v -c FOL
-\end{ttbox}
-
-  The presentation output will appear in \verb|$ISABELLE_BROWSER_INFO/FOL| as reported by the above verbose
-  invocation of the build process.
-
-  Many Isabelle sessions (such as \verb|HOL-Library| in \verb|~~/src/HOL/Library|) also provide actual printable documents.
-  These are prepared automatically as well if enabled like this:
-\begin{ttbox}
-isabelle build -o browser_info -o document=pdf -v -c HOL-Library
-\end{ttbox}
-
-  Enabling both browser info and document preparation simultaneously
-  causes an appropriate ``document'' link to be included in the HTML
-  index.  Documents may be generated independently of browser
-  information as well, see \secref{sec:tool-document} for further
-  details.
-
-  \bigskip The theory browsing information is stored in a
-  sub-directory directory determined by the \indexref{}{setting}{ISABELLE\_BROWSER\_INFO}\hyperlink{setting.ISABELLE-BROWSER-INFO}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}BROWSER{\isaliteral{5F}{\isacharunderscore}}INFO}}}} setting plus a prefix corresponding to the
-  session identifier (according to the tree structure of sub-sessions
-  by default).  In order to present Isabelle applications on the web,
-  the corresponding subdirectory from \hyperlink{setting.ISABELLE-BROWSER-INFO}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}BROWSER{\isaliteral{5F}{\isacharunderscore}}INFO}}}}
-  can be put on a WWW server.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Preparing session root directories \label{sec:tool-mkroot}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{tool}{mkroot}\hypertarget{tool.mkroot}{\hyperlink{tool.mkroot}{\mbox{\isa{\isatool{mkroot}}}}} tool configures a given directory as
-  session root, with some \verb|ROOT| file and optional document
-  source directory.  Its usage is:
-\begin{ttbox}
-Usage: isabelle mkroot [OPTIONS] [DIR]
-
-  Options are:
-    -d           enable document preparation
-    -n NAME      alternative session name (default: DIR base name)
-
-  Prepare session root DIR (default: current directory).
-\end{ttbox}
-
-  The results are placed in the given directory \isa{dir}, which
-  refers to the current directory by default.  The \hyperlink{tool.mkroot}{\mbox{\isa{\isatool{mkroot}}}} tool
-  is conservative in the sense that it does not overwrite existing
-  files or directories.  Earlier attempts to generate a session root
-  need to be deleted manually.
-
-  \medskip Option \verb|-d| indicates that the session shall be
-  accompanied by a formal document, with \isa{dir}\verb|/document/root.tex| as its {\LaTeX} entry point (see also
-  \chref{ch:present}).
-
-  Option \verb|-n| allows to specify an alternative session
-  name; otherwise the base name of the given directory is used.
-
-  \medskip The implicit Isabelle settings variable \hyperlink{setting.ISABELLE-LOGIC}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}LOGIC}}}} specifies the parent session, and \hyperlink{setting.ISABELLE-DOCUMENT-FORMAT}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}DOCUMENT{\isaliteral{5F}{\isacharunderscore}}FORMAT}}}} the document format to be filled filled
-  into the generated \verb|ROOT| file.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsubsubsection{Examples%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-Produce session \verb|Test| (with document preparation)
-  within a separate directory of the same name:
-\begin{ttbox}
-isabelle mkroot -d Test && isabelle build -D Test
-\end{ttbox}
-
-  \medskip Upgrade the current directory into a session ROOT with
-  document preparation, and build it:
-\begin{ttbox}
-isabelle mkroot -d && isabelle build -D .
-\end{ttbox}%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Preparing Isabelle session documents
-  \label{sec:tool-document}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{tool}{document}\hypertarget{tool.document}{\hyperlink{tool.document}{\mbox{\isa{\isatool{document}}}}} tool prepares logic session
-  documents, processing the sources both as provided by the user and
-  generated by Isabelle.  Its usage is:
-\begin{ttbox}
-Usage: isabelle document [OPTIONS] [DIR]
-
-  Options are:
-    -c           cleanup -- be aggressive in removing old stuff
-    -n NAME      specify document name (default 'document')
-    -o FORMAT    specify output format: dvi (default), dvi.gz, ps,
-                 ps.gz, pdf
-    -t TAGS      specify tagged region markup
-
-  Prepare the theory session document in DIR (default 'document')
-  producing the specified output format.
-\end{ttbox}
-  This tool is usually run automatically as part of the Isabelle build
-  process, provided document preparation has been enabled via suitable
-  options.  It may be manually invoked on the generated browser
-  information document output as well, e.g.\ in case of errors
-  encountered in the batch run.
-
-  \medskip The \verb|-c| option tells \hyperlink{tool.document}{\mbox{\isa{\isatool{document}}}} to
-  dispose the document sources after successful operation!  This is
-  the right thing to do for sources generated by an Isabelle process,
-  but take care of your files in manual document preparation!
-
-  \medskip The \verb|-n| and \verb|-o| option specify
-  the final output file name and format, the default is ``\verb|document.dvi|''.  Note that the result will appear in the parent of
-  the target \verb|DIR|.
-
-  \medskip The \verb|-t| option tells {\LaTeX} how to interpret
-  tagged Isabelle command regions.  Tags are specified as a comma
-  separated list of modifier/name pairs: ``\verb|+|\isa{foo}'' (or just ``\isa{foo}'') means to keep, ``\verb|-|\isa{foo}'' to drop, and ``\verb|/|\isa{foo}'' to
-  fold text tagged as \isa{foo}.  The builtin default is equivalent
-  to the tag specification ``\verb|+theory,+proof,+ML,+visible,-invisible|''; see also the {\LaTeX}
-  macros \verb|\isakeeptag|, \verb|\isadroptag|, and
-  \verb|\isafoldtag|, in \verb|~~/lib/texinputs/isabelle.sty|.
-
-  \medskip Document preparation requires a \verb|document|
-  directory within the session sources.  This directory is supposed to
-  contain all the files needed to produce the final document --- apart
-  from the actual theories which are generated by Isabelle.
-
-  \medskip For most practical purposes, \hyperlink{tool.document}{\mbox{\isa{\isatool{document}}}} is smart
-  enough to create any of the specified output formats, taking
-  \verb|root.tex| supplied by the user as a starting point.  This
-  even includes multiple runs of {\LaTeX} to accommodate references
-  and bibliographies (the latter assumes \verb|root.bib| within
-  the same directory).
-
-  In more complex situations, a separate \verb|build| script for
-  the document sources may be given.  It is invoked with command-line
-  arguments for the document format and the document variant name.
-  The script needs to produce corresponding output files, e.g.\
-  \verb|root.pdf| for target format \verb|pdf| (and default
-  default variants).  The main work can be again delegated to \hyperlink{tool.latex}{\mbox{\isa{\isatool{latex}}}}, but it is also possible to harvest generated {\LaTeX}
-  sources and copy them elsewhere, for example.
-
-  \medskip When running the session, Isabelle copies the content of
-  the original \verb|document| directory into its proper place
-  within \hyperlink{setting.ISABELLE-BROWSER-INFO}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}BROWSER{\isaliteral{5F}{\isacharunderscore}}INFO}}}}, according to the session
-  path and document variant.  Then, for any processed theory \isa{A}
-  some {\LaTeX} source is generated and put there as \isa{A}\verb|.tex|.  Furthermore, a list of all generated theory
-  files is put into \verb|session.tex|.  Typically, the root
-  {\LaTeX} file provided by the user would include \verb|session.tex| to get a document containing all the theories.
-
-  The {\LaTeX} versions of the theories require some macros defined in
-  \verb|~~/lib/texinputs/isabelle.sty|.  Doing \verb|\usepackage{isabelle}| in \verb|root.tex| should be fine;
-  the underlying \hyperlink{tool.latex}{\mbox{\isa{\isatool{latex}}}} already includes an appropriate path
-  specification for {\TeX} inputs.
-
-  If the text contains any references to Isabelle symbols (such as
-  \verb|\|\verb|<forall>|) then \verb|isabellesym.sty| should be included as well.  This package
-  contains a standard set of {\LaTeX} macro definitions \verb|\isasym|\isa{foo} corresponding to \verb|\|\verb|<|\isa{foo}\verb|>|, see \cite{isabelle-implementation} for a
-  complete list of predefined Isabelle symbols.  Users may invent
-  further symbols as well, just by providing {\LaTeX} macros in a
-  similar fashion as in \verb|~~/lib/texinputs/isabellesym.sty| of
-  the distribution.
-
-  For proper setup of DVI and PDF documents (with hyperlinks and
-  bookmarks), we recommend to include \verb|~~/lib/texinputs/pdfsetup.sty| as well.
-
-  \medskip As a final step of Isabelle document preparation, \hyperlink{tool.document}{\mbox{\isa{\isatool{document}}}}~\verb|-c| is run on the resulting copy of the
-  \verb|document| directory.  Thus the actual output document is
-  built and installed in its proper place.  The generated sources are
-  deleted after successful run of {\LaTeX} and friends.
-
-  Some care is needed if the document output location is configured
-  differently, say within a directory whose content is still required
-  afterwards!%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Running {\LaTeX} within the Isabelle environment
-  \label{sec:tool-latex}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{tool}{latex}\hypertarget{tool.latex}{\hyperlink{tool.latex}{\mbox{\isa{\isatool{latex}}}}} tool provides the basic interface for
-  Isabelle document preparation.  Its usage is:
-\begin{ttbox}
-Usage: isabelle latex [OPTIONS] [FILE]
-
-  Options are:
-    -o FORMAT    specify output format: dvi (default), dvi.gz, ps,
-                 ps.gz, pdf, bbl, idx, sty, syms
-
-  Run LaTeX (and related tools) on FILE (default root.tex),
-  producing the specified output format.
-\end{ttbox}
-
-  Appropriate {\LaTeX}-related programs are run on the input file,
-  according to the given output format: \hyperlink{executable.latex}{\mbox{\isa{\isatt{latex}}}},
-  \hyperlink{executable.pdflatex}{\mbox{\isa{\isatt{pdflatex}}}}, \hyperlink{executable.dvips}{\mbox{\isa{\isatt{dvips}}}}, \hyperlink{executable.bibtex}{\mbox{\isa{\isatt{bibtex}}}}
-  (for \verb|bbl|), and \hyperlink{executable.makeindex}{\mbox{\isa{\isatt{makeindex}}}} (for \verb|idx|).  The actual commands are determined from the settings
-  environment (\hyperlink{setting.ISABELLE-LATEX}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}LATEX}}}} etc.).
-
-  The \verb|sty| output format causes the Isabelle style files to
-  be updated from the distribution.  This is useful in special
-  situations where the document sources are to be processed another
-  time by separate tools.
-
-  The \verb|syms| output is for internal use; it generates lists
-  of symbols that are available without loading additional {\LaTeX}
-  packages.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsubsubsection{Examples%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-Invoking \hyperlink{tool.latex}{\mbox{\isa{\isatool{latex}}}} by hand may be occasionally useful when
-  debugging failed attempts of the automatic document preparation
-  stage of batch-mode Isabelle.  The abortive process leaves the
-  sources at a certain place within \hyperlink{setting.ISABELLE-BROWSER-INFO}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}BROWSER{\isaliteral{5F}{\isacharunderscore}}INFO}}}},
-  see the runtime error message for details.  This enables users to
-  inspect {\LaTeX} runs in further detail, e.g.\ like this:
-
-\begin{ttbox}
-  cd ~/.isabelle/IsabelleXXXX/browser_info/HOL/Test/document
-  isabelle latex -o pdf
-\end{ttbox}%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\isatagtheory
-\isacommand{end}\isamarkupfalse%
-%
-\endisatagtheory
-{\isafoldtheory}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-\end{isabellebody}%
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: "root"
-%%% End:
--- a/doc-src/System/Thy/document/Scala.tex	Mon Aug 27 16:10:54 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-%
-\begin{isabellebody}%
-\def\isabellecontext{Scala}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\isatagtheory
-\isacommand{theory}\isamarkupfalse%
-\ Scala\isanewline
-\isakeyword{imports}\ Base\isanewline
-\isakeyword{begin}%
-\endisatagtheory
-{\isafoldtheory}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\isamarkupchapter{Isabelle/Scala development tools%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-Isabelle/ML and Isabelle/Scala are the two main language
-environments for Isabelle tool implementations.  There are some basic
-command-line tools to work with the underlying Java Virtual Machine,
-the Scala toplevel and compiler.  Note that Isabelle/jEdit
-(\secref{sec:tool-tty}) provides a Scala Console for interactive
-experimentation within the running application.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Java Runtime Environment within Isabelle \label{sec:tool-java}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{tool}{java}\hypertarget{tool.java}{\hyperlink{tool.java}{\mbox{\isa{\isatool{java}}}}} tool is a direct wrapper for the Java
-  Runtime Environment, within the regular Isabelle settings
-  environment (\secref{sec:settings}).  The command line arguments are
-  that of the underlying Java version.  It is run in \verb|-server| mode if possible, to improve performance (at the cost of
-  extra startup time).
-
-  The \verb|java| executable is the one within \hyperlink{setting.ISABELLE-JDK-HOME}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}JDK{\isaliteral{5F}{\isacharunderscore}}HOME}}}}, according to the standard directory layout for
-  official JDK distributions.  The class loader is augmented such that
-  the name space of \verb|Isabelle/Pure.jar| is available,
-  which is the main Isabelle/Scala module.
-
-  For example, the following command-line invokes the main method of
-  class \verb|isabelle.GUI_Setup|, which opens a windows with
-  some diagnostic information about the Isabelle environment:
-\begin{alltt}
-  isabelle java isabelle.GUI_Setup
-\end{alltt}%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Scala toplevel \label{sec:tool-scala}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{tool}{scala}\hypertarget{tool.scala}{\hyperlink{tool.scala}{\mbox{\isa{\isatool{scala}}}}} tool is a direct wrapper for the Scala
-  toplevel; see also \hyperlink{tool.java}{\mbox{\isa{\isatool{java}}}} above.  The command line arguments
-  are that of the underlying Scala version.
-
-  This allows to interact with Isabelle/Scala in TTY mode like this:
-\begin{alltt}
-  isabelle scala
-  scala> isabelle.Isabelle_System.getenv("ISABELLE_HOME")
-  scala> val options = isabelle.Options.init()
-  scala> options.bool("browser_info")
-\end{alltt}%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Scala compiler \label{sec:tool-scalac}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{tool}{scalac}\hypertarget{tool.scalac}{\hyperlink{tool.scalac}{\mbox{\isa{\isatool{scalac}}}}} tool is a direct wrapper for the Scala
-  compiler; see also \hyperlink{tool.scala}{\mbox{\isa{\isatool{scala}}}} above.  The command line arguments
-  are that of the underlying Scala version.
-
-  This allows to compile further Scala modules, depending on existing
-  Isabelle/Scala functionality.  The resulting class or jar files can
-  be added to the \hyperlink{setting.CLASSPATH}{\mbox{\isa{\isatt{CLASSPATH}}}} via the \verb|classpath|
-  Bash function that is provided by the Isabelle process environment.
-  Thus add-on components can register themselves in a modular manner,
-  see also \secref{sec:components}.
-
-  Note that jEdit (\secref{sec:tool-jedit}) has its own mechanisms for
-  adding plugin components, which needs special attention since
-  it overrides the standard Java class loader.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\isatagtheory
-\isacommand{end}\isamarkupfalse%
-%
-\endisatagtheory
-{\isafoldtheory}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-\isanewline
-\end{isabellebody}%
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: "root"
-%%% End:
--- a/doc-src/System/Thy/document/Sessions.tex	Mon Aug 27 16:10:54 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,454 +0,0 @@
-%
-\begin{isabellebody}%
-\def\isabellecontext{Sessions}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\isatagtheory
-\isacommand{theory}\isamarkupfalse%
-\ Sessions\isanewline
-\isakeyword{imports}\ Base\isanewline
-\isakeyword{begin}%
-\endisatagtheory
-{\isafoldtheory}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\isamarkupchapter{Isabelle sessions and build management \label{ch:session}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-An Isabelle \emph{session} consists of a collection of related
-  theories that may be associated with formal documents (see also
-  \chref{ch:present}).  There is also a notion of \emph{persistent
-  heap} image to capture the state of a session, similar to
-  object-code in compiled programming languages.  Thus the concept of
-  session resembles that of a ``project'' in common IDE environments,
-  but the specific name emphasizes the connection to interactive
-  theorem proving: the session wraps-up the results of
-  user-interaction with the prover in a persistent form.
-
-  Application sessions are built on a given parent session, which may
-  be built recursively on other parents.  Following this path in the
-  hierarchy eventually leads to some major object-logic session like
-  \isa{{\isaliteral{22}{\isachardoublequote}}HOL{\isaliteral{22}{\isachardoublequote}}}, which itself is based on \isa{{\isaliteral{22}{\isachardoublequote}}Pure{\isaliteral{22}{\isachardoublequote}}} as the common
-  root of all sessions.
-
-  Processing sessions may take considerable time.  Isabelle build
-  management helps to organize this efficiently.  This includes
-  support for parallel build jobs, in addition to the multithreaded
-  theory and proof checking that is already provided by the prover
-  process itself.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Session ROOT specifications \label{sec:session-root}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-Session specifications reside in files called \verb|ROOT|
-  within certain directories, such as the home locations of registered
-  Isabelle components or additional project directories given by the
-  user.
-
-  The ROOT file format follows the lexical conventions of the
-  \emph{outer syntax} of Isabelle/Isar, see also
-  \cite{isabelle-isar-ref}.  This defines common forms like
-  identifiers, names, quoted strings, verbatim text, nested comments
-  etc.  The grammar for a single \hyperlink{syntax.session-entry}{\mbox{\isa{session{\isaliteral{5F}{\isacharunderscore}}entry}}} is given as
-  syntax diagram below; each ROOT file may contain multiple session
-  specifications like this.
-
-  Isabelle/jEdit (\secref{sec:tool-jedit}) includes a simple editing
-  mode \verb|isabelle-root| for session ROOT files.
-
-  \begin{railoutput}
-\rail@begin{2}{\indexdef{}{syntax}{session\_entry}\hypertarget{syntax.session-entry}{\hyperlink{syntax.session-entry}{\mbox{\isa{session{\isaliteral{5F}{\isacharunderscore}}entry}}}}}
-\rail@term{\isa{\isakeyword{session}}}[]
-\rail@nont{\isa{spec}}[]
-\rail@term{\isa{{\isaliteral{3D}{\isacharequal}}}}[]
-\rail@bar
-\rail@nextbar{1}
-\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
-\rail@term{\isa{{\isaliteral{2B}{\isacharplus}}}}[]
-\rail@endbar
-\rail@nont{\isa{body}}[]
-\rail@end
-\rail@begin{2}{\isa{body}}
-\rail@bar
-\rail@nextbar{1}
-\rail@nont{\isa{description}}[]
-\rail@endbar
-\rail@bar
-\rail@nextbar{1}
-\rail@nont{\isa{options}}[]
-\rail@endbar
-\rail@plus
-\rail@nont{\isa{theories}}[]
-\rail@nextplus{1}
-\rail@endplus
-\rail@bar
-\rail@nextbar{1}
-\rail@nont{\isa{files}}[]
-\rail@endbar
-\rail@end
-\rail@begin{2}{\isa{spec}}
-\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
-\rail@bar
-\rail@nextbar{1}
-\rail@nont{\isa{groups}}[]
-\rail@endbar
-\rail@bar
-\rail@nextbar{1}
-\rail@nont{\isa{dir}}[]
-\rail@endbar
-\rail@end
-\rail@begin{2}{\isa{groups}}
-\rail@term{\isa{{\isaliteral{28}{\isacharparenleft}}}}[]
-\rail@plus
-\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
-\rail@nextplus{1}
-\rail@endplus
-\rail@term{\isa{{\isaliteral{29}{\isacharparenright}}}}[]
-\rail@end
-\rail@begin{1}{\isa{dir}}
-\rail@term{\isa{\isakeyword{in}}}[]
-\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
-\rail@end
-\rail@begin{1}{\isa{description}}
-\rail@term{\isa{\isakeyword{description}}}[]
-\rail@nont{\hyperlink{syntax.text}{\mbox{\isa{text}}}}[]
-\rail@end
-\rail@begin{1}{\isa{options}}
-\rail@term{\isa{\isakeyword{options}}}[]
-\rail@nont{\isa{opts}}[]
-\rail@end
-\rail@begin{3}{\isa{opts}}
-\rail@term{\isa{{\isaliteral{5B}{\isacharbrackleft}}}}[]
-\rail@plus
-\rail@bar
-\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
-\rail@term{\isa{{\isaliteral{3D}{\isacharequal}}}}[]
-\rail@nont{\isa{value}}[]
-\rail@nextbar{1}
-\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
-\rail@endbar
-\rail@nextplus{2}
-\rail@cterm{\isa{{\isaliteral{2C}{\isacharcomma}}}}[]
-\rail@endplus
-\rail@term{\isa{{\isaliteral{5D}{\isacharbrackright}}}}[]
-\rail@end
-\rail@begin{2}{\isa{value}}
-\rail@bar
-\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
-\rail@nextbar{1}
-\rail@nont{\hyperlink{syntax.real}{\mbox{\isa{real}}}}[]
-\rail@endbar
-\rail@end
-\rail@begin{2}{\isa{theories}}
-\rail@term{\isa{\isakeyword{theories}}}[]
-\rail@bar
-\rail@nextbar{1}
-\rail@nont{\isa{opts}}[]
-\rail@endbar
-\rail@plus
-\rail@nextplus{1}
-\rail@cnont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
-\rail@endplus
-\rail@end
-\rail@begin{2}{\isa{files}}
-\rail@term{\isa{\isakeyword{files}}}[]
-\rail@plus
-\rail@nont{\hyperlink{syntax.name}{\mbox{\isa{name}}}}[]
-\rail@nextplus{1}
-\rail@endplus
-\rail@end
-\end{railoutput}
-
-
-  \begin{description}
-
-  \item \isakeyword{session}~\isa{{\isaliteral{22}{\isachardoublequote}}A\ {\isaliteral{3D}{\isacharequal}}\ B\ {\isaliteral{2B}{\isacharplus}}\ body{\isaliteral{22}{\isachardoublequote}}} defines a new
-  session \isa{{\isaliteral{22}{\isachardoublequote}}A{\isaliteral{22}{\isachardoublequote}}} based on parent session \isa{{\isaliteral{22}{\isachardoublequote}}B{\isaliteral{22}{\isachardoublequote}}}, with its
-  content given in \isa{body} (theories and auxiliary source files).
-  Note that a parent (like \isa{{\isaliteral{22}{\isachardoublequote}}HOL{\isaliteral{22}{\isachardoublequote}}}) is mandatory in practical
-  applications: only Isabelle/Pure can bootstrap itself from nothing.
-
-  All such session specifications together describe a hierarchy (tree)
-  of sessions, with globally unique names.  The new session name
-  \isa{{\isaliteral{22}{\isachardoublequote}}A{\isaliteral{22}{\isachardoublequote}}} should be sufficiently long to stand on its own in a
-  potentially large library.
-
-  \item \isakeyword{session}~\isa{{\isaliteral{22}{\isachardoublequote}}A\ {\isaliteral{28}{\isacharparenleft}}groups{\isaliteral{29}{\isacharparenright}}{\isaliteral{22}{\isachardoublequote}}} indicates a
-  collection of groups where the new session is a member.  Group names
-  are uninterpreted and merely follow certain conventions.  For
-  example, the Isabelle distribution tags some important sessions by
-  the group name called ``\isa{{\isaliteral{22}{\isachardoublequote}}main{\isaliteral{22}{\isachardoublequote}}}''.  Other projects may invent
-  their own conventions, but this requires some care to avoid clashes
-  within this unchecked name space.
-
-  \item \isakeyword{session}~\isa{{\isaliteral{22}{\isachardoublequote}}A{\isaliteral{22}{\isachardoublequote}}}~\isakeyword{in}~\isa{{\isaliteral{22}{\isachardoublequote}}dir{\isaliteral{22}{\isachardoublequote}}}
-  specifies an explicit directory for this session; by default this is
-  the current directory of the \verb|ROOT| file.
-
-  All theories and auxiliary source files are located relatively to
-  the session directory.  The prover process is run within the same as
-  its current working directory.
-
-  \item \isakeyword{description}~\isa{{\isaliteral{22}{\isachardoublequote}}text{\isaliteral{22}{\isachardoublequote}}} is a free-form
-  annotation for this session.
-
-  \item \isakeyword{options}~\isa{{\isaliteral{22}{\isachardoublequote}}{\isaliteral{5B}{\isacharbrackleft}}x\ {\isaliteral{3D}{\isacharequal}}\ a{\isaliteral{2C}{\isacharcomma}}\ y\ {\isaliteral{3D}{\isacharequal}}\ b{\isaliteral{2C}{\isacharcomma}}\ z{\isaliteral{5D}{\isacharbrackright}}{\isaliteral{22}{\isachardoublequote}}} defines
-  separate options (\secref{sec:system-options}) that are used when
-  processing this session, but \emph{without} propagation to child
-  sessions.  Note that \isa{{\isaliteral{22}{\isachardoublequote}}z{\isaliteral{22}{\isachardoublequote}}} abbreviates \isa{{\isaliteral{22}{\isachardoublequote}}z\ {\isaliteral{3D}{\isacharequal}}\ true{\isaliteral{22}{\isachardoublequote}}} for
-  Boolean options.
-
-  \item \isakeyword{theories}~\isa{{\isaliteral{22}{\isachardoublequote}}options\ names{\isaliteral{22}{\isachardoublequote}}} specifies a
-  block of theories that are processed within an environment that is
-  augmented by the given options, in addition to the global session
-  options given before.  Any number of blocks of \isakeyword{theories}
-  may be given.  Options are only active for each
-  \isakeyword{theories} block separately.
-
-  \item \isakeyword{files}~\isa{{\isaliteral{22}{\isachardoublequote}}files{\isaliteral{22}{\isachardoublequote}}} lists additional source
-  files that are involved in the processing of this session.  This
-  should cover anything outside the formal content of the theory
-  sources, say some auxiliary {\TeX} files that are required for
-  document processing.  In contrast, files that are specified in
-  formal theory headers as \hyperlink{keyword.uses}{\mbox{\isa{\isakeyword{uses}}}} need not be declared
-  again.
-
-  \end{description}%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsubsubsection{Examples%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-See \verb|~~/src/HOL/ROOT| for a diversity of practically
-  relevant situations, but it uses relatively complex quasi-hierarchic
-  naming conventions like \isa{{\isaliteral{22}{\isachardoublequote}}HOL{\isaliteral{5C3C646173683E}{\isasymdash}}SPARK{\isaliteral{22}{\isachardoublequote}}}, \isa{{\isaliteral{22}{\isachardoublequote}}HOL{\isaliteral{5C3C646173683E}{\isasymdash}}SPARK{\isaliteral{5C3C646173683E}{\isasymdash}}Examples{\isaliteral{22}{\isachardoublequote}}}.  An alternative is to use
-  unqualified names that are relatively long and descriptive, as in
-  the Archive of Formal Proofs (\url{http://afp.sf.net}), for
-  example.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{System build options \label{sec:system-options}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-See \verb|~~/etc/options| for the main defaults provided by
-  the Isabelle distribution.  Isabelle/jEdit (\secref{sec:tool-jedit})
-  includes a simple editing mode \verb|isabelle-options| for
-  this file-format.
-
-  The \indexdef{}{tool}{options}\hypertarget{tool.options}{\hyperlink{tool.options}{\mbox{\isa{\isatool{options}}}}} tool prints Isabelle system options.  Its
-  command-line usage is:
-\begin{ttbox}
-Usage: isabelle options [OPTIONS] [MORE_OPTIONS ...]
-
-  Options are:
-    -b           include $ISABELLE_BUILD_OPTIONS
-    -x FILE      export to FILE in YXML format
-
-  Print Isabelle system options, augmented by MORE_OPTIONS given as
-  arguments NAME=VAL or NAME.
-\end{ttbox}
-
-  The command line arguments provide additional system options of the
-  form \isa{{\isaliteral{22}{\isachardoublequote}}name{\isaliteral{22}{\isachardoublequote}}}\verb|=|\isa{{\isaliteral{22}{\isachardoublequote}}value{\isaliteral{22}{\isachardoublequote}}} or \isa{name}
-  for Boolean options.
-
-  Option \verb|-b| augments the implicit environment of system
-  options by the ones of \hyperlink{setting.ISABELLE-BUILD-OPTIONS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}BUILD{\isaliteral{5F}{\isacharunderscore}}OPTIONS}}}}, cf.\
-  \secref{sec:tool-build}.
-
-  Option \verb|-x| specifies a file to export the result in
-  YXML format, instead of printing it in human-readable form.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsection{Invoking the build process \label{sec:tool-build}%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-The \indexdef{}{tool}{build}\hypertarget{tool.build}{\hyperlink{tool.build}{\mbox{\isa{\isatool{build}}}}} tool invokes the build process for
-  Isabelle sessions.  It manages dependencies between sessions,
-  related sources of theories and auxiliary files, and target heap
-  images.  Accordingly, it runs instances of the prover process with
-  optional document preparation.  Its command-line usage
-  is:\footnote{Isabelle/Scala provides the same functionality via
-  \texttt{isabelle.Build.build}.}
-\begin{ttbox}
-Usage: isabelle build [OPTIONS] [SESSIONS ...]
-
-  Options are:
-    -D DIR       include session directory and select its sessions
-    -a           select all sessions
-    -b           build heap images
-    -c           clean build
-    -d DIR       include session directory
-    -g NAME      select session group NAME
-    -j INT       maximum number of parallel jobs (default 1)
-    -l           list session source files
-    -n           no build -- test dependencies only
-    -o OPTION    override session configuration OPTION
-                 (via NAME=VAL or NAME)
-    -s           system build mode: produce output in ISABELLE_HOME
-    -v           verbose
-
-  Build and manage Isabelle sessions, depending on implicit
-  ISABELLE_BUILD_OPTIONS="..."
-
-  ML_PLATFORM="..."
-  ML_HOME="..."
-  ML_SYSTEM="..."
-  ML_OPTIONS="..."
-\end{ttbox}
-
-  \medskip Isabelle sessions are defined via session ROOT files as
-  described in (\secref{sec:session-root}).  The totality of sessions
-  is determined by collecting such specifications from all Isabelle
-  component directories (\secref{sec:components}), augmented by more
-  directories given via options \verb|-d|~\isa{{\isaliteral{22}{\isachardoublequote}}DIR{\isaliteral{22}{\isachardoublequote}}} on the
-  command line.  Each such directory may contain a session
-  \texttt{ROOT} file with several session specifications.
-
-  Any session root directory may refer recursively to further
-  directories of the same kind, by listing them in a catalog file
-  \verb|ROOTS| line-by-line.  This helps to organize large
-  collections of session specifications, or to make \verb|-d|
-  command line options persistent (say within \verb|$ISABELLE_HOME_USER/ROOTS|).
-
-  \medskip The subset of sessions to be managed is determined via
-  individual \isa{{\isaliteral{22}{\isachardoublequote}}SESSIONS{\isaliteral{22}{\isachardoublequote}}} given as command-line arguments, or
-  session groups that are given via one or more options \verb|-g|~\isa{{\isaliteral{22}{\isachardoublequote}}NAME{\isaliteral{22}{\isachardoublequote}}}.  Option \verb|-a| selects all sessions.
-  The build tool takes session dependencies into account: the set of
-  selected sessions is completed by including all ancestors.
-
-  \medskip Option \verb|-D| is similar to \verb|-d|, but
-  selects all sessions that are defined in the given directories.
-
-  \medskip The build process depends on additional options
-  (\secref{sec:system-options}) that are passed to the prover
-  eventually.  The settings variable \indexref{}{setting}{ISABELLE\_BUILD\_OPTIONS}\hyperlink{setting.ISABELLE-BUILD-OPTIONS}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}BUILD{\isaliteral{5F}{\isacharunderscore}}OPTIONS}}}} allows to provide additional defaults, e.g.\
-  \texttt{ISABELLE_BUILD_OPTIONS="document=pdf threads=4"}. Moreover,
-  the environment of system build options may be augmented on the
-  command line via \verb|-o|~\isa{{\isaliteral{22}{\isachardoublequote}}name{\isaliteral{22}{\isachardoublequote}}}\verb|=|\isa{{\isaliteral{22}{\isachardoublequote}}value{\isaliteral{22}{\isachardoublequote}}} or \verb|-o|~\isa{{\isaliteral{22}{\isachardoublequote}}name{\isaliteral{22}{\isachardoublequote}}}, which
-  abbreviates \verb|-o|~\isa{{\isaliteral{22}{\isachardoublequote}}name{\isaliteral{22}{\isachardoublequote}}}\verb|=true| for
-  Boolean options.  Multiple occurrences of \verb|-o| on the
-  command-line are applied in the given order.
-
-  \medskip Option \verb|-b| ensures that heap images are
-  produced for all selected sessions.  By default, images are only
-  saved for inner nodes of the hierarchy of sessions, as required for
-  other sessions to continue later on.
-
-  \medskip Option \verb|-c| cleans all descendants of the
-  selected sessions before performing the specified build operation.
-
-  \medskip Option \verb|-n| omits the actual build process
-  after the preparatory stage (including optional cleanup).  Note that
-  the return code always indicates the status of the set of selected
-  sessions.
-
-  \medskip Option \verb|-j| specifies the maximum number of
-  parallel build jobs (prover processes).  Each prover process is
-  subject to a separate limit of parallel worker threads, cf.\ system
-  option \indexref{}{system option}{threads}\hyperlink{system option.threads}{\mbox{\isa{\isatt{threads}}}}.
-
-  \medskip Option \verb|-s| enables \emph{system mode}, which
-  means that resulting heap images and log files are stored in
-  \verb|$ISABELLE_HOME/heaps| instead of the default location
-  \hyperlink{setting.ISABELLE-OUTPUT}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}OUTPUT}}}} (which is normally in \hyperlink{setting.ISABELLE-HOME-USER}{\mbox{\isa{\isatt{ISABELLE{\isaliteral{5F}{\isacharunderscore}}HOME{\isaliteral{5F}{\isacharunderscore}}USER}}}}, i.e.\ the user's home directory).
-
-  \medskip Option \verb|-v| increases the general level of
-  verbosity.  Option \verb|-l| lists the source files that
-  contribute to a session.%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isamarkupsubsubsection{Examples%
-}
-\isamarkuptrue%
-%
-\begin{isamarkuptext}%
-Build a specific logic image:
-\begin{ttbox}
-isabelle build -b HOLCF
-\end{ttbox}
-
-  \smallskip Build the main group of logic images:
-\begin{ttbox}
-isabelle build -b -g main
-\end{ttbox}
-
-  \smallskip Provide a general overview of the status of all Isabelle
-  sessions, without building anything:
-\begin{ttbox}
-isabelle build -a -n -v
-\end{ttbox}
-
-  \smallskip Build all sessions with HTML browser info and PDF
-  document preparation:
-\begin{ttbox}
-isabelle build -a -o browser_info -o document=pdf
-\end{ttbox}
-
-  \smallskip Build all sessions with a maximum of 8 parallel prover
-  processes and 4 worker threads each (on a machine with many cores):
-\begin{ttbox}
-isabelle build -a -j8 -o threads=4
-\end{ttbox}
-
-  \smallskip Build some session images with cleanup of their
-  descendants, while retaining their ancestry:
-\begin{ttbox}
-isabelle build -b -c HOL-Boogie HOL-SPARK
-\end{ttbox}
-
-  \smallskip Clean all sessions without building anything:
-\begin{ttbox}
-isabelle build -a -n -c
-\end{ttbox}
-
-  \smallskip Build all sessions from some other directory hierarchy,
-  according to the settings variable \verb|AFP| that happens to
-  be defined inside the Isabelle environment:
-\begin{ttbox}
-isabelle build -D '$AFP'
-\end{ttbox}%
-\end{isamarkuptext}%
-\isamarkuptrue%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-%
-\isatagtheory
-\isacommand{end}\isamarkupfalse%
-%
-\endisatagtheory
-{\isafoldtheory}%
-%
-\isadelimtheory
-%
-\endisadelimtheory
-\isanewline
-\end{isabellebody}%
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: "root"
-%%% End:
--- a/doc-src/System/browser_screenshot.eps	Mon Aug 27 16:10:54 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11222 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: (ImageMagick)
-%%Title: (/home/makarius/isabelle/src/Doc/System/browser_screenshot.eps)
-%%CreationDate: (Tue Sep 16 13:50:28 2008)
-%%BoundingBox: 0 0 458 269
-%%HiResBoundingBox: 0 0 458.484 269
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 1
-%%Pages: 1
-%%EndComments
-
-%%BeginDefaults
-%%EndDefaults
-
-%%BeginProlog
-%
-% Display a color image.  The image is displayed in color on
-% Postscript viewers or printers that support color, otherwise
-% it is displayed as grayscale.
-%
-/DirectClassPacket
-{
-  %
-  % Get a DirectClass packet.
-  %
-  % Parameters:
-  %   red.
-  %   green.
-  %   blue.
-  %   length: number of pixels minus one of this color (optional).
-  %
-  currentfile color_packet readhexstring pop pop
-  compression 0 eq
-  {
-    /number_pixels 3 def
-  }
-  {
-    currentfile byte readhexstring pop 0 get
-    /number_pixels exch 1 add 3 mul def
-  } ifelse
-  0 3 number_pixels 1 sub
-  {
-    pixels exch color_packet putinterval
-  } for
-  pixels 0 number_pixels getinterval
-} bind def
-
-/DirectClassImage
-{
-  %
-  % Display a DirectClass image.
-  %
-  systemdict /colorimage known
-  {
-    columns rows 8
-    [
-      columns 0 0
-      rows neg 0 rows
-    ]
-    { DirectClassPacket } false 3 colorimage
-  }
-  {
-    %
-    % No colorimage operator;  convert to grayscale.
-    %
-    columns rows 8
-    [
-      columns 0 0
-      rows neg 0 rows
-    ]
-    { GrayDirectClassPacket } image
-  } ifelse
-} bind def
-
-/GrayDirectClassPacket
-{
-  %
-  % Get a DirectClass packet;  convert to grayscale.
-  %
-  % Parameters:
-  %   red
-  %   green
-  %   blue
-  %   length: number of pixels minus one of this color (optional).
-  %
-  currentfile color_packet readhexstring pop pop
-  color_packet 0 get 0.299 mul
-  color_packet 1 get 0.587 mul add
-  color_packet 2 get 0.114 mul add
-  cvi
-  /gray_packet exch def
-  compression 0 eq
-  {
-    /number_pixels 1 def
-  }
-  {
-    currentfile byte readhexstring pop 0 get
-    /number_pixels exch 1 add def
-  } ifelse
-  0 1 number_pixels 1 sub
-  {
-    pixels exch gray_packet put
-  } for
-  pixels 0 number_pixels getinterval
-} bind def
-
-/GrayPseudoClassPacket
-{
-  %
-  % Get a PseudoClass packet;  convert to grayscale.
-  %
-  % Parameters:
-  %   index: index into the colormap.
-  %   length: number of pixels minus one of this color (optional).
-  %
-  currentfile byte readhexstring pop 0 get
-  /offset exch 3 mul def
-  /color_packet colormap offset 3 getinterval def
-  color_packet 0 get 0.299 mul
-  color_packet 1 get 0.587 mul add
-  color_packet 2 get 0.114 mul add
-  cvi
-  /gray_packet exch def
-  compression 0 eq
-  {
-    /number_pixels 1 def
-  }
-  {
-    currentfile byte readhexstring pop 0 get
-    /number_pixels exch 1 add def
-  } ifelse
-  0 1 number_pixels 1 sub
-  {
-    pixels exch gray_packet put
-  } for
-  pixels 0 number_pixels getinterval
-} bind def
-
-/PseudoClassPacket
-{
-  %
-  % Get a PseudoClass packet.
-  %
-  % Parameters:
-  %   index: index into the colormap.
-  %   length: number of pixels minus one of this color (optional).
-  %
-  currentfile byte readhexstring pop 0 get
-  /offset exch 3 mul def
-  /color_packet colormap offset 3 getinterval def
-  compression 0 eq
-  {
-    /number_pixels 3 def
-  }
-  {
-    currentfile byte readhexstring pop 0 get
-    /number_pixels exch 1 add 3 mul def
-  } ifelse
-  0 3 number_pixels 1 sub
-  {
-    pixels exch color_packet putinterval
-  } for
-  pixels 0 number_pixels getinterval
-} bind def
-
-/PseudoClassImage
-{
-  %
-  % Display a PseudoClass image.
-  %
-  % Parameters:
-  %   class: 0-PseudoClass or 1-Grayscale.
-  %
-  currentfile buffer readline pop
-  token pop /class exch def pop
-  class 0 gt
-  {
-    currentfile buffer readline pop
-    token pop /depth exch def pop
-    /grays columns 8 add depth sub depth mul 8 idiv string def
-    columns rows depth
-    [
-      columns 0 0
-      rows neg 0 rows
-    ]
-    { currentfile grays readhexstring pop } image
-  }
-  {
-    %
-    % Parameters:
-    %   colors: number of colors in the colormap.
-    %   colormap: red, green, blue color packets.
-    %
-    currentfile buffer readline pop
-    token pop /colors exch def pop
-    /colors colors 3 mul def
-    /colormap colors string def
-    currentfile colormap readhexstring pop pop
-    systemdict /colorimage known
-    {
-      columns rows 8
-      [
-        columns 0 0
-        rows neg 0 rows
-      ]
-      { PseudoClassPacket } false 3 colorimage
-    }
-    {
-      %
-      % No colorimage operator;  convert to grayscale.
-      %
-      columns rows 8
-      [
-        columns 0 0
-        rows neg 0 rows
-      ]
-      { GrayPseudoClassPacket } image
-    } ifelse
-  } ifelse
-} bind def
-
-/DisplayImage
-{
-  %
-  % Display a DirectClass or PseudoClass image.
-  %
-  % Parameters:
-  %   x & y translation.
-  %   x & y scale.
-  %   label pointsize.
-  %   image label.
-  %   image columns & rows.
-  %   class: 0-DirectClass or 1-PseudoClass.
-  %   compression: 0-none or 1-RunlengthEncoded.
-  %   hex color packets.
-  %
-  gsave
-  /buffer 512 string def
-  /byte 1 string def
-  /color_packet 3 string def
-  /pixels 768 string def
-
-  currentfile buffer readline pop
-  token pop /x exch def
-  token pop /y exch def pop
-  x y translate
-  currentfile buffer readline pop
-  token pop /x exch def
-  token pop /y exch def pop
-  currentfile buffer readline pop
-  token pop /pointsize exch def pop
-  /Times-Roman findfont pointsize scalefont setfont
-  x y scale
-  currentfile buffer readline pop
-  token pop /columns exch def
-  token pop /rows exch def pop
-  currentfile buffer readline pop
-  token pop /class exch def pop
-  currentfile buffer readline pop
-  token pop /compression exch def pop
-  class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
-  grestore
-} bind def
-%%EndProlog
-%%Page:  1 1
-%%PageBoundingBox: 0 0 458 269
-userdict begin
-DisplayImage
-0 0
-458.484 269.21
-12.000000
-818 481
-1
-0
-0
-12
-000000
-797979
-7F7F7F
-FF0000
-00FF00
-0000FF
-808080
-C0C0C0
-DFDFDF
-E0E0E0
-F2F2F2
-FFFFFF
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A
-0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808020A08080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808020A0808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080808080808080808080808080808080808080808020A080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808020A08080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808080808080808020A0808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08020A080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808020A08080808080808
-080808000000000808000808000808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808080808080808080808080808020A0808080808080808080800080808080808
-080800080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808020A080808080808080808080008080808080008080008080800000008
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808020A08
-080808080808080808000808080808000808000808000808080008080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808080808080808080808080808080808080808020A0808080808080808080800
-000000080800080800080800080808000808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080808020A080808080808080808080008080808080008080008
-080000000000080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808020A08080808080808080808000808080808000808000808000808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808080808080808080808080808080808080808080808080808020A0808080808
-080808080800080808080800080800080800080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080808080808080808020A080808080808080808080008080808
-080008080008080800000000080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808020A08080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080802
-0A0808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080808080808080808080808080808020A080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808020A08080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808020A0808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080808080808080808080808080808080808080808020A080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808020A08080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808080808080808020A0202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020202020202020202020202020202020202020202020202020202020202020202020202
-020208080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080809090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090808080808080808080809090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090808080808080808080909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090906080808080808
-080808080909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090906
-080808080808080808090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909060608080808080808080808090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909090909090909090909090909
-090909090909090909090909090909090909090909090909060608080808080808080809
-090908080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080606060808080808080808080809090908080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080606060808080808080808080909090801010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010B08060606
-080808080808080808080909090801010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010101010101010101010101010101010101010101010101010101010101010101010101
-010B08060606080808080808080808090909080108080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808080808080808080808080808080808080B0806060608080808080808080808
-090909080108080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808080808080808080808080808080808080808080808080B0806060608080808
-080808080809090908010808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080B080606060808080808080808080809090908010808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080808080808080B080606060808080808080808080909090801
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080B08060606080808080808080808080909090801080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080B08060606080808080808080808090909080108080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808080808080808080808080808080808080808080808080B0806060608080808
-080808080808090909080108080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808080808080808080808080808080808080808080808080808080808080B0806
-060608080808080808080809090908010808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080808080808080B080606060808080808080808080809090908
-010808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080808080808080808080808080B080606060808080808080808
-080909090801080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080B08060606080808080808080808080909090801080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080B08060606080808080808080808090909080108080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808080808080808080808080808080808080808080808080808080808080B0806
-060608080808080808080808090909080108080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080B0806060608080808080808080809090908010808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080808080808080808080808080B080606060808080808080808
-080809090908010808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080808080808080808080808080808080808080B080606060808
-080808080808080909090801080808080808080804040404040404040404040808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080B08060606080808080808080808080909090801080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080B08060606080808080808080808090909
-080108080808080808080804040404040404040404080808080808080000000000080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080B0806060608080808080808080808090909080108080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808080808080B0806060608080808080808080809090908010808080808080808
-080804040404040404040808080808080808000808080800080808080808080808080808
-080808080008080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080808080808080808080808080808080808080B080606060808
-080808080808080809090908010808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080808080808080808080808080808080808080808080808080B
-080606060808080808080808080909090801080808080808080808080804040404040408
-080808080808080800080808080008080800000008080808000000080800000008080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080B08060606080808080808080808080909
-090801080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080B08060606080808080808
-080808090909080108080808080808080808080404040404080808080808080808080008
-080800080808000808080008080008080800080800080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808080808080B0806060608080808080808080808090909080108080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808080808080808080808080B0806060608080808080808080809090908010808
-080808080808080808080404040808080808080808080808000000000808080800080808
-000808000808080008080008080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080808080808080808080808080808080808080808080808080B
-080606060808080808080808080809090908010808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080B080606060808080808080808080909090801080808080808080808080808
-080408080808080808080808080800080800080808080008080800080800080808000808
-000808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080B08060606080808080808
-080808080909090801080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080B08060606
-080808080808080808090909080108080808080808080808080808080808080808080808
-080808080008080800080808000808080008080008080800080800080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808080808080808080808080B0806060608080808080808080808090909080108
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808080808080808080808080808080808080B0806060608080808080808080809
-090908010808080808080808080808080808080808080808080808080808000808080800
-080800080808000808000808080008080008080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080B080606060808080808080808080809090908010808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080B080606060808080808080808080909090801080808080808
-080808080808080808080808080808080808080800080808080800080800000008080808
-000000080808080008080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080B08060606
-080808080808080808080909090801080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080B08060606080808080808080808090909080108080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808080808080808080808080808080808080B0806060608080808080808080808
-090909080108080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808080808080808080808080808080808080808080808080B0806060608080808
-080808080809090908010808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080B080606060808080808080808080809090908010808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080808080808080B080606060808080808080808080909090801
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080B08060606080808080808080808080909090801080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080B08060606080808080808080808090909080108080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808080808080808080808080808080808080808080808080B0806060608080808
-080808080808090909080108080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080800000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000000000000000000000000000000000000
-000000000000000000000000000000000000000008080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808080808080808080808080808080808080808080808080808080808080B0806
-060608080808080808080809090908010808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080808080808080B080606060808080808080808080809090908
-010808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080007070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707000808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080808080808080808080808080B080606060808080808080808
-080909090801080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080B08060606080808080808080808080909090801080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808000707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070700
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080B08060606080808080808080808090909080108080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080808080808080808080808080808080808080808080808080808080808080B0806
-060608080808080808080808090909080108080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080800
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070008080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-0808080B0806060608080808080808080809090908010808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080808080808080808080808080B080606060808080808080808
-080809090908010808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080007070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707070707070707070707070707070707070707070707
-070707070707070707070707070707000808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-08080808080808080808080808080808080808080808080808080808080B080606060808
-080808080808080909090801080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080B08060606080808080808080808080909090801080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808080808080808080808080808080808080808080808
-080808080808080808080808080808000707070707070707070707070707070707070707