emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/proof-general 511226f 09/13: Remove Isabelle/Isar support


From: ELPA Syncer
Subject: [nongnu] elpa/proof-general 511226f 09/13: Remove Isabelle/Isar support
Date: Thu, 25 Nov 2021 10:57:59 -0500 (EST)

branch: elpa/proof-general
commit 511226f9fc6781a60c9db19ca31a95208e0c264e
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    Remove Isabelle/Isar support
---
 BUGS                                     |   12 -
 CHANGES                                  |    2 +
 INSTALL                                  |    4 +-
 Makefile                                 |   48 +-
 Makefile.devel                           |    2 +-
 README.md                                |    6 +-
 doc/PG-adapting.texi                     |    4 +-
 doc/ProofGeneral.texi                    |  301 +-----
 doc/proofgeneral.1                       |    4 +-
 etc/ProofGeneral.spec                    |    2 +-
 etc/README                               |    2 -
 etc/isar/AHundredProofs.thy              | 1009 -------------------
 etc/isar/AHundredTheorems.thy            |  117 ---
 etc/isar/AThousandComments.thy           | 1005 ------------------
 etc/isar/AThousandTheorems.thy           | 1013 -------------------
 etc/isar/BackslashInStrings.thy          |   47 -
 etc/isar/BigErrors.thy                   |   20 -
 etc/isar/BigErrorsNested.thy             |    6 -
 etc/isar/ChosenLogic.thy                 |    8 -
 etc/isar/ChosenLogic2.thy                |    8 -
 etc/isar/CommentParsingBug.thy           |    3 -
 etc/isar/CommentParsingBug2.thy          |    8 -
 etc/isar/Depends.thy                     |   14 -
 etc/isar/EmptyCommands.thy               |   10 -
 etc/isar/FaultyErrors.thy                |   28 -
 etc/isar/Fibonacci.thy                   |  168 ----
 etc/isar/HighlightSize.thy               |   13 -
 etc/isar/IllegalEscape.thy               |    7 -
 etc/isar/InterruptTest.thy.gz            |  Bin 3914 -> 0 bytes
 etc/isar/MultipleModes.thy               |   27 -
 etc/isar/NamesInStrings.thy              |   34 -
 etc/isar/Parsing.thy                     |   75 --
 etc/isar/ParsingBug1.thy                 |   15 -
 etc/isar/Persistent.thy                  |   40 -
 etc/isar/README                          |    8 -
 etc/isar/Sendback.thy                    |   23 -
 etc/isar/TextProps.thy                   |   22 -
 etc/isar/TokensAcid.thy                  |  218 ----
 etc/isar/Trac189.thy                     |    8 -
 etc/isar/Trac280-subrev.thy              |   14 -
 etc/isar/Unicode.thy                     |   73 --
 etc/isar/XEmacsSyntacticContextProb.thy  |   20 -
 etc/isar/XSymbolTests.thy                |  146 ---
 etc/isar/bad1.thy                        |    3 -
 etc/isar/bad2.thy                        |    1 -
 etc/isar/multiple/A.thy                  |    7 -
 etc/isar/multiple/B.thy                  |    4 -
 etc/isar/multiple/C.thy                  |    4 -
 etc/isar/multiple/D.thy                  |    4 -
 etc/isar/multiple/E.thy                  |    4 -
 etc/isar/multiple/README                 |    3 -
 etc/isar/nesting-too-deep-for-parser.txt | 1622 ------------------------------
 etc/isar/new-parsing-test.el             |   38 -
 etc/isar/profiling.txt                   |  322 ------
 etc/isar/trace_simp.thy                  |   20 -
 generic/pg-custom.el                     |   10 +-
 generic/pg-response.el                   |    4 +-
 generic/proof-config.el                  |    3 +-
 generic/proof-depends.el                 |    2 +-
 generic/proof-script.el                  |    9 +-
 generic/proof-shell.el                   |    2 +-
 generic/proof-site.el                    |    1 -
 generic/proof-useropts.el                |    6 +-
 isar/Example-Tokens.thy                  |   37 -
 isar/Example.thy                         |   33 -
 isar/README                              |   33 -
 isar/ex/Knaster_Tarski.thy               |  110 --
 isar/ex/PER.thy                          |  269 -----
 isar/ex/README                           |    8 -
 isar/ex/Sqrt.thy                         |   90 --
 isar/ex/Sqrt_Script.thy                  |   70 --
 isar/ex/Tarski.thy                       |  927 -----------------
 isar/interface                           |  205 ----
 isar/interface-setup.el                  |   40 -
 isar/isabelle-system.el                  |  375 -------
 isar/isar-autotest.el                    |  117 ---
 isar/isar-find-theorems.el               |  489 ---------
 isar/isar-keywords.el                    |  655 ------------
 isar/isar-profiling.el                   |   58 --
 isar/isar-syntax.el                      |  612 -----------
 isar/isar-unicode-tokens.el              |  691 -------------
 isar/isar.el                             |  645 ------------
 isar/isartags                            |   86 --
 lib/pg-dev.el                            |    8 +-
 obsolete/demoisa/demoisa.el              |    2 +-
 proof-general.el                         |    6 +-
 86 files changed, 66 insertions(+), 12163 deletions(-)

diff --git a/BUGS b/BUGS
index 61e7494..4dbb42b 100644
--- a/BUGS
+++ b/BUGS
@@ -79,18 +79,6 @@ assistant.  Files ought to be coloured red while they are 
being
 processed, just as single lines are.  Workaround: be careful not to
 edit a file as it is being read by the proof assistant.
 
-* Problems with Isabelle
-
-** Issues with tracing mode 
-
-Large volumes of output can cause Emacs to hog CPU spending
-all its time processing the output (esp with fontifying and X-symbol
-decoding).   It becomes difficult to use normal editing commands,
-even C-c C-c to interrupt the prover.  Workaround: hitting C-g,
-the Emacs quit key, will interrupt the prover in this state.
-See manual for further description of this.
-
-
 * Problems with Coq
 
 ** Multiple file handling and auto-compilation is incomplete
diff --git a/CHANGES b/CHANGES
index 56f3da1..7c8f92c 100644
--- a/CHANGES
+++ b/CHANGES
@@ -7,6 +7,8 @@ and the PG Trac http://proofgeneral.inf.ed.ac.uk/trac
 * Changes of Proof General 4.5 from Proof General 4.4
 
 ** Generic changes
+*** Remove support for the following systems:
+Twelf, CCC, Lego, Hol-Light, ACL2, Plastic, Lambda-Clam, Isabelle, HOL98.
 
 *** require GNU Emacs 25.1 or later
 
diff --git a/INSTALL b/INSTALL
index 6b08e3b..8902b82 100644
--- a/INSTALL
+++ b/INSTALL
@@ -32,8 +32,8 @@ Proof General loaded.
 
 The command above will set the Emacs load path and add auto-loads for
 proof assistants, for example, visiting a file ending in .v will start
-Coq Proof General, and a file ending in .thy will start 
-Isabelle Proof General.  See the manual for a full list of file
+Coq Proof General, and a file ending in .ec will start 
+EasyCrypt Proof General.  See the manual for a full list of file
 extensions and proof assistants, and the note below for how to disable
 those you don't need.
 
diff --git a/Makefile b/Makefile
index 039884e..1b7f9a8 100644
--- a/Makefile
+++ b/Makefile
@@ -35,13 +35,13 @@ PREFIX=$(DESTDIR)/usr
 DEST_PREFIX=$(DESTDIR)/usr
 
 # subdirectories for provers: to be compiled and installed
-PROVERS=coq easycrypt isar pghaskell pgocaml pgshell phox
+PROVERS=coq easycrypt pghaskell pgocaml pgshell phox
 
 # generic lisp code: to be compiled and installed
 OTHER_ELISP=generic lib
 
 # additional lisp code: to be compiled but not installed
-ADDITIONAL_ELISP:=ci/compile-tests \
+ADDITIONAL_ELISP:=ci/compile-tests                            \
                $(wildcard ci/compile-tests/[0-9][0-9][0-9]-*) \
                ci/simple-tests
 
@@ -58,17 +58,16 @@ ELISP_EXTRAS=
 EXTRA_DIRS = images
 
 DOC_FILES=AUTHORS BUGS COMPATIBILITY CHANGES COPYING INSTALL README REGISTER 
doc/*.pdf
-DOC_EXAMPLES=isar/*.thy pgshell/*.pgsh phox/*.phx
+DOC_EXAMPLES=pgshell/*.pgsh phox/*.phx
 DOC_SUBDIRS=${DOC_EXAMPLES} */README* */CHANGES */BUGS 
 
 BATCHEMACS=${EMACS} --batch --no-site-file -q 
 
 # Scripts to edit paths to shells
-BASH_SCRIPTS = isar/interface
-PERL_SCRIPTS = coq/coqtags isar/isartags
+PERL_SCRIPTS = coq/coqtags
 
 # Scripts to install to bin directory
-BIN_SCRIPTS = coq/coqtags isar/isartags
+BIN_SCRIPTS = coq/coqtags
 
 # Setting load path might be better in Elisp, but seems tricky to do
 # only during compilation.  Another idea: put a function in proof-site
@@ -274,36 +273,33 @@ scripts: bashscripts perlscripts
 
 .PHONY: bashscripts
 bashscripts:
-       (bash="`which bash`"; \
-        if [ -z "$$bash" ]; then \
+       (bash="`which bash`";                                       \
+        if [ -z "$$bash" ]; then                                   \
           echo "Could not find bash - bash paths not checked" >&2; \
-          exit 0; \
-        fi; \
-        for i in $(BASH_SCRIPTS); do \
-          sed -i.orig "s|^#.*!.*/bin/bash.*$$|#!$$bash|" $$i; \
-        done)
+          exit 0;                                                  \
+        fi)
 
 .PHONY: perlscripts
 perlscripts:
-       (perl="`which perl`"; \
-        if [ -z "$$perl" ]; then \
+       (perl="`which perl`";                                       \
+        if [ -z "$$perl" ]; then                                   \
           echo "Could not find perl - perl paths not checked" >&2; \
-          exit 0; \
-        fi; \
-        for i in $(PERL_SCRIPTS); do \
-          sed -i.orig "s|^#.*!.*/bin/perl.*$$|#!$$perl|" $$i; \
+          exit 0;                                                  \
+        fi;                                                        \
+        for i in $(PERL_SCRIPTS); do                               \
+          sed -i.orig "s|^#.*!.*/bin/perl.*$$|#!$$perl|" $$i;      \
         done)
 
 # Set PGHOME path in scripts back to default location.
 .PHONY: cleanscripts
 cleanscripts:
-       (for i in $(BASH_SCRIPTS) $(PERL_SCRIPTS); do \
-          if [ -f $$i.rm ] ; then \
-            rm -f $$i.rm; \
-          fi; \
-          if [ -f $$i.orig ] ; then \
-             mv -f $$i.orig $$i; \
-           fi; \
+       (for i in $(PERL_SCRIPTS); do \
+          if [ -f $$i.rm ] ; then    \
+            rm -f $$i.rm;            \
+          fi;                        \
+          if [ -f $$i.orig ] ; then  \
+             mv -f $$i.orig $$i;      \
+           fi;                               \
         done)
 
 ##
diff --git a/Makefile.devel b/Makefile.devel
index 4f4004f..f244798 100644
--- a/Makefile.devel
+++ b/Makefile.devel
@@ -147,7 +147,7 @@ TAR=tar
 
 # Files not to include the distribution area or tarball
 UNFINISHED_ELISP=
-ETC_FILES=etc/coq etc/demoisa etc/isa etc/isar etc/patches etc/*.txt
+ETC_FILES=etc/coq etc/demoisa etc/patches etc/*.txt
 NONDISTFILES=.gitignore */.gitignore Makefile.devel etc/trac etc/testsuite 
$(UNFINISHED_ELISP) $(ETC_FILES)
 DOCDISTFILES=ProofGeneral.info PG-adapting.info
 
diff --git a/README.md b/README.md
index c26f752..e641ee9 100644
--- a/README.md
+++ b/README.md
@@ -137,13 +137,11 @@ Supported proof assistants:
 Proof General used to support other proof assistants, but those
 instances are no longer maintained nor available in the MELPA package:
 
-* Legacy support of
-  [Isabelle](https://www.cl.cam.ac.uk/research/hvg/Isabelle/)
-  
 * Experimental support of: Shell
 * Obsolete instances: Demoisa
 * Removed instances: Twelf, CCC, Hol-Light, ACL2, Plastic, Lambda-Clam, HOL98,
-  [LEGO](http://www.dcs.ed.ac.uk/home/lego)
+  [LEGO](http://www.dcs.ed.ac.uk/home/lego),
+  [Isabelle](https://www.cl.cam.ac.uk/research/hvg/Isabelle/)
 
 A few example proofs are included in each prover subdirectory.
 
diff --git a/doc/PG-adapting.texi b/doc/PG-adapting.texi
index d89c180..83874c2 100644
--- a/doc/PG-adapting.texi
+++ b/doc/PG-adapting.texi
@@ -139,7 +139,7 @@ of @b{Proof General}, a generic Emacs interface for proof 
assistants.
 
 Proof General @value{version} has been tested with GNU Emacs
 @value{emacsversion}.  It is supplied ready customized for the proof
-assistants Coq, EasyCrypt, Isabelle, and HOL.
+assistants Coq, EasyCrypt, and PhoX.
 
 This manual contains information for customizing to new proof
 assistants; see the user manual for details about how to use
@@ -3305,7 +3305,7 @@ in the @code{proof-assistants} setting.
 @c TEXI DOCSTRING MAGIC: proof-assistants
 @defvar proof-assistants 
 Choice of proof assistants to use with Proof General.@*
-A list of symbols chosen from: @samp{isar} @samp{coq} @samp{easycrypt} 
@samp{phox} @samp{pgshell} @samp{pgocaml} @samp{pghaskell}.
+A list of symbols chosen from: @samp{coq} @samp{easycrypt} @samp{phox} 
@samp{pgshell} @samp{pgocaml} @samp{pghaskell}.
 If nil, the default will be ALL available proof assistants.
 
 Each proof assistant defines its own instance of Proof General,
diff --git a/doc/ProofGeneral.texi b/doc/ProofGeneral.texi
index e7dfa44..39354ff 100644
--- a/doc/ProofGeneral.texi
+++ b/doc/ProofGeneral.texi
@@ -159,7 +159,6 @@ assistants Coq, EasyCrypt, and PhoX.
 * Customizing Proof General::   
 * Hints and Tips::
 * Coq Proof General::           
-* Isabelle Proof General::    
 * EasyCrypt Proof General::
 * Shell Proof General::
 @c * PhoX Proof General::
@@ -207,7 +206,8 @@ other documentation, system downloads, etc.
 @cindex news
 
 The old code for the support of the following systems have been
-removed: Twelf, CCC, Lego, Hol-Light, ACL2, Plastic, Lambda-Clam, HOL98.
+removed: Twelf, CCC, Lego, Hol-Light, ACL2, Plastic, Lambda-Clam,
+Isabelle, HOL98.
 
 @node News for Version 4.4
 @unnumberedsec News for Version 4.4
@@ -514,7 +514,6 @@ script file for your proof assistant, for example:
 @multitable @columnfractions .35 .3 .35
 @item       @b{Prover}    @tab @b{Extensions} @tab @b{Mode}
 @item       Coq           @tab @file{.v}      @tab @code{coq-mode}
-@item       Isabelle      @tab @file{.thy}    @tab @code{isar-mode}
 @item       Phox          @tab @file{.phx}    @tab @code{phox-mode}
 @item       PG-Shell      @tab @file{.pgsh}   @tab @code{pgshell-mode}
 @item       EasyCrypt     @tab @file{.ec}     @tab @code{easycrypt-mode}
@@ -659,10 +658,6 @@ proof assistants, including these:
 @item 
 @b{Coq Proof General} for Coq Version 8.2@*
 @xref{Coq Proof General}, for more details.
-@item 
-@b{Isabelle Proof General} for Isabelle2009-2@*
-@xref{Isabelle Proof General}, and documentation supplied with
-Isabelle for more details.
 @c @item
 @c @b{PhoX Proof General} for PhoX 0.8X@*
 @c @xref{PhoX Proof General}, for more details.
@@ -786,6 +781,7 @@ then describe the concepts and functions in more detail.
 * Interrupting during trace output::
 @end menu
 
+@c FIXME: Rewrite this to use Coq since Isabelle support was removed.
 @node Walkthrough example in Isabelle
 @section Walkthrough example in Isabelle
 
@@ -2484,6 +2480,7 @@ file @code{@i{PA}-unicode-tokens.el}, or customize the 
main
 variables it contains, for example @code{@i{PA}-token-name-alist} and 
 @code{@i{PA}-shortcut-alist}. 
 
+@c FIXME: Isabelle support was removed.
 E.g., for Isabelle 
 @example
   M-x customize-variable isar-token-name-alist RET
@@ -2807,7 +2804,6 @@ and @code{etags}.
 @node Syntax highlighting
 @section Syntax highlighting
 @vindex coq-mode-hooks
-@vindex isa-mode-hooks
 @cindex font lock 
 @cindex colour
 @c Proof General specifics  
@@ -3801,8 +3797,8 @@ For example,
 @lisp
    ssh bigjobs
 @end lisp
-Would cause Proof General to issue the command @samp{ssh bigjobs isabelle}
-to start Isabelle remotely on our large compute server called @samp{bigjobs}.
+Would cause Proof General to issue the command @samp{ssh bigjobs coqtop}
+to start Coq remotely on our large compute server called @samp{bigjobs}.
 
 The protocol used should be configured so that no user interaction
 (passwords, or whatever) is required to get going.  For proper
@@ -4028,8 +4024,8 @@ code like this to your @file{.emacs} file:
 
 This lisp fragment adds bindings for every buffer in proof script
 mode (the Emacs keymap is called @code{proof-mode-map}).  To just
-affect one prover, use a keymap name like @code{isar-mode-map} and
-evaluate after the library @code{isar} has been loaded.
+affect one prover, use a keymap name like @code{coq-mode-map} and
+evaluate after the library @code{coq} has been loaded.
 
 To find the names of the functions you may want to bind, look in this
 manual, or query current bindings interactively with @kbd{C-h k}.  This
@@ -5325,281 +5321,6 @@ with non-@code{Bg} faces.
 
 @c =================================================================
 @c
-@c  CHAPTER: Isabelle Proof General
-@c
-@node Isabelle Proof General
-@chapter Isabelle Proof General
-@cindex Isabelle Proof General
-
-Isabelle Proof General supports major generic features of Proof General,
-including integration with Isabelle's theory loader for proper automatic
-multiple file handling.  
-@comment Support for tags and proof-by-pointing is missing.
-
-Isabelle provides its own way to invoke Proof General via the
-@code{isabelle} command.  Running @code{isabelle emacs} starts an Emacs
-session with Isabelle Proof General.  The defaults may be changed by
-editing the Isabelle settings, see the Isabelle documentation for
-details.
-
-Proof General for Isabelle manages Isar @file{.thy} files.  Proof
-General provides reliable control over incremental execution of the
-text.
-
-@menu
-* Choosing logic and starting isabelle::
-* Isabelle commands::
-* Isabelle settings::
-* Isabelle customizations::
-@end menu
-
-@node Choosing logic and starting isabelle
-@section Choosing logic and starting isabelle
-@cindex Isabelle logic
-
-When you load an Isabelle theory file into Proof General, you may be
-prompted for the path to the program @code{isabelle} if it is not on the
-system @code{PATH} already.  This is used to generate further
-information for invoking Isabelle, in particular, the list of available
-logics.
-
-The Isabelle menu offers an easy way to select the invoked object logic.
-If you look at the menu:
-@lisp
-        Isabelle -> Logics -> 
-@end lisp 
-you should see the list of logics available to Isabelle.  This menu is
-generated from the output of the command @code{isabelle findlogics}.
-(Similarly, the documentation menu is partly generated from
-@code{isabelle doc}).  Instead of the menu, you can use the
-keyboard command @code{isabelle-chose-logic} to choose from the list.
-
-The logics list is refreshed dynamically so you can select any newly
-built heap images in the same Emacs session.  However, notice that the
-choices are greyed out while Isabelle is actually running --- you can
-only switch to a new logic if you first exit Isabelle (similarly to
-Proof General, Isabelle operates with only one logic at a time).
-
-Another way to set the logic before Isabelle is launched is using an
-Emacs local variable setting inside a comment at the top of the file,
-see the documentation of @code{isabelle-chosen-logic} below.
-
-In case you do not have the @code{isabelle} program available or want to
-override its behaviour, you may set the variable
-@code{isabelle-program-name-override} to define the name of the
-executable used to start Isabelle.  The standard options are and 
-logic name are still appended.  
-@c in fact, we also have ISABELLE_OPTIONS and PROOFGENERAL_LOGIC,
-@c but lets not mention these.
-
-
-@c TEXI DOCSTRING MAGIC: isabelle-program-name-override
-@defopt isabelle-program-name-override 
-Name of executable program to run Isabelle.
-
-You can set customize this in case the automatic settings
-mechanism does not work for you, perhaps because isabelle
-is not on your path, or you are running it remotely.
-
-The logic image name is tagged onto the end.
-
-The default value is @code{nil}.
-@end defopt
-@c TEXI DOCSTRING MAGIC: isabelle-chosen-logic
-@defopt isabelle-chosen-logic 
-Choice of logic to use with Isabelle.@*
-If non-nil, added onto the Isabelle command line for invoking Isabelle.
-
-You can set this as a file local variable, using a special comment
-at the top of your theory file, like this:
-@lisp
-   (* -*- @code{isabelle-chosen-logic}: "ZF" -*- *)
-@end lisp
-
-The default value is @code{nil}.
-@end defopt
-@c TEXI DOCSTRING MAGIC: isabelle-choose-logic
-@deffn Command isabelle-choose-logic logic
-Adjust isabelle-prog-name and @code{proof-prog-name} for running @var{logic}.
-@end deffn
-@node Isabelle commands
-@section Isabelle commands
-@cindex Isabelle commands
-
-
-@kindex C-c C-a r
-@kindex C-c C-a C-q
-@kindex C-c C-a C-d
-@kindex C-c C-a C-p
-@kindex C-c C-a h A
-@kindex C-c C-a h C
-@kindex C-c C-a h I
-@kindex C-c C-a h S
-@kindex C-c C-a h T
-@kindex C-c C-a h a
-@kindex C-c C-a h b
-@kindex C-c C-a h c
-@kindex C-c C-a h f
-@kindex C-c C-a h i
-@kindex C-c C-a h m
-@kindex C-c C-a h o
-@kindex C-c C-a h t
-@kindex C-c C-a C-s
-@kindex C-c C-a C-m
-@kindex C-c C-a C-f
-@kindex C-c C-f
-
-The Isabelle instance of Proof General supplies several specific
-help key bindings; these functions are offered within the prover help
-menu as well.
-
-@table @kbd
-@item C-c C-a r
-Invokes Isar command @code{refute} on the current subgoal.  Only available in 
HOL
-and derived logics.
-@item C-c C-a C-q
-Invokes Isar command @code{quickcheck} on the current subgoal.
-@item C-c C-a C-d
-Displays a draft document of the current theory.
-@item C-c C-a C-p
-Prints a draft document of the current theory.
-@item C-c C-a h A
-Shows available antiquotation commands and options.
-@item C-c C-a h C
-Shows the current Classical Reasoner context.
-@item C-c C-a h I
-Shows the current set of induct/cases rules.
-@item C-c C-a h S
-Shows the current Simplifier context.
-@item C-c C-a h T
-Shows the current set of transitivity rules (for calculational reasoning).
-@item C-c C-a h a
-Shows attributes available in current theory context.
-@item C-c C-a h b
-Shows all local term bindings.
-@item C-c C-a h c
-Shows all named local contexts (cases).
-@item C-c C-a h f
-Shows all local facts.
-@item C-c C-a h i
-Shows inner syntax of the current theory context (for types and terms).
-@item C-c C-a h m
-Shows proof methods available in current theory context.
-@item C-c C-a h o
-Shows all available commands of Isabelle's outer syntax.
-@item C-c C-a h t
-Shows theorems stored in the current theory node.
-@item C-c C-a C-s
-Invoke sledgehammer on first subgoal.
-@item C-c C-a C-m 
-Find theorems containing given arguments (prompt in minibuffer).
-Invokes the @code{thms_containing} command.  Arguments are
-separated by white space as usual in Isar.
-@item C-c C-a C-f 
-Find theorems containing (argument in form)
-@item C-c C-f
-Find theorems: either of the above.  
-@end table
-
-@comment da: this isn't a very good way!!
-@comment it may override settings for other provers, or have no effect, I 
think!
-@comment we should introduce specific Isar setting.
-@c You can customize the default behaviour of the toolbar or
-@c menu item for find theorems by
-@c setting @code{proof-find-theorems-command} 
-@c to 
-@c @code{isar-find-theorems-minibuffer} or
-@c @code{isar-find-theorems-form}.  The setting
-@c can be customized on the menu:
-@c @example
-@c  Proof-General -> Advanced -> Internals -> Prover Config
-@c @end example
-
-
-@kindex C-c C-a b
-@kindex C-c C-a C-b
-@kindex C-c C-a C-u
-@kindex C-c C-a C-l
-@kindex C-c C-a u
-@kindex C-c C-a l
-@kindex C-c C-a C-i
-@kindex C-c C-a C-r
-@kindex C-c C-a C-a
-
-The following shortcuts insert control sequences into the text,
-modifying the appearance of individual symbols (single letters,
-mathematical entities etc.); the Tokens package will provide immediate
-visual feedback.
-
-@table @kbd
-@item C-c C-a C-b
-Inserts "\<^bold>" (bold character)
-@item C-c C-a C-c
-Inserts "\<^loc>" (``local'' control)
-@item C-c C-a C-u
-Inserts "\<^sup>"  (superscript character)
-@item C-c C-a C-l
-Inserts "\<^sub>" (subscript character)
-@item C-c C-a u
-Inserts "\<^bsup> \<^esup>"  (superscript string)
-@item C-c C-a l
-Inserts "\<^bsub> \<^esub>"  (subscript string)
-@item C-c C-a C-i
-Inserts "\<^isub>"  (identifier subscript letter)
-@item C-c C-a C-r
-Inserts "\<^raw:>"  (raw LaTeX text)
-@item C-c C-a C-a
-Inserts "@@@{text ""@}"  (anti-quotation).
-@item C-c C-a C-x
-Inserts "ML @{* *@}"  (inline ML code).
-@end table
-
-Command termination via `@code{;}' is an optional feature of Isar
-syntax.  Neither Isabelle nor Proof General require semicolons to
-do their job.  The following command allows to get rid of command
-terminators in existing texts.
-
-@c TEXI DOCSTRING MAGIC: isar-strip-terminators
-@deffn Command isar-strip-terminators 
-Remove explicit Isabelle/Isar command terminators @samp{;} from the buffer.
-@end deffn
-
-
-@node Isabelle settings
-@section Isabelle settings
-
-The Isabelle menu also contains a @code{Settings} submenu, which
-allows you to configure things such as the behaviour of Isabelle's term
-pretty printer (display of types, sorts, etc).  Note that you won't
-see this sub-menu until Isabelle has been started, because it is
-generated by Isabelle itself.  Proof General, on the other hand, is
-responsible for recording any settings that are configured when you
-select @code{Isabelle -> Settings -> Save Settings}.  They are stored
-along with the other Emacs customization settings.
-
-
-
-@node Isabelle customizations
-@section Isabelle customizations
-@cindex Isabelle customizations
-
-Here are some of the other user options specific to Isabelle.  You can
-set these as usual with the customization mechanism.
-
-@c TEXI DOCSTRING MAGIC: isabelle-web-page
-@defvar isabelle-web-page 
-URL of web page for Isabelle.
-@end defvar
-
-
-
-
-
-@c FIXME todo: theorem dependencies
-
-
-@c =================================================================
-@c
 @c  CHAPTER: EasyCrypt Proof General
 @c
 @node EasyCrypt Proof General
@@ -5731,7 +5452,7 @@ Tagged versions of the sources may be redistributed by 
third party
 packagers in other forms.
 
 The sources includes the generic elisp code, and code for Coq, EasyCrypt,
-Isabelle, and other provers.  Also included are installation
+and other provers.  Also included are installation
 instructions (reproduced in brief below) and this documentation.
 
 @node Installing Proof General from sources
@@ -5818,7 +5539,7 @@ providing the variables in @file{proof-site.el} are 
adjusted
 accordingly (see @i{Proof General site configuration} in
 @i{Adapting Proof General} for more details).  Make sure that
 the @file{generic/} and assistant-specific elisp files are kept in
-subdirectories (@file{coq/}, @file{isa/}, @file{easycrypt/}, ...) of
+subdirectories (@file{coq/}, @file{phox/}, @file{easycrypt/}, ...) of
 @code{proof-home-directory} so that the autoload directory calculations
 are correct.
 
@@ -5830,7 +5551,7 @@ details if you don't know where to find this file.
 @unnumberedsubsec Removing support for unwanted provers
 
 You cannot run more than one instance of Proof General at a time: so if
-you're using Coq, visiting an @file{.ML} file will not load Isabelle
+you're using Coq, visiting an @file{.ec} file will not load EasyCrypt
 Proof General, and the buffer remains in fundamental mode.  If there are
 some assistants supported that you never want to use, you can adjust the
 variable @code{proof-assistants} in @file{proof-site.el} to remove the
diff --git a/doc/proofgeneral.1 b/doc/proofgeneral.1
index 9c7a245..b02091e 100644
--- a/doc/proofgeneral.1
+++ b/doc/proofgeneral.1
@@ -27,8 +27,8 @@ output version information and exit
 Unrecognized options are passed to Emacs, along with file names.
 .SH EXAMPLES
 .TP
-proofgeneral Example.thy
-Load Proof General editing Isar file Example.thy
+proofgeneral Example.ec
+Load Proof General editing EasyCrypt file Example.ec
 .TP
 proofgeneral example.v
 Load Proof General editing Coq file Example.v
diff --git a/etc/ProofGeneral.spec b/etc/ProofGeneral.spec
index fac40af..001f72b 100644
--- a/etc/ProofGeneral.spec
+++ b/etc/ProofGeneral.spec
@@ -16,7 +16,7 @@ BuildArchitectures: noarch
 %description
 Proof General is a generic Emacs interface for proof assistants,
 suitable for use by pacifists and Emacs militants alike.
-It is supplied ready-customized for EasyCrypt, Coq, and Isabelle.
+It is supplied ready-customized for EasyCrypt, Coq, and PhoX.
 You can adapt Proof General to other proof assistants if you know a
 little bit of Emacs Lisp.
 
diff --git a/etc/README b/etc/README
index 43f47bf..925e985 100644
--- a/etc/README
+++ b/etc/README
@@ -15,8 +15,6 @@ ProofGeneral.menu      Menu file for some Linux versions.
 ProofGeneral.desktop   Menu file for some Linux versions.  
                       Install in /etc/X11/applnk/Applications/
 
-isa                                      Isabelle Proof General
-isar                                     Isar PG
 demoisa                                          Isabelle Demo PG
 coq                                      Coq
 <otherprover>                             .. others, similarly
diff --git a/etc/isar/AHundredProofs.thy b/etc/isar/AHundredProofs.thy
deleted file mode 100644
index 2687b30..0000000
--- a/etc/isar/AHundredProofs.thy
+++ /dev/null
@@ -1,1009 +0,0 @@
-theory AHundredProofs
-imports Main
-begin
-
-ML {* val start = Timing.start () *}
-
-theorem and_comms1: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms2: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms3: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms4: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms5: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms6: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms7: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms8: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms9: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms10: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms11: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms12: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms13: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms14: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms15: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms16: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms17: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms18: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms19: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms20: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms21: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms22: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms23: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms24: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms25: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms26: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms27: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms28: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms29: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms30: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms31: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms32: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms33: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms34: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms35: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms36: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms37: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms38: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms39: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms40: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms41: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms42: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms43: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms44: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms45: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms46: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms47: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms48: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms49: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms50: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms51: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms52: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms53: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms54: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms55: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms56: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms57: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms58: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms59: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms60: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms61: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms62: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms63: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms64: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms65: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms66: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms67: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms68: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms69: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms70: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms71: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms72: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms73: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms74: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms75: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms76: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms77: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms78: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms79: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms80: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms81: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms82: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms83: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms84: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms85: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms86: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms87: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms88: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms89: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms90: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms91: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms92: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms93: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms94: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms95: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms96: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms97: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms98: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms99: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-theorem and_comms100: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
- qed
-qed
-
-ML {* warning (Timing.message (Timing.result start)) *}
-
-end
diff --git a/etc/isar/AHundredTheorems.thy b/etc/isar/AHundredTheorems.thy
deleted file mode 100644
index ab6ad8f..0000000
--- a/etc/isar/AHundredTheorems.thy
+++ /dev/null
@@ -1,117 +0,0 @@
-theory AHundredTheorems
-imports Main
-begin
-
-(* test this *)
-
-ML {* val start = Timing.start () *}
-(* ELISP: -- (setq start (current-time)) -- *)
-
-lemma foo: "P --> P" by auto
-lemma foo2: "P --> P" by auto
-lemma foo3: "P --> P" by auto
-lemma foo4: "P --> P" by auto
-lemma foo5: "P --> P" by auto
-lemma foo6: "P --> P" by auto
-lemma foo7: "P --> P" by auto
-lemma foo8: "P --> P" by auto
-lemma foo9: "P --> P" by auto
-lemma foo10: "P --> P" by auto
-lemma foo11: "P --> P" by auto
-lemma foo12: "P --> P" by auto
-lemma foo13: "P --> P" by auto
-lemma foo14: "P --> P" by auto
-lemma foo15: "P --> P" by auto
-lemma foo16: "P --> P" by auto
-lemma foo17: "P --> P" by auto
-lemma foo18: "P --> P" by auto
-lemma foo19: "P --> P" by auto
-lemma foo20: "P --> P" by auto
-lemma foo21: "P --> P" by auto
-lemma foo22: "P --> P" by auto
-lemma foo23: "P --> P" by auto
-lemma foo24: "P --> P" by auto
-lemma foo25: "P --> P" by auto
-lemma foo26: "P --> P" by auto
-lemma foo27: "P --> P" by auto
-lemma foo28: "P --> P" by auto
-lemma foo29: "P --> P" by auto
-lemma foo30: "P --> P" by auto
-lemma foo31: "P --> P" by auto
-lemma foo32: "P --> P" by auto
-lemma foo33: "P --> P" by auto
-lemma foo34: "P --> P" by auto
-lemma foo35: "P --> P" by auto
-lemma foo36: "P --> P" by auto
-lemma foo37: "P --> P" by auto
-lemma foo38: "P --> P" by auto
-lemma foo39: "P --> P" by auto
-lemma foo40: "P --> P" by auto
-lemma foo41: "P --> P" by auto
-lemma foo42: "P --> P" by auto
-lemma foo43: "P --> P" by auto
-lemma foo44: "P --> P" by auto
-lemma foo45: "P --> P" by auto
-lemma foo46: "P --> P" by auto
-lemma foo47: "P --> P" by auto
-lemma foo48: "P --> P" by auto
-lemma foo49: "P --> P" by auto
-lemma foo50: "P --> P" by auto
-lemma foo51: "P --> P" by auto
-lemma foo52: "P --> P" by auto
-lemma foo53: "P --> P" by auto
-lemma foo54: "P --> P" by auto
-lemma foo55: "P --> P" by auto
-lemma foo56: "P --> P" by auto
-lemma foo57: "P --> P" by auto
-lemma foo58: "P --> P" by auto
-lemma foo59: "P --> P" by auto
-lemma foo60: "P --> P" by auto
-lemma foo61: "P --> P" by auto
-lemma foo62: "P --> P" by auto
-lemma foo63: "P --> P" by auto
-lemma foo64: "P --> P" by auto
-lemma foo65: "P --> P" by auto
-lemma foo66: "P --> P" by auto
-lemma foo67: "P --> P" by auto
-lemma foo68: "P --> P" by auto
-lemma foo69: "P --> P" by auto
-lemma foo70: "P --> P" by auto
-lemma foo71: "P --> P" by auto
-lemma foo72: "P --> P" by auto
-lemma foo73: "P --> P" by auto
-lemma foo74: "P --> P" by auto
-lemma foo75: "P --> P" by auto
-lemma foo76: "P --> P" by auto
-lemma foo77: "P --> P" by auto
-lemma foo78: "P --> P" by auto
-lemma foo79: "P --> P" by auto
-lemma foo80: "P --> P" by auto
-lemma foo81: "P --> P" by auto
-lemma foo82: "P --> P" by auto
-lemma foo83: "P --> P" by auto
-lemma foo84: "P --> P" by auto
-lemma foo85: "P --> P" by auto
-lemma foo86: "P --> P" by auto
-lemma foo87: "P --> P" by auto
-lemma foo88: "P --> P" by auto
-lemma foo89: "P --> P" by auto
-lemma foo90: "P --> P" by auto
-lemma foo91: "P --> P" by auto
-lemma foo92: "P --> P" by auto
-lemma foo93: "P --> P" by auto
-lemma foo94: "P --> P" by auto
-lemma foo95: "P --> P" by auto
-lemma foo96: "P --> P" by auto
-lemma foo97: "P --> P" by auto
-lemma foo98: "P --> P" by auto
-lemma foo99: "P --> P" by auto
-lemma foo100: "P --> P" by auto
-
-
-(* NB: this doesn't work because of comment aggregation *)
-(* ELISP: -- (message "Time taken: %f seconds" (time-to-seconds (time-since 
start))) -- *)
-ML {* warning (Timing.message (Timing.result start)) *}
-
-end
-
diff --git a/etc/isar/AThousandComments.thy b/etc/isar/AThousandComments.thy
deleted file mode 100644
index a84d601..0000000
--- a/etc/isar/AThousandComments.thy
+++ /dev/null
@@ -1,1005 +0,0 @@
-theory AThousandComments imports Main
-begin
-(* This is comment 1.  Skipped by the interface, not even sent to the prover. 
*)
-
-(* This is comment 2.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 3.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 4.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 5.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 6.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 7.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 8.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 9.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 10.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 11.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 12.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 13.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 14.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 15.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 16.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 17.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 18.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 19.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 20.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 21.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 22.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 23.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 24.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 25.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 26.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 27.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 28.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 29.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 30.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 31.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 32.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 33.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 34.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 35.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 36.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 37.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 38.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 39.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 40.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 41.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 42.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 43.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 44.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 45.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 46.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 47.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 48.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 49.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 50.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 51.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 52.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 53.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 54.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 55.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 56.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 57.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 58.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 59.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 60.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 61.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 62.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 63.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 64.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 65.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 66.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 67.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 68.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 69.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 70.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 71.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 72.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 73.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 74.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 75.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 76.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 77.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 78.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 79.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 80.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 81.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 82.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 83.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 84.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 85.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 86.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 87.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 88.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 89.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 90.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 91.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 92.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 93.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 94.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 95.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 96.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 97.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 98.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 99.  Skipped by the interface, not even sent to the prover. 
*)
-(* This is comment 100.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 101.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 102.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 103.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 104.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 105.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 106.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 107.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 108.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 109.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 110.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 111.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 112.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 113.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 114.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 115.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 116.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 117.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 118.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 119.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 120.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 121.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 122.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 123.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 124.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 125.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 126.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 127.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 128.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 129.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 130.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 131.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 132.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 133.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 134.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 135.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 136.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 137.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 138.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 139.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 140.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 141.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 142.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 143.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 144.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 145.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 146.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 147.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 148.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 149.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 150.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 151.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 152.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 153.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 154.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 155.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 156.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 157.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 158.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 159.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 160.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 161.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 162.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 163.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 164.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 165.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 166.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 167.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 168.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 169.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 170.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 171.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 172.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 173.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 174.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 175.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 176.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 177.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 178.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 179.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 180.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 181.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 182.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 183.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 184.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 185.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 186.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 187.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 188.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 189.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 190.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 191.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 192.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 193.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 194.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 195.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 196.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 197.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 198.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 199.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 200.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 201.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 202.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 203.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 204.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 205.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 206.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 207.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 208.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 209.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 210.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 211.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 212.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 213.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 214.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 215.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 216.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 217.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 218.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 219.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 220.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 221.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 222.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 223.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 224.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 225.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 226.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 227.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 228.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 229.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 230.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 231.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 232.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 233.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 234.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 235.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 236.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 237.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 238.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 239.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 240.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 241.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 242.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 243.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 244.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 245.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 246.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 247.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 248.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 249.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 250.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 251.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 252.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 253.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 254.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 255.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 256.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 257.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 258.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 259.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 260.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 261.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 262.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 263.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 264.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 265.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 266.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 267.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 268.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 269.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 270.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 271.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 272.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 273.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 274.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 275.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 276.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 277.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 278.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 279.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 280.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 281.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 282.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 283.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 284.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 285.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 286.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 287.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 288.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 289.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 290.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 291.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 292.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 293.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 294.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 295.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 296.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 297.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 298.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 299.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 300.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 301.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 302.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 303.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 304.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 305.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 306.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 307.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 308.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 309.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 310.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 311.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 312.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 313.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 314.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 315.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 316.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 317.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 318.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 319.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 320.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 321.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 322.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 323.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 324.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 325.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 326.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 327.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 328.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 329.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 330.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 331.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 332.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 333.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 334.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 335.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 336.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 337.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 338.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 339.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 340.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 341.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 342.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 343.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 344.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 345.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 346.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 347.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 348.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 349.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 350.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 351.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 352.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 353.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 354.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 355.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 356.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 357.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 358.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 359.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 360.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 361.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 362.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 363.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 364.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 365.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 366.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 367.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 368.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 369.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 370.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 371.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 372.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 373.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 374.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 375.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 376.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 377.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 378.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 379.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 380.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 381.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 382.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 383.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 384.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 385.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 386.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 387.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 388.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 389.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 390.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 391.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 392.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 393.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 394.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 395.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 396.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 397.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 398.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 399.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 400.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 401.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 402.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 403.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 404.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 405.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 406.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 407.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 408.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 409.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 410.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 411.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 412.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 413.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 414.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 415.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 416.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 417.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 418.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 419.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 420.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 421.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 422.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 423.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 424.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 425.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 426.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 427.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 428.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 429.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 430.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 431.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 432.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 433.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 434.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 435.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 436.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 437.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 438.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 439.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 440.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 441.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 442.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 443.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 444.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 445.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 446.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 447.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 448.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 449.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 450.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 451.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 452.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 453.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 454.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 455.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 456.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 457.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 458.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 459.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 460.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 461.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 462.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 463.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 464.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 465.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 466.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 467.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 468.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 469.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 470.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 471.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 472.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 473.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 474.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 475.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 476.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 477.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 478.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 479.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 480.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 481.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 482.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 483.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 484.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 485.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 486.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 487.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 488.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 489.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 490.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 491.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 492.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 493.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 494.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 495.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 496.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 497.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 498.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 499.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 500.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 501.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 502.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 503.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 504.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 505.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 506.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 507.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 508.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 509.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 510.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 511.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 512.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 513.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 514.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 515.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 516.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 517.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 518.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 519.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 520.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 521.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 522.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 523.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 524.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 525.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 526.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 527.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 528.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 529.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 530.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 531.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 532.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 533.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 534.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 535.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 536.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 537.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 538.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 539.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 540.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 541.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 542.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 543.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 544.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 545.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 546.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 547.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 548.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 549.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 550.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 551.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 552.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 553.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 554.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 555.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 556.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 557.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 558.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 559.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 560.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 561.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 562.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 563.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 564.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 565.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 566.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 567.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 568.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 569.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 570.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 571.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 572.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 573.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 574.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 575.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 576.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 577.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 578.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 579.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 580.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 581.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 582.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 583.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 584.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 585.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 586.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 587.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 588.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 589.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 590.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 591.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 592.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 593.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 594.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 595.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 596.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 597.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 598.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 599.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 600.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 601.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 602.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 603.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 604.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 605.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 606.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 607.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 608.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 609.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 610.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 611.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 612.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 613.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 614.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 615.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 616.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 617.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 618.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 619.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 620.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 621.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 622.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 623.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 624.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 625.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 626.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 627.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 628.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 629.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 630.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 631.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 632.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 633.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 634.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 635.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 636.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 637.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 638.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 639.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 640.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 641.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 642.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 643.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 644.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 645.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 646.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 647.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 648.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 649.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 650.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 651.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 652.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 653.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 654.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 655.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 656.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 657.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 658.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 659.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 660.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 661.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 662.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 663.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 664.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 665.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 666.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 667.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 668.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 669.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 670.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 671.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 672.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 673.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 674.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 675.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 676.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 677.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 678.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 679.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 680.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 681.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 682.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 683.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 684.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 685.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 686.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 687.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 688.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 689.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 690.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 691.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 692.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 693.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 694.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 695.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 696.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 697.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 698.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 699.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 700.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 701.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 702.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 703.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 704.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 705.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 706.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 707.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 708.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 709.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 710.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 711.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 712.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 713.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 714.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 715.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 716.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 717.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 718.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 719.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 720.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 721.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 722.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 723.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 724.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 725.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 726.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 727.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 728.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 729.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 730.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 731.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 732.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 733.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 734.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 735.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 736.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 737.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 738.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 739.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 740.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 741.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 742.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 743.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 744.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 745.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 746.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 747.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 748.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 749.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 750.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 751.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 752.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 753.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 754.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 755.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 756.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 757.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 758.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 759.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 760.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 761.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 762.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 763.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 764.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 765.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 766.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 767.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 768.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 769.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 770.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 771.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 772.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 773.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 774.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 775.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 776.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 777.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 778.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 779.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 780.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 781.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 782.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 783.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 784.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 785.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 786.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 787.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 788.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 789.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 790.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 791.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 792.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 793.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 794.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 795.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 796.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 797.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 798.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 799.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 800.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 801.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 802.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 803.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 804.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 805.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 806.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 807.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 808.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 809.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 810.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 811.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 812.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 813.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 814.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 815.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 816.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 817.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 818.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 819.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 820.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 821.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 822.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 823.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 824.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 825.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 826.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 827.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 828.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 829.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 830.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 831.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 832.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 833.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 834.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 835.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 836.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 837.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 838.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 839.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 840.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 841.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 842.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 843.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 844.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 845.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 846.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 847.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 848.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 849.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 850.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 851.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 852.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 853.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 854.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 855.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 856.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 857.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 858.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 859.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 860.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 861.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 862.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 863.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 864.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 865.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 866.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 867.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 868.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 869.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 870.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 871.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 872.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 873.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 874.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 875.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 876.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 877.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 878.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 879.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 880.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 881.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 882.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 883.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 884.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 885.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 886.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 887.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 888.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 889.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 890.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 891.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 892.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 893.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 894.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 895.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 896.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 897.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 898.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 899.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 900.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 901.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 902.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 903.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 904.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 905.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 906.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 907.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 908.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 909.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 910.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 911.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 912.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 913.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 914.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 915.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 916.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 917.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 918.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 919.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 920.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 921.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 922.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 923.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 924.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 925.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 926.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 927.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 928.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 929.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 930.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 931.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 932.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 933.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 934.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 935.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 936.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 937.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 938.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 939.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 940.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 941.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 942.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 943.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 944.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 945.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 946.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 947.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 948.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 949.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 950.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 951.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 952.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 953.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 954.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 955.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 956.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 957.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 958.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 959.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 960.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 961.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 962.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 963.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 964.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 965.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 966.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 967.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 968.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 969.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 970.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 971.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 972.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 973.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 974.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 975.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 976.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 977.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 978.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 979.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 980.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 981.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 982.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 983.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 984.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 985.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 986.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 987.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 988.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 989.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 990.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 991.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 992.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 993.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 994.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 995.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 996.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 997.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 998.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 999.  Skipped by the interface, not even sent to the 
prover. *)
-(* This is comment 1000.  Skipped by the interface, not even sent to the 
prover. *)
-
-end
diff --git a/etc/isar/AThousandTheorems.thy b/etc/isar/AThousandTheorems.thy
deleted file mode 100644
index 6e565f9..0000000
--- a/etc/isar/AThousandTheorems.thy
+++ /dev/null
@@ -1,1013 +0,0 @@
-theory AThousandTheorems imports Main
-begin
-
-ML {* val start = Timing.start () *}
-(* ELISP: -- (setq start (current-time)) -- *)
-
-lemma foo: "P --> P" by auto
-lemma foo2: "P --> P" by auto
-lemma foo3: "P --> P" by auto
-lemma foo4: "P --> P" by auto
-lemma foo5: "P --> P" by auto
-lemma foo6: "P --> P" by auto
-lemma foo7: "P --> P" by auto
-lemma foo8: "P --> P" by auto
-lemma foo9: "P --> P" by auto
-lemma foo10: "P --> P" by auto
-lemma foo11: "P --> P" by auto
-lemma foo12: "P --> P" by auto
-lemma foo13: "P --> P" by auto
-lemma foo14: "P --> P" by auto
-lemma foo15: "P --> P" by auto
-lemma foo16: "P --> P" by auto
-lemma foo17: "P --> P" by auto
-lemma foo18: "P --> P" by auto
-lemma foo19: "P --> P" by auto
-lemma foo20: "P --> P" by auto
-lemma foo21: "P --> P" by auto
-lemma foo22: "P --> P" by auto
-lemma foo23: "P --> P" by auto
-lemma foo24: "P --> P" by auto
-lemma foo25: "P --> P" by auto
-lemma foo26: "P --> P" by auto
-lemma foo27: "P --> P" by auto
-lemma foo28: "P --> P" by auto
-lemma foo29: "P --> P" by auto
-lemma foo30: "P --> P" by auto
-lemma foo31: "P --> P" by auto
-lemma foo32: "P --> P" by auto
-lemma foo33: "P --> P" by auto
-lemma foo34: "P --> P" by auto
-lemma foo35: "P --> P" by auto
-lemma foo36: "P --> P" by auto
-lemma foo37: "P --> P" by auto
-lemma foo38: "P --> P" by auto
-lemma foo39: "P --> P" by auto
-lemma foo40: "P --> P" by auto
-lemma foo41: "P --> P" by auto
-lemma foo42: "P --> P" by auto
-lemma foo43: "P --> P" by auto
-lemma foo44: "P --> P" by auto
-lemma foo45: "P --> P" by auto
-lemma foo46: "P --> P" by auto
-lemma foo47: "P --> P" by auto
-lemma foo48: "P --> P" by auto
-lemma foo49: "P --> P" by auto
-lemma foo50: "P --> P" by auto
-lemma foo51: "P --> P" by auto
-lemma foo52: "P --> P" by auto
-lemma foo53: "P --> P" by auto
-lemma foo54: "P --> P" by auto
-lemma foo55: "P --> P" by auto
-lemma foo56: "P --> P" by auto
-lemma foo57: "P --> P" by auto
-lemma foo58: "P --> P" by auto
-lemma foo59: "P --> P" by auto
-lemma foo60: "P --> P" by auto
-lemma foo61: "P --> P" by auto
-lemma foo62: "P --> P" by auto
-lemma foo63: "P --> P" by auto
-lemma foo64: "P --> P" by auto
-lemma foo65: "P --> P" by auto
-lemma foo66: "P --> P" by auto
-lemma foo67: "P --> P" by auto
-lemma foo68: "P --> P" by auto
-lemma foo69: "P --> P" by auto
-lemma foo70: "P --> P" by auto
-lemma foo71: "P --> P" by auto
-lemma foo72: "P --> P" by auto
-lemma foo73: "P --> P" by auto
-lemma foo74: "P --> P" by auto
-lemma foo75: "P --> P" by auto
-lemma foo76: "P --> P" by auto
-lemma foo77: "P --> P" by auto
-lemma foo78: "P --> P" by auto
-lemma foo79: "P --> P" by auto
-lemma foo80: "P --> P" by auto
-lemma foo81: "P --> P" by auto
-lemma foo82: "P --> P" by auto
-lemma foo83: "P --> P" by auto
-lemma foo84: "P --> P" by auto
-lemma foo85: "P --> P" by auto
-lemma foo86: "P --> P" by auto
-lemma foo87: "P --> P" by auto
-lemma foo88: "P --> P" by auto
-lemma foo89: "P --> P" by auto
-lemma foo90: "P --> P" by auto
-lemma foo91: "P --> P" by auto
-lemma foo92: "P --> P" by auto
-lemma foo93: "P --> P" by auto
-lemma foo94: "P --> P" by auto
-lemma foo95: "P --> P" by auto
-lemma foo96: "P --> P" by auto
-lemma foo97: "P --> P" by auto
-lemma foo98: "P --> P" by auto
-lemma foo99: "P --> P" by auto
-lemma foo100: "P --> P" by auto
-lemma foo101: "P --> P" by auto
-lemma foo102: "P --> P" by auto
-lemma foo103: "P --> P" by auto
-lemma foo104: "P --> P" by auto
-lemma foo105: "P --> P" by auto
-lemma foo106: "P --> P" by auto
-lemma foo107: "P --> P" by auto
-lemma foo108: "P --> P" by auto
-lemma foo109: "P --> P" by auto
-lemma foo110: "P --> P" by auto
-lemma foo111: "P --> P" by auto
-lemma foo112: "P --> P" by auto
-lemma foo113: "P --> P" by auto
-lemma foo114: "P --> P" by auto
-lemma foo115: "P --> P" by auto
-lemma foo116: "P --> P" by auto
-lemma foo117: "P --> P" by auto
-lemma foo118: "P --> P" by auto
-lemma foo119: "P --> P" by auto
-lemma foo120: "P --> P" by auto
-lemma foo121: "P --> P" by auto
-lemma foo122: "P --> P" by auto
-lemma foo123: "P --> P" by auto
-lemma foo124: "P --> P" by auto
-lemma foo125: "P --> P" by auto
-lemma foo126: "P --> P" by auto
-lemma foo127: "P --> P" by auto
-lemma foo128: "P --> P" by auto
-lemma foo129: "P --> P" by auto
-lemma foo130: "P --> P" by auto
-lemma foo131: "P --> P" by auto
-lemma foo132: "P --> P" by auto
-lemma foo133: "P --> P" by auto
-lemma foo134: "P --> P" by auto
-lemma foo135: "P --> P" by auto
-lemma foo136: "P --> P" by auto
-lemma foo137: "P --> P" by auto
-lemma foo138: "P --> P" by auto
-lemma foo139: "P --> P" by auto
-lemma foo140: "P --> P" by auto
-lemma foo141: "P --> P" by auto
-lemma foo142: "P --> P" by auto
-lemma foo143: "P --> P" by auto
-lemma foo144: "P --> P" by auto
-lemma foo145: "P --> P" by auto
-lemma foo146: "P --> P" by auto
-lemma foo147: "P --> P" by auto
-lemma foo148: "P --> P" by auto
-lemma foo149: "P --> P" by auto
-lemma foo150: "P --> P" by auto
-lemma foo151: "P --> P" by auto
-lemma foo152: "P --> P" by auto
-lemma foo153: "P --> P" by auto
-lemma foo154: "P --> P" by auto
-lemma foo155: "P --> P" by auto
-lemma foo156: "P --> P" by auto
-lemma foo157: "P --> P" by auto
-lemma foo158: "P --> P" by auto
-lemma foo159: "P --> P" by auto
-lemma foo160: "P --> P" by auto
-lemma foo161: "P --> P" by auto
-lemma foo162: "P --> P" by auto
-lemma foo163: "P --> P" by auto
-lemma foo164: "P --> P" by auto
-lemma foo165: "P --> P" by auto
-lemma foo166: "P --> P" by auto
-lemma foo167: "P --> P" by auto
-lemma foo168: "P --> P" by auto
-lemma foo169: "P --> P" by auto
-lemma foo170: "P --> P" by auto
-lemma foo171: "P --> P" by auto
-lemma foo172: "P --> P" by auto
-lemma foo173: "P --> P" by auto
-lemma foo174: "P --> P" by auto
-lemma foo175: "P --> P" by auto
-lemma foo176: "P --> P" by auto
-lemma foo177: "P --> P" by auto
-lemma foo178: "P --> P" by auto
-lemma foo179: "P --> P" by auto
-lemma foo180: "P --> P" by auto
-lemma foo181: "P --> P" by auto
-lemma foo182: "P --> P" by auto
-lemma foo183: "P --> P" by auto
-lemma foo184: "P --> P" by auto
-lemma foo185: "P --> P" by auto
-lemma foo186: "P --> P" by auto
-lemma foo187: "P --> P" by auto
-lemma foo188: "P --> P" by auto
-lemma foo189: "P --> P" by auto
-lemma foo190: "P --> P" by auto
-lemma foo191: "P --> P" by auto
-lemma foo192: "P --> P" by auto
-lemma foo193: "P --> P" by auto
-lemma foo194: "P --> P" by auto
-lemma foo195: "P --> P" by auto
-lemma foo196: "P --> P" by auto
-lemma foo197: "P --> P" by auto
-lemma foo198: "P --> P" by auto
-lemma foo199: "P --> P" by auto
-lemma foo200: "P --> P" by auto
-lemma foo201: "P --> P" by auto
-lemma foo202: "P --> P" by auto
-lemma foo203: "P --> P" by auto
-lemma foo204: "P --> P" by auto
-lemma foo205: "P --> P" by auto
-lemma foo206: "P --> P" by auto
-lemma foo207: "P --> P" by auto
-lemma foo208: "P --> P" by auto
-lemma foo209: "P --> P" by auto
-lemma foo210: "P --> P" by auto
-lemma foo211: "P --> P" by auto
-lemma foo212: "P --> P" by auto
-lemma foo213: "P --> P" by auto
-lemma foo214: "P --> P" by auto
-lemma foo215: "P --> P" by auto
-lemma foo216: "P --> P" by auto
-lemma foo217: "P --> P" by auto
-lemma foo218: "P --> P" by auto
-lemma foo219: "P --> P" by auto
-lemma foo220: "P --> P" by auto
-lemma foo221: "P --> P" by auto
-lemma foo222: "P --> P" by auto
-lemma foo223: "P --> P" by auto
-lemma foo224: "P --> P" by auto
-lemma foo225: "P --> P" by auto
-lemma foo226: "P --> P" by auto
-lemma foo227: "P --> P" by auto
-lemma foo228: "P --> P" by auto
-lemma foo229: "P --> P" by auto
-lemma foo230: "P --> P" by auto
-lemma foo231: "P --> P" by auto
-lemma foo232: "P --> P" by auto
-lemma foo233: "P --> P" by auto
-lemma foo234: "P --> P" by auto
-lemma foo235: "P --> P" by auto
-lemma foo236: "P --> P" by auto
-lemma foo237: "P --> P" by auto
-lemma foo238: "P --> P" by auto
-lemma foo239: "P --> P" by auto
-lemma foo240: "P --> P" by auto
-lemma foo241: "P --> P" by auto
-lemma foo242: "P --> P" by auto
-lemma foo243: "P --> P" by auto
-lemma foo244: "P --> P" by auto
-lemma foo245: "P --> P" by auto
-lemma foo246: "P --> P" by auto
-lemma foo247: "P --> P" by auto
-lemma foo248: "P --> P" by auto
-lemma foo249: "P --> P" by auto
-lemma foo250: "P --> P" by auto
-lemma foo251: "P --> P" by auto
-lemma foo252: "P --> P" by auto
-lemma foo253: "P --> P" by auto
-lemma foo254: "P --> P" by auto
-lemma foo255: "P --> P" by auto
-lemma foo256: "P --> P" by auto
-lemma foo257: "P --> P" by auto
-lemma foo258: "P --> P" by auto
-lemma foo259: "P --> P" by auto
-lemma foo260: "P --> P" by auto
-lemma foo261: "P --> P" by auto
-lemma foo262: "P --> P" by auto
-lemma foo263: "P --> P" by auto
-lemma foo264: "P --> P" by auto
-lemma foo265: "P --> P" by auto
-lemma foo266: "P --> P" by auto
-lemma foo267: "P --> P" by auto
-lemma foo268: "P --> P" by auto
-lemma foo269: "P --> P" by auto
-lemma foo270: "P --> P" by auto
-lemma foo271: "P --> P" by auto
-lemma foo272: "P --> P" by auto
-lemma foo273: "P --> P" by auto
-lemma foo274: "P --> P" by auto
-lemma foo275: "P --> P" by auto
-lemma foo276: "P --> P" by auto
-lemma foo277: "P --> P" by auto
-lemma foo278: "P --> P" by auto
-lemma foo279: "P --> P" by auto
-lemma foo280: "P --> P" by auto
-lemma foo281: "P --> P" by auto
-lemma foo282: "P --> P" by auto
-lemma foo283: "P --> P" by auto
-lemma foo284: "P --> P" by auto
-lemma foo285: "P --> P" by auto
-lemma foo286: "P --> P" by auto
-lemma foo287: "P --> P" by auto
-lemma foo288: "P --> P" by auto
-lemma foo289: "P --> P" by auto
-lemma foo290: "P --> P" by auto
-lemma foo291: "P --> P" by auto
-lemma foo292: "P --> P" by auto
-lemma foo293: "P --> P" by auto
-lemma foo294: "P --> P" by auto
-lemma foo295: "P --> P" by auto
-lemma foo296: "P --> P" by auto
-lemma foo297: "P --> P" by auto
-lemma foo298: "P --> P" by auto
-lemma foo299: "P --> P" by auto
-lemma foo300: "P --> P" by auto
-lemma foo301: "P --> P" by auto
-lemma foo302: "P --> P" by auto
-lemma foo303: "P --> P" by auto
-lemma foo304: "P --> P" by auto
-lemma foo305: "P --> P" by auto
-lemma foo306: "P --> P" by auto
-lemma foo307: "P --> P" by auto
-lemma foo308: "P --> P" by auto
-lemma foo309: "P --> P" by auto
-lemma foo310: "P --> P" by auto
-lemma foo311: "P --> P" by auto
-lemma foo312: "P --> P" by auto
-lemma foo313: "P --> P" by auto
-lemma foo314: "P --> P" by auto
-lemma foo315: "P --> P" by auto
-lemma foo316: "P --> P" by auto
-lemma foo317: "P --> P" by auto
-lemma foo318: "P --> P" by auto
-lemma foo319: "P --> P" by auto
-lemma foo320: "P --> P" by auto
-lemma foo321: "P --> P" by auto
-lemma foo322: "P --> P" by auto
-lemma foo323: "P --> P" by auto
-lemma foo324: "P --> P" by auto
-lemma foo325: "P --> P" by auto
-lemma foo326: "P --> P" by auto
-lemma foo327: "P --> P" by auto
-lemma foo328: "P --> P" by auto
-lemma foo329: "P --> P" by auto
-lemma foo330: "P --> P" by auto
-lemma foo331: "P --> P" by auto
-lemma foo332: "P --> P" by auto
-lemma foo333: "P --> P" by auto
-lemma foo334: "P --> P" by auto
-lemma foo335: "P --> P" by auto
-lemma foo336: "P --> P" by auto
-lemma foo337: "P --> P" by auto
-lemma foo338: "P --> P" by auto
-lemma foo339: "P --> P" by auto
-lemma foo340: "P --> P" by auto
-lemma foo341: "P --> P" by auto
-lemma foo342: "P --> P" by auto
-lemma foo343: "P --> P" by auto
-lemma foo344: "P --> P" by auto
-lemma foo345: "P --> P" by auto
-lemma foo346: "P --> P" by auto
-lemma foo347: "P --> P" by auto
-lemma foo348: "P --> P" by auto
-lemma foo349: "P --> P" by auto
-lemma foo350: "P --> P" by auto
-lemma foo351: "P --> P" by auto
-lemma foo352: "P --> P" by auto
-lemma foo353: "P --> P" by auto
-lemma foo354: "P --> P" by auto
-lemma foo355: "P --> P" by auto
-lemma foo356: "P --> P" by auto
-lemma foo357: "P --> P" by auto
-lemma foo358: "P --> P" by auto
-lemma foo359: "P --> P" by auto
-lemma foo360: "P --> P" by auto
-lemma foo361: "P --> P" by auto
-lemma foo362: "P --> P" by auto
-lemma foo363: "P --> P" by auto
-lemma foo364: "P --> P" by auto
-lemma foo365: "P --> P" by auto
-lemma foo366: "P --> P" by auto
-lemma foo367: "P --> P" by auto
-lemma foo368: "P --> P" by auto
-lemma foo369: "P --> P" by auto
-lemma foo370: "P --> P" by auto
-lemma foo371: "P --> P" by auto
-lemma foo372: "P --> P" by auto
-lemma foo373: "P --> P" by auto
-lemma foo374: "P --> P" by auto
-lemma foo375: "P --> P" by auto
-lemma foo376: "P --> P" by auto
-lemma foo377: "P --> P" by auto
-lemma foo378: "P --> P" by auto
-lemma foo379: "P --> P" by auto
-lemma foo380: "P --> P" by auto
-lemma foo381: "P --> P" by auto
-lemma foo382: "P --> P" by auto
-lemma foo383: "P --> P" by auto
-lemma foo384: "P --> P" by auto
-lemma foo385: "P --> P" by auto
-lemma foo386: "P --> P" by auto
-lemma foo387: "P --> P" by auto
-lemma foo388: "P --> P" by auto
-lemma foo389: "P --> P" by auto
-lemma foo390: "P --> P" by auto
-lemma foo391: "P --> P" by auto
-lemma foo392: "P --> P" by auto
-lemma foo393: "P --> P" by auto
-lemma foo394: "P --> P" by auto
-lemma foo395: "P --> P" by auto
-lemma foo396: "P --> P" by auto
-lemma foo397: "P --> P" by auto
-lemma foo398: "P --> P" by auto
-lemma foo399: "P --> P" by auto
-lemma foo400: "P --> P" by auto
-lemma foo401: "P --> P" by auto
-lemma foo402: "P --> P" by auto
-lemma foo403: "P --> P" by auto
-lemma foo404: "P --> P" by auto
-lemma foo405: "P --> P" by auto
-lemma foo406: "P --> P" by auto
-lemma foo407: "P --> P" by auto
-lemma foo408: "P --> P" by auto
-lemma foo409: "P --> P" by auto
-lemma foo410: "P --> P" by auto
-lemma foo411: "P --> P" by auto
-lemma foo412: "P --> P" by auto
-lemma foo413: "P --> P" by auto
-lemma foo414: "P --> P" by auto
-lemma foo415: "P --> P" by auto
-lemma foo416: "P --> P" by auto
-lemma foo417: "P --> P" by auto
-lemma foo418: "P --> P" by auto
-lemma foo419: "P --> P" by auto
-lemma foo420: "P --> P" by auto
-lemma foo421: "P --> P" by auto
-lemma foo422: "P --> P" by auto
-lemma foo423: "P --> P" by auto
-lemma foo424: "P --> P" by auto
-lemma foo425: "P --> P" by auto
-lemma foo426: "P --> P" by auto
-lemma foo427: "P --> P" by auto
-lemma foo428: "P --> P" by auto
-lemma foo429: "P --> P" by auto
-lemma foo430: "P --> P" by auto
-lemma foo431: "P --> P" by auto
-lemma foo432: "P --> P" by auto
-lemma foo433: "P --> P" by auto
-lemma foo434: "P --> P" by auto
-lemma foo435: "P --> P" by auto
-lemma foo436: "P --> P" by auto
-lemma foo437: "P --> P" by auto
-lemma foo438: "P --> P" by auto
-lemma foo439: "P --> P" by auto
-lemma foo440: "P --> P" by auto
-lemma foo441: "P --> P" by auto
-lemma foo442: "P --> P" by auto
-lemma foo443: "P --> P" by auto
-lemma foo444: "P --> P" by auto
-lemma foo445: "P --> P" by auto
-lemma foo446: "P --> P" by auto
-lemma foo447: "P --> P" by auto
-lemma foo448: "P --> P" by auto
-lemma foo449: "P --> P" by auto
-lemma foo450: "P --> P" by auto
-lemma foo451: "P --> P" by auto
-lemma foo452: "P --> P" by auto
-lemma foo453: "P --> P" by auto
-lemma foo454: "P --> P" by auto
-lemma foo455: "P --> P" by auto
-lemma foo456: "P --> P" by auto
-lemma foo457: "P --> P" by auto
-lemma foo458: "P --> P" by auto
-lemma foo459: "P --> P" by auto
-lemma foo460: "P --> P" by auto
-lemma foo461: "P --> P" by auto
-lemma foo462: "P --> P" by auto
-lemma foo463: "P --> P" by auto
-lemma foo464: "P --> P" by auto
-lemma foo465: "P --> P" by auto
-lemma foo466: "P --> P" by auto
-lemma foo467: "P --> P" by auto
-lemma foo468: "P --> P" by auto
-lemma foo469: "P --> P" by auto
-lemma foo470: "P --> P" by auto
-lemma foo471: "P --> P" by auto
-lemma foo472: "P --> P" by auto
-lemma foo473: "P --> P" by auto
-lemma foo474: "P --> P" by auto
-lemma foo475: "P --> P" by auto
-lemma foo476: "P --> P" by auto
-lemma foo477: "P --> P" by auto
-lemma foo478: "P --> P" by auto
-lemma foo479: "P --> P" by auto
-lemma foo480: "P --> P" by auto
-lemma foo481: "P --> P" by auto
-lemma foo482: "P --> P" by auto
-lemma foo483: "P --> P" by auto
-lemma foo484: "P --> P" by auto
-lemma foo485: "P --> P" by auto
-lemma foo486: "P --> P" by auto
-lemma foo487: "P --> P" by auto
-lemma foo488: "P --> P" by auto
-lemma foo489: "P --> P" by auto
-lemma foo490: "P --> P" by auto
-lemma foo491: "P --> P" by auto
-lemma foo492: "P --> P" by auto
-lemma foo493: "P --> P" by auto
-lemma foo494: "P --> P" by auto
-lemma foo495: "P --> P" by auto
-lemma foo496: "P --> P" by auto
-lemma foo497: "P --> P" by auto
-lemma foo498: "P --> P" by auto
-lemma foo499: "P --> P" by auto
-lemma foo500: "P --> P" by auto
-(*lemma foo500: "P --> P" by auto *)
-lemma foo501: "P --> P" by auto
-lemma foo502: "P --> P" by auto
-lemma foo503: "P --> P" by auto
-lemma foo504: "P --> P" by auto
-lemma foo505: "P --> P" by auto
-lemma foo506: "P --> P" by auto
-lemma foo507: "P --> P" by auto
-lemma foo508: "P --> P" by auto
-lemma foo509: "P --> P" by auto
-lemma foo510: "P --> P" by auto
-lemma foo511: "P --> P" by auto
-lemma foo512: "P --> P" by auto
-lemma foo513: "P --> P" by auto
-lemma foo514: "P --> P" by auto
-lemma foo515: "P --> P" by auto
-lemma foo516: "P --> P" by auto
-lemma foo517: "P --> P" by auto
-lemma foo518: "P --> P" by auto
-lemma foo519: "P --> P" by auto
-lemma foo520: "P --> P" by auto
-lemma foo521: "P --> P" by auto
-lemma foo522: "P --> P" by auto
-lemma foo523: "P --> P" by auto
-lemma foo524: "P --> P" by auto
-lemma foo525: "P --> P" by auto
-lemma foo526: "P --> P" by auto
-lemma foo527: "P --> P" by auto
-lemma foo528: "P --> P" by auto
-lemma foo529: "P --> P" by auto
-lemma foo530: "P --> P" by auto
-lemma foo531: "P --> P" by auto
-lemma foo532: "P --> P" by auto
-lemma foo533: "P --> P" by auto
-lemma foo534: "P --> P" by auto
-lemma foo535: "P --> P" by auto
-lemma foo536: "P --> P" by auto
-lemma foo537: "P --> P" by auto
-lemma foo538: "P --> P" by auto
-lemma foo539: "P --> P" by auto
-lemma foo540: "P --> P" by auto
-lemma foo541: "P --> P" by auto
-lemma foo542: "P --> P" by auto
-lemma foo543: "P --> P" by auto
-lemma foo544: "P --> P" by auto
-lemma foo545: "P --> P" by auto
-lemma foo546: "P --> P" by auto
-lemma foo547: "P --> P" by auto
-lemma foo548: "P --> P" by auto
-lemma foo549: "P --> P" by auto
-lemma foo550: "P --> P" by auto
-lemma foo551: "P --> P" by auto
-lemma foo552: "P --> P" by auto
-lemma foo553: "P --> P" by auto
-lemma foo554: "P --> P" by auto
-lemma foo555: "P --> P" by auto
-lemma foo556: "P --> P" by auto
-lemma foo557: "P --> P" by auto
-lemma foo558: "P --> P" by auto
-lemma foo559: "P --> P" by auto
-lemma foo560: "P --> P" by auto
-lemma foo561: "P --> P" by auto
-lemma foo562: "P --> P" by auto
-lemma foo563: "P --> P" by auto
-lemma foo564: "P --> P" by auto
-lemma foo565: "P --> P" by auto
-lemma foo566: "P --> P" by auto
-lemma foo567: "P --> P" by auto
-lemma foo568: "P --> P" by auto
-lemma foo569: "P --> P" by auto
-lemma foo570: "P --> P" by auto
-lemma foo571: "P --> P" by auto
-lemma foo572: "P --> P" by auto
-lemma foo573: "P --> P" by auto
-lemma foo574: "P --> P" by auto
-lemma foo575: "P --> P" by auto
-lemma foo576: "P --> P" by auto
-lemma foo577: "P --> P" by auto
-lemma foo578: "P --> P" by auto
-lemma foo579: "P --> P" by auto
-lemma foo580: "P --> P" by auto
-lemma foo581: "P --> P" by auto
-lemma foo582: "P --> P" by auto
-lemma foo583: "P --> P" by auto
-lemma foo584: "P --> P" by auto
-lemma foo585: "P --> P" by auto
-lemma foo586: "P --> P" by auto
-lemma foo587: "P --> P" by auto
-lemma foo588: "P --> P" by auto
-lemma foo589: "P --> P" by auto
-lemma foo590: "P --> P" by auto
-lemma foo591: "P --> P" by auto
-lemma foo592: "P --> P" by auto
-lemma foo593: "P --> P" by auto
-lemma foo594: "P --> P" by auto
-lemma foo595: "P --> P" by auto
-lemma foo596: "P --> P" by auto
-lemma foo597: "P --> P" by auto
-lemma foo598: "P --> P" by auto
-lemma foo599: "P --> P" by auto
-lemma foo600: "P --> P" by auto
-lemma foo601: "P --> P" by auto
-lemma foo602: "P --> P" by auto
-lemma foo603: "P --> P" by auto
-lemma foo604: "P --> P" by auto
-lemma foo605: "P --> P" by auto
-lemma foo606: "P --> P" by auto
-lemma foo607: "P --> P" by auto
-lemma foo608: "P --> P" by auto
-lemma foo609: "P --> P" by auto
-lemma foo610: "P --> P" by auto
-lemma foo611: "P --> P" by auto
-lemma foo612: "P --> P" by auto
-lemma foo613: "P --> P" by auto
-lemma foo614: "P --> P" by auto
-lemma foo615: "P --> P" by auto
-lemma foo616: "P --> P" by auto
-lemma foo617: "P --> P" by auto
-lemma foo618: "P --> P" by auto
-lemma foo619: "P --> P" by auto
-lemma foo620: "P --> P" by auto
-lemma foo621: "P --> P" by auto
-lemma foo622: "P --> P" by auto
-lemma foo623: "P --> P" by auto
-lemma foo624: "P --> P" by auto
-lemma foo625: "P --> P" by auto
-lemma foo626: "P --> P" by auto
-lemma foo627: "P --> P" by auto
-lemma foo628: "P --> P" by auto
-lemma foo629: "P --> P" by auto
-lemma foo630: "P --> P" by auto
-lemma foo631: "P --> P" by auto
-lemma foo632: "P --> P" by auto
-lemma foo633: "P --> P" by auto
-lemma foo634: "P --> P" by auto
-lemma foo635: "P --> P" by auto
-lemma foo636: "P --> P" by auto
-lemma foo637: "P --> P" by auto
-lemma foo638: "P --> P" by auto
-lemma foo639: "P --> P" by auto
-lemma foo640: "P --> P" by auto
-lemma foo641: "P --> P" by auto
-lemma foo642: "P --> P" by auto
-lemma foo643: "P --> P" by auto
-lemma foo644: "P --> P" by auto
-lemma foo645: "P --> P" by auto
-lemma foo646: "P --> P" by auto
-lemma foo647: "P --> P" by auto
-lemma foo648: "P --> P" by auto
-lemma foo649: "P --> P" by auto
-lemma foo650: "P --> P" by auto
-lemma foo651: "P --> P" by auto
-lemma foo652: "P --> P" by auto
-lemma foo653: "P --> P" by auto
-lemma foo654: "P --> P" by auto
-lemma foo655: "P --> P" by auto
-lemma foo656: "P --> P" by auto
-lemma foo657: "P --> P" by auto
-lemma foo658: "P --> P" by auto
-lemma foo659: "P --> P" by auto
-lemma foo660: "P --> P" by auto
-lemma foo661: "P --> P" by auto
-lemma foo662: "P --> P" by auto
-lemma foo663: "P --> P" by auto
-lemma foo664: "P --> P" by auto
-lemma foo665: "P --> P" by auto
-lemma foo666: "P --> P" by auto
-lemma foo667: "P --> P" by auto
-lemma foo668: "P --> P" by auto
-lemma foo669: "P --> P" by auto
-lemma foo670: "P --> P" by auto
-lemma foo671: "P --> P" by auto
-lemma foo672: "P --> P" by auto
-lemma foo673: "P --> P" by auto
-lemma foo674: "P --> P" by auto
-lemma foo675: "P --> P" by auto
-lemma foo676: "P --> P" by auto
-lemma foo677: "P --> P" by auto
-lemma foo678: "P --> P" by auto
-lemma foo679: "P --> P" by auto
-lemma foo680: "P --> P" by auto
-lemma foo681: "P --> P" by auto
-lemma foo682: "P --> P" by auto
-lemma foo683: "P --> P" by auto
-lemma foo684: "P --> P" by auto
-lemma foo685: "P --> P" by auto
-lemma foo686: "P --> P" by auto
-lemma foo687: "P --> P" by auto
-lemma foo688: "P --> P" by auto
-lemma foo689: "P --> P" by auto
-lemma foo690: "P --> P" by auto
-lemma foo691: "P --> P" by auto
-lemma foo692: "P --> P" by auto
-lemma foo693: "P --> P" by auto
-lemma foo694: "P --> P" by auto
-lemma foo695: "P --> P" by auto
-lemma foo696: "P --> P" by auto
-lemma foo697: "P --> P" by auto
-lemma foo698: "P --> P" by auto
-lemma foo699: "P --> P" by auto
-lemma foo700: "P --> P" by auto
-lemma foo701: "P --> P" by auto
-lemma foo702: "P --> P" by auto
-lemma foo703: "P --> P" by auto
-lemma foo704: "P --> P" by auto
-lemma foo705: "P --> P" by auto
-lemma foo706: "P --> P" by auto
-lemma foo707: "P --> P" by auto
-lemma foo708: "P --> P" by auto
-lemma foo709: "P --> P" by auto
-lemma foo710: "P --> P" by auto
-lemma foo711: "P --> P" by auto
-lemma foo712: "P --> P" by auto
-lemma foo713: "P --> P" by auto
-lemma foo714: "P --> P" by auto
-lemma foo715: "P --> P" by auto
-lemma foo716: "P --> P" by auto
-lemma foo717: "P --> P" by auto
-lemma foo718: "P --> P" by auto
-lemma foo719: "P --> P" by auto
-lemma foo720: "P --> P" by auto
-lemma foo721: "P --> P" by auto
-lemma foo722: "P --> P" by auto
-lemma foo723: "P --> P" by auto
-lemma foo724: "P --> P" by auto
-lemma foo725: "P --> P" by auto
-lemma foo726: "P --> P" by auto
-lemma foo727: "P --> P" by auto
-lemma foo728: "P --> P" by auto
-lemma foo729: "P --> P" by auto
-lemma foo730: "P --> P" by auto
-lemma foo731: "P --> P" by auto
-lemma foo732: "P --> P" by auto
-lemma foo733: "P --> P" by auto
-lemma foo734: "P --> P" by auto
-lemma foo735: "P --> P" by auto
-lemma foo736: "P --> P" by auto
-lemma foo737: "P --> P" by auto
-lemma foo738: "P --> P" by auto
-lemma foo739: "P --> P" by auto
-lemma foo740: "P --> P" by auto
-lemma foo741: "P --> P" by auto
-lemma foo742: "P --> P" by auto
-lemma foo743: "P --> P" by auto
-lemma foo744: "P --> P" by auto
-lemma foo745: "P --> P" by auto
-lemma foo746: "P --> P" by auto
-lemma foo747: "P --> P" by auto
-lemma foo748: "P --> P" by auto
-lemma foo749: "P --> P" by auto
-lemma foo750: "P --> P" by auto
-lemma foo751: "P --> P" by auto
-lemma foo752: "P --> P" by auto
-lemma foo753: "P --> P" by auto
-lemma foo754: "P --> P" by auto
-lemma foo755: "P --> P" by auto
-lemma foo756: "P --> P" by auto
-lemma foo757: "P --> P" by auto
-lemma foo758: "P --> P" by auto
-lemma foo759: "P --> P" by auto
-lemma foo760: "P --> P" by auto
-lemma foo761: "P --> P" by auto
-lemma foo762: "P --> P" by auto
-lemma foo763: "P --> P" by auto
-lemma foo764: "P --> P" by auto
-lemma foo765: "P --> P" by auto
-lemma foo766: "P --> P" by auto
-lemma foo767: "P --> P" by auto
-lemma foo768: "P --> P" by auto
-lemma foo769: "P --> P" by auto
-lemma foo770: "P --> P" by auto
-lemma foo771: "P --> P" by auto
-lemma foo772: "P --> P" by auto
-lemma foo773: "P --> P" by auto
-lemma foo774: "P --> P" by auto
-lemma foo775: "P --> P" by auto
-lemma foo776: "P --> P" by auto
-lemma foo777: "P --> P" by auto
-lemma foo778: "P --> P" by auto
-lemma foo779: "P --> P" by auto
-lemma foo780: "P --> P" by auto
-lemma foo781: "P --> P" by auto
-lemma foo782: "P --> P" by auto
-lemma foo783: "P --> P" by auto
-lemma foo784: "P --> P" by auto
-lemma foo785: "P --> P" by auto
-lemma foo786: "P --> P" by auto
-lemma foo787: "P --> P" by auto
-lemma foo788: "P --> P" by auto
-lemma foo789: "P --> P" by auto
-lemma foo790: "P --> P" by auto
-lemma foo791: "P --> P" by auto
-lemma foo792: "P --> P" by auto
-lemma foo793: "P --> P" by auto
-lemma foo794: "P --> P" by auto
-lemma foo795: "P --> P" by auto
-lemma foo796: "P --> P" by auto
-lemma foo797: "P --> P" by auto
-lemma foo798: "P --> P" by auto
-lemma foo799: "P --> P" by auto
-lemma foo800: "P --> P" by auto
-lemma foo801: "P --> P" by auto
-lemma foo802: "P --> P" by auto
-lemma foo803: "P --> P" by auto
-lemma foo804: "P --> P" by auto
-lemma foo805: "P --> P" by auto
-lemma foo806: "P --> P" by auto
-lemma foo807: "P --> P" by auto
-lemma foo808: "P --> P" by auto
-lemma foo809: "P --> P" by auto
-lemma foo810: "P --> P" by auto
-lemma foo811: "P --> P" by auto
-lemma foo812: "P --> P" by auto
-lemma foo813: "P --> P" by auto
-lemma foo814: "P --> P" by auto
-lemma foo815: "P --> P" by auto
-lemma foo816: "P --> P" by auto
-lemma foo817: "P --> P" by auto
-lemma foo818: "P --> P" by auto
-lemma foo819: "P --> P" by auto
-lemma foo820: "P --> P" by auto
-lemma foo821: "P --> P" by auto
-lemma foo822: "P --> P" by auto
-lemma foo823: "P --> P" by auto
-lemma foo824: "P --> P" by auto
-lemma foo825: "P --> P" by auto
-lemma foo826: "P --> P" by auto
-lemma foo827: "P --> P" by auto
-lemma foo828: "P --> P" by auto
-lemma foo829: "P --> P" by auto
-lemma foo830: "P --> P" by auto
-lemma foo831: "P --> P" by auto
-lemma foo832: "P --> P" by auto
-lemma foo833: "P --> P" by auto
-lemma foo834: "P --> P" by auto
-lemma foo835: "P --> P" by auto
-lemma foo836: "P --> P" by auto
-lemma foo837: "P --> P" by auto
-lemma foo838: "P --> P" by auto
-lemma foo839: "P --> P" by auto
-lemma foo840: "P --> P" by auto
-lemma foo841: "P --> P" by auto
-lemma foo842: "P --> P" by auto
-lemma foo843: "P --> P" by auto
-lemma foo844: "P --> P" by auto
-lemma foo845: "P --> P" by auto
-lemma foo846: "P --> P" by auto
-lemma foo847: "P --> P" by auto
-lemma foo848: "P --> P" by auto
-lemma foo849: "P --> P" by auto
-lemma foo850: "P --> P" by auto
-lemma foo851: "P --> P" by auto
-lemma foo852: "P --> P" by auto
-lemma foo853: "P --> P" by auto
-lemma foo854: "P --> P" by auto
-lemma foo855: "P --> P" by auto
-lemma foo856: "P --> P" by auto
-lemma foo857: "P --> P" by auto
-lemma foo858: "P --> P" by auto
-lemma foo859: "P --> P" by auto
-lemma foo860: "P --> P" by auto
-lemma foo861: "P --> P" by auto
-lemma foo862: "P --> P" by auto
-lemma foo863: "P --> P" by auto
-lemma foo864: "P --> P" by auto
-lemma foo865: "P --> P" by auto
-lemma foo866: "P --> P" by auto
-lemma foo867: "P --> P" by auto
-lemma foo868: "P --> P" by auto
-lemma foo869: "P --> P" by auto
-lemma foo870: "P --> P" by auto
-lemma foo871: "P --> P" by auto
-lemma foo872: "P --> P" by auto
-lemma foo873: "P --> P" by auto
-lemma foo874: "P --> P" by auto
-lemma foo875: "P --> P" by auto
-lemma foo876: "P --> P" by auto
-lemma foo877: "P --> P" by auto
-lemma foo878: "P --> P" by auto
-lemma foo879: "P --> P" by auto
-lemma foo880: "P --> P" by auto
-lemma foo881: "P --> P" by auto
-lemma foo882: "P --> P" by auto
-lemma foo883: "P --> P" by auto
-lemma foo884: "P --> P" by auto
-lemma foo885: "P --> P" by auto
-lemma foo886: "P --> P" by auto
-lemma foo887: "P --> P" by auto
-lemma foo888: "P --> P" by auto
-lemma foo889: "P --> P" by auto
-lemma foo890: "P --> P" by auto
-lemma foo891: "P --> P" by auto
-lemma foo892: "P --> P" by auto
-lemma foo893: "P --> P" by auto
-lemma foo894: "P --> P" by auto
-lemma foo895: "P --> P" by auto
-lemma foo896: "P --> P" by auto
-lemma foo897: "P --> P" by auto
-lemma foo898: "P --> P" by auto
-lemma foo899: "P --> P" by auto
-lemma foo900: "P --> P" by auto
-lemma foo901: "P --> P" by auto
-lemma foo902: "P --> P" by auto
-lemma foo903: "P --> P" by auto
-lemma foo904: "P --> P" by auto
-lemma foo905: "P --> P" by auto
-lemma foo906: "P --> P" by auto
-lemma foo907: "P --> P" by auto
-lemma foo908: "P --> P" by auto
-lemma foo909: "P --> P" by auto
-lemma foo910: "P --> P" by auto
-lemma foo911: "P --> P" by auto
-lemma foo912: "P --> P" by auto
-lemma foo913: "P --> P" by auto
-lemma foo914: "P --> P" by auto
-lemma foo915: "P --> P" by auto
-lemma foo916: "P --> P" by auto
-lemma foo917: "P --> P" by auto
-lemma foo918: "P --> P" by auto
-lemma foo919: "P --> P" by auto
-lemma foo920: "P --> P" by auto
-lemma foo921: "P --> P" by auto
-lemma foo922: "P --> P" by auto
-lemma foo923: "P --> P" by auto
-lemma foo924: "P --> P" by auto
-lemma foo925: "P --> P" by auto
-lemma foo926: "P --> P" by auto
-lemma foo927: "P --> P" by auto
-lemma foo928: "P --> P" by auto
-lemma foo929: "P --> P" by auto
-lemma foo930: "P --> P" by auto
-lemma foo931: "P --> P" by auto
-lemma foo932: "P --> P" by auto
-lemma foo933: "P --> P" by auto
-lemma foo934: "P --> P" by auto
-lemma foo935: "P --> P" by auto
-lemma foo936: "P --> P" by auto
-lemma foo937: "P --> P" by auto
-lemma foo938: "P --> P" by auto
-lemma foo939: "P --> P" by auto
-lemma foo940: "P --> P" by auto
-lemma foo941: "P --> P" by auto
-lemma foo942: "P --> P" by auto
-lemma foo943: "P --> P" by auto
-lemma foo944: "P --> P" by auto
-lemma foo945: "P --> P" by auto
-lemma foo946: "P --> P" by auto
-lemma foo947: "P --> P" by auto
-lemma foo948: "P --> P" by auto
-lemma foo949: "P --> P" by auto
-lemma foo950: "P --> P" by auto
-lemma foo951: "P --> P" by auto
-lemma foo952: "P --> P" by auto
-lemma foo953: "P --> P" by auto
-lemma foo954: "P --> P" by auto
-lemma foo955: "P --> P" by auto
-lemma foo956: "P --> P" by auto
-lemma foo957: "P --> P" by auto
-lemma foo958: "P --> P" by auto
-lemma foo959: "P --> P" by auto
-lemma foo960: "P --> P" by auto
-lemma foo961: "P --> P" by auto
-lemma foo962: "P --> P" by auto
-lemma foo963: "P --> P" by auto
-lemma foo964: "P --> P" by auto
-lemma foo965: "P --> P" by auto
-lemma foo966: "P --> P" by auto
-lemma foo967: "P --> P" by auto
-lemma foo968: "P --> P" by auto
-lemma foo969: "P --> P" by auto
-lemma foo970: "P --> P" by auto
-lemma foo971: "P --> P" by auto
-lemma foo972: "P --> P" by auto
-lemma foo973: "P --> P" by auto
-lemma foo974: "P --> P" by auto
-lemma foo975: "P --> P" by auto
-lemma foo976: "P --> P" by auto
-lemma foo977: "P --> P" by auto
-lemma foo978: "P --> P" by auto
-lemma foo979: "P --> P" by auto
-lemma foo980: "P --> P" by auto
-lemma foo981: "P --> P" by auto
-lemma foo982: "P --> P" by auto
-lemma foo983: "P --> P" by auto
-lemma foo984: "P --> P" by auto
-lemma foo985: "P --> P" by auto
-lemma foo986: "P --> P" by auto
-lemma foo987: "P --> P" by auto
-lemma foo988: "P --> P" by auto
-lemma foo989: "P --> P" by auto
-lemma foo990: "P --> P" by auto
-lemma foo991: "P --> P" by auto
-lemma foo992: "P --> P" by auto
-lemma foo993: "P --> P" by auto
-lemma foo994: "P --> P" by auto
-lemma foo995: "P --> P" by auto
-lemma foo996: "P --> P" by auto
-lemma foo997: "P --> P" by auto
-lemma foo998: "P --> P" by auto
-lemma foo999: "P --> P" by auto
-lemma foo1000: "P --> P" by auto
-
-ML {* warning (Timing.message (Timing.result start)) *}
-(* ELISP: -- (message "Time taken: %f seconds" (time-to-seconds (time-since 
start))) -- *)
-
-end
-
diff --git a/etc/isar/BackslashInStrings.thy b/etc/isar/BackslashInStrings.thy
deleted file mode 100644
index 2161ed8..0000000
--- a/etc/isar/BackslashInStrings.thy
+++ /dev/null
@@ -1,47 +0,0 @@
-theory BackslashInStrings imports Main begin
-
-consts test :: string
-
-(*
-
-10.8.04  NB: Isar currently sets \ as word constituent ("w").
-Isabelle sets it as a punctuation element (".").
-
-Experiments:  (modify-syntax-entry ?\\ "w")
-             (modify-syntax-entry ?\\ ".")
-
-(add-hook 'isar-mode-hook
-  (lambda () (modify-syntax-entry ?\\ "\\")))
-*)
-
-defs test_def: "test == ''System.out.println(\"List from here:\")''"
-
-
-end 
-
-
-
-(*
-
-I'd be grateful for a little help in solving a bug/issue that I'm encountering 
in using Proof General with strings. It appears that Isar doesn't correctly 
understand Isabelle strings correctly.
-
-He's an example theory that throws up the observed issues:
-
-theory Test = Main:
-
-consts test :: string
-
-defs test_def: "test == ''System.out.println(\"List from here:\")''"
-
-end
-
-Firstly, anything between escaped double quotes is incorrectly highlighted.
-
-This is benign, unless an Isar keyword occurs between the double quotes (eg. 
from). In this case, Isabelle throws an error when it trys to parse the 
Isabelle term - mainly, it appears, because Isar/Proof General has passed 
Isabelle an incorrect term.
-
-I presume there's some Proof General regular expression that needs modifying 
here?
-
-Any help in fixing the issue is greatly appreciated.
-
-Thanks,
-*)
diff --git a/etc/isar/BigErrors.thy b/etc/isar/BigErrors.thy
deleted file mode 100644
index 0dd41e4..0000000
--- a/etc/isar/BigErrors.thy
+++ /dev/null
@@ -1,20 +0,0 @@
-(* See http://proofgeneral.inf.ed.ac.uk/trac/ticket/274 *)
-
-theory BigErrors imports Pure 
-begin
-
-consts foo :: 'a
-consts bar :: 'a
-
-ML {* warning (cat_lines (replicate 300 "This is a big warning message")); *}
-
-(* Attempt to get a big error with "error" fails, but we can use printing 
function
-   (see FaultyErrors.thy) *)
-
-ML {* Output.error_msg (cat_lines (replicate 10000 "This is a big error 
message")); *}
-
-(* Note about FaultyErrors: the above generates an error
-   interactively but does *not* generate an error when 
-   required by another theory, see, BigErrorsNested *)
-
-end
diff --git a/etc/isar/BigErrorsNested.thy b/etc/isar/BigErrorsNested.thy
deleted file mode 100644
index 69fa714..0000000
--- a/etc/isar/BigErrorsNested.thy
+++ /dev/null
@@ -1,6 +0,0 @@
-(* See http://proofgeneral.inf.ed.ac.uk/trac/ticket/274 *)
-
-theory BigErrorsNested imports BigErrors 
-begin
-
-end
diff --git a/etc/isar/ChosenLogic.thy b/etc/isar/ChosenLogic.thy
deleted file mode 100644
index 67b164d..0000000
--- a/etc/isar/ChosenLogic.thy
+++ /dev/null
@@ -1,8 +0,0 @@
-(* -*- isabelle-chosen-logic: "ZF" -*- *)
-
-theory ChosenLogic imports Main_ZFC
-begin
-
-end
-
-
diff --git a/etc/isar/ChosenLogic2.thy b/etc/isar/ChosenLogic2.thy
deleted file mode 100644
index a7a6c93..0000000
--- a/etc/isar/ChosenLogic2.thy
+++ /dev/null
@@ -1,8 +0,0 @@
-(* -*- isabelle-chosen-logic: "HOL" -*- *)
-
-theory ChosenLogic2 imports HOL
-begin
-
-end
-
-
diff --git a/etc/isar/CommentParsingBug.thy b/etc/isar/CommentParsingBug.thy
deleted file mode 100644
index 0da1575..0000000
--- a/etc/isar/CommentParsingBug.thy
+++ /dev/null
@@ -1,3 +0,0 @@
-(**)(**)
-theory CommentParsingBug imports Main begin
-
diff --git a/etc/isar/CommentParsingBug2.thy b/etc/isar/CommentParsingBug2.thy
deleted file mode 100644
index a7bcba2..0000000
--- a/etc/isar/CommentParsingBug2.thy
+++ /dev/null
@@ -1,8 +0,0 @@
-(* Tobias reported 24.1.03.  Could not repeat prob *)
-theory CommentParsingBug2 imports Main begin
-
-(*
-defs
-*)
-
-end
diff --git a/etc/isar/Depends.thy b/etc/isar/Depends.thy
deleted file mode 100644
index 2d13c0f..0000000
--- a/etc/isar/Depends.thy
+++ /dev/null
@@ -1,14 +0,0 @@
-(* In order to test the latest thm deps setup, consider this example: *)
-
-theory Depends imports Main begin
-
-  lemma I: "A ==> A" and K: "A ==> B ==> A" .
-
-(*
-This reports I, K depending on several things; for your internal
-dependency graph you may interpret this as each member of {I, K} depending
-on all the deps.
-*)
-
-end
-
diff --git a/etc/isar/EmptyCommands.thy b/etc/isar/EmptyCommands.thy
deleted file mode 100644
index f361ecc..0000000
--- a/etc/isar/EmptyCommands.thy
+++ /dev/null
@@ -1,10 +0,0 @@
-(* See Trac #289, http://proofgeneral.inf.ed.ac.uk/trac/ticket/289 *)
-theory EmptyCommands imports Main begin
-
-term x;
-
-term y;
-
-; ;
-
-end
diff --git a/etc/isar/FaultyErrors.thy b/etc/isar/FaultyErrors.thy
deleted file mode 100644
index 5106ce7..0000000
--- a/etc/isar/FaultyErrors.thy
+++ /dev/null
@@ -1,28 +0,0 @@
-theory FaultyErrors imports Main
-begin
-
-lemma foo: "P --> P" by auto
-
-ML {* Output.error_msg "Fake error"; *} (* now *not* an error *)
-ML {* error "Real error" :unit; *}      (* a true error, command fails *)
-
-(* After an error message, the system wrongly thinks the
-   command has succeeded, currently 03.01.07.
-   This means that undo>redo fails.  
-   
-   This happens immediately after processing to the error and undoing
-   all the way back: redoing "theory" in Eclipse fails, because <undostep> is
-   used each time, and it doesn't get far enough.  Repeating theory gives
-   the error "can't use theory in theory mode".
-     
-   The lemma helps exercise the case that <abortheory> is used
-   to undo the theory quickly (as it should be, and as it is in
-   Emacs, by looking at the buffer), which fixes the "theory" redo.  
-   
-    1. Do until error
-    2. Undo to before lemma
-    3. Redo should not give warning message "foo is already defined".
-    
-   Now fixed for Eclipse and Emacs in Isabelle >=03.01.07.
-*)   
-end
diff --git a/etc/isar/Fibonacci.thy b/etc/isar/Fibonacci.thy
deleted file mode 100644
index d26f3af..0000000
--- a/etc/isar/Fibonacci.thy
+++ /dev/null
@@ -1,168 +0,0 @@
-(*  Copied from Isabelle2011-1/src/HOL/Isar_examples/ *)
-
-(*  Title:      HOL/Isar_Examples/Fibonacci.thy
-    Author:     Gertrud Bauer
-    Copyright   1999 Technische Universitaet Muenchen
-
-The Fibonacci function.  Demonstrates the use of recdef.  Original
-tactic script by Lawrence C Paulson.
-
-Fibonacci numbers: proofs of laws taken from
-
-  R. L. Graham, D. E. Knuth, O. Patashnik.
-  Concrete Mathematics.
-  (Addison-Wesley, 1989)
-*)
-
-header {* Fib and Gcd commute *}
-
-theory Fibonacci
-imports "~~/src/HOL/Number_Theory/Primes"
-begin
-
-text_raw {* \footnote{Isar version by Gertrud Bauer.  Original tactic
-  script by Larry Paulson.  A few proofs of laws taken from
-  \cite{Concrete-Math}.} *}
-
-
-declare One_nat_def [simp]
-
-
-subsection {* Fibonacci numbers *}
-
-fun fib :: "nat \<Rightarrow> nat" where
-  "fib 0 = 0"
-| "fib (Suc 0) = 1"
-| "fib (Suc (Suc x)) = fib x + fib (Suc x)"
-
-lemma [simp]: "fib (Suc n) > 0"
-  by (induct n rule: fib.induct) simp_all
-
-
-text {* Alternative induction rule. *}
-
-theorem fib_induct:
-    "P 0 ==> P 1 ==> (!!n. P (n + 1) ==> P n ==> P (n + 2)) ==> P (n::nat)"
-  by (induct rule: fib.induct) simp_all
-
-
-subsection {* Fib and gcd commute *}
-
-text {* A few laws taken from \cite{Concrete-Math}. *}
-
-lemma fib_add:
-  "fib (n + k + 1) = fib (k + 1) * fib (n + 1) + fib k * fib n"
-  (is "?P n")
-  -- {* see \cite[page 280]{Concrete-Math} *}
-proof (induct n rule: fib_induct)
-  show "?P 0" by simp
-  show "?P 1" by simp
-  fix n
-  have "fib (n + 2 + k + 1)
-    = fib (n + k + 1) + fib (n + 1 + k + 1)" by simp
-  also assume "fib (n + k + 1)
-    = fib (k + 1) * fib (n + 1) + fib k * fib n"
-      (is " _ = ?R1")
-  also assume "fib (n + 1 + k + 1)
-    = fib (k + 1) * fib (n + 1 + 1) + fib k * fib (n + 1)"
-      (is " _ = ?R2")
-  also have "?R1 + ?R2
-    = fib (k + 1) * fib (n + 2 + 1) + fib k * fib (n + 2)"
-    by (simp add: add_mult_distrib2)
-  finally show "?P (n + 2)" .
-qed
-
-lemma gcd_fib_Suc_eq_1: "gcd (fib n) (fib (n + 1)) = 1" (is "?P n")
-proof (induct n rule: fib_induct)
-  show "?P 0" by simp
-  show "?P 1" by simp
-  fix n
-  have "fib (n + 2 + 1) = fib (n + 1) + fib (n + 2)"
-    by simp
-  also have "... = fib (n + 2) + fib (n + 1)" by simp
-  also have "gcd (fib (n + 2)) ... = gcd (fib (n + 2)) (fib (n + 1))"
-    by (rule gcd_add2_nat)
-  also have "... = gcd (fib (n + 1)) (fib (n + 1 + 1))"
-    by (simp add: gcd_commute_nat)
-  also assume "... = 1"
-  finally show "?P (n + 2)" .
-qed
-
-lemma gcd_mult_add: "(0::nat) < n ==> gcd (n * k + m) n = gcd m n"
-proof -
-  assume "0 < n"
-  then have "gcd (n * k + m) n = gcd n (m mod n)"
-    by (simp add: gcd_non_0_nat add_commute)
-  also from `0 < n` have "... = gcd m n" by (simp add: gcd_non_0_nat)
-  finally show ?thesis .
-qed
-
-lemma gcd_fib_add: "gcd (fib m) (fib (n + m)) = gcd (fib m) (fib n)"
-proof (cases m)
-  case 0
-  then show ?thesis by simp
-next
-  case (Suc k)
-  then have "gcd (fib m) (fib (n + m)) = gcd (fib (n + k + 1)) (fib (k + 1))"
-    by (simp add: gcd_commute_nat)
-  also have "fib (n + k + 1)
-      = fib (k + 1) * fib (n + 1) + fib k * fib n"
-    by (rule fib_add)
-  also have "gcd ... (fib (k + 1)) = gcd (fib k * fib n) (fib (k + 1))"
-    by (simp add: gcd_mult_add)
-  also have "... = gcd (fib n) (fib (k + 1))"
-    by (simp only: gcd_fib_Suc_eq_1 gcd_mult_cancel_nat)
-  also have "... = gcd (fib m) (fib n)"
-    using Suc by (simp add: gcd_commute_nat)
-  finally show ?thesis .
-qed
-
-lemma gcd_fib_diff:
-  assumes "m <= n"
-  shows "gcd (fib m) (fib (n - m)) = gcd (fib m) (fib n)"
-proof -
-  have "gcd (fib m) (fib (n - m)) = gcd (fib m) (fib (n - m + m))"
-    by (simp add: gcd_fib_add)
-  also from `m <= n` have "n - m + m = n" by simp
-  finally show ?thesis .
-qed
-
-lemma gcd_fib_mod:
-  assumes "0 < m"
-  shows "gcd (fib m) (fib (n mod m)) = gcd (fib m) (fib n)"
-proof (induct n rule: nat_less_induct)
-  case (1 n) note hyp = this
-  show ?case
-  proof -
-    have "n mod m = (if n < m then n else (n - m) mod m)"
-      by (rule mod_if)
-    also have "gcd (fib m) (fib ...) = gcd (fib m) (fib n)"
-    proof (cases "n < m")
-      case True then show ?thesis by simp
-    next
-      case False then have "m <= n" by simp
-      from `0 < m` and False have "n - m < n" by simp
-      with hyp have "gcd (fib m) (fib ((n - m) mod m))
-          = gcd (fib m) (fib (n - m))" by simp
-      also have "... = gcd (fib m) (fib n)"
-        using `m <= n` by (rule gcd_fib_diff)
-      finally have "gcd (fib m) (fib ((n - m) mod m)) =
-          gcd (fib m) (fib n)" .
-      with False show ?thesis by simp
-    qed
-    finally show ?thesis .
-  qed
-qed
-
-theorem fib_gcd: "fib (gcd m n) = gcd (fib m) (fib n)" (is "?P m n")
-proof (induct m n rule: gcd_nat_induct)
-  fix m show "fib (gcd m 0) = gcd (fib m) (fib 0)" by simp
-  fix n :: nat assume n: "0 < n"
-  then have "gcd m n = gcd n (m mod n)" by (simp add: gcd_non_0_nat)
-  also assume hyp: "fib ... = gcd (fib n) (fib (m mod n))"
-  also from n have "... = gcd (fib n) (fib m)" by (rule gcd_fib_mod)
-  also have "... = gcd (fib m) (fib n)" by (rule gcd_commute_nat)
-  finally show "fib (gcd m n) = gcd (fib m) (fib n)" .
-qed
-
-end
diff --git a/etc/isar/HighlightSize.thy b/etc/isar/HighlightSize.thy
deleted file mode 100644
index 7c68b74..0000000
--- a/etc/isar/HighlightSize.thy
+++ /dev/null
@@ -1,13 +0,0 @@
-(* See: http://proofgeneral.inf.ed.ac.uk/trac/ticket/266 *)
-
-theory HighlightSize imports Main
-begin
-
-lemmas rules = sym refl trans sym refl trans sym refl trans sym refl trans sym 
refl trans
-
-ML_command {* Pretty.writeln (Pretty.markup Markup.hilite
-  [Proof_Context.pretty_fact @{context} ("foo", @{thms rules(1-14)})]) *}
-
-end
-
-
diff --git a/etc/isar/IllegalEscape.thy b/etc/isar/IllegalEscape.thy
deleted file mode 100644
index 3478830..0000000
--- a/etc/isar/IllegalEscape.thy
+++ /dev/null
@@ -1,7 +0,0 @@
-(* See http://proofgeneral.inf.ed.ac.uk/trac/ticket/166 *)
-
-theory IllegalEscape imports Main begin
-
-    lemma X: "a=b ==> b=a" by simp -- "Text with \illegal escape sequence"
-      oops
-end 
diff --git a/etc/isar/InterruptTest.thy.gz b/etc/isar/InterruptTest.thy.gz
deleted file mode 100644
index 4f21806..0000000
Binary files a/etc/isar/InterruptTest.thy.gz and /dev/null differ
diff --git a/etc/isar/MultipleModes.thy b/etc/isar/MultipleModes.thy
deleted file mode 100644
index 7e55257..0000000
--- a/etc/isar/MultipleModes.thy
+++ /dev/null
@@ -1,27 +0,0 @@
-header {* Some tests for \textbf{multiple modes!!} *}
-
-theory MultipleModes imports Main begin
-
-text {* Proper proof text -- \textit{naive version}. *}
-
-theorem and_comms: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then
-   show ?thesis ..
- qed
-qed
-
-ML {*
-  fun fact 0 = 1 
-    | fact n = n * (fact (n-1))
-
-  val x = 7; 
-*}
-
-end
-
-
diff --git a/etc/isar/NamesInStrings.thy b/etc/isar/NamesInStrings.thy
deleted file mode 100644
index 366b9a2..0000000
--- a/etc/isar/NamesInStrings.thy
+++ /dev/null
@@ -1,34 +0,0 @@
-theory "Names In Strings" imports Main begin   (* NB: must also check case 
without quotes! *)
-
-lemma foo: "B --> B" by auto
-
-lemma "foo bar": "B --> B" by auto
-
-lemma "foo-wiggle-bar": "B --> B" by auto
-
-theorem "x b": "B --> B" by auto
-
-(* NB: various other regexps and settings based on them are sensitive
-   to grouping in isar-name-regexp: should check function menu, imenu,
-   as well as undo behaviour. *)
-
-end
-
-
-(*
-
-I noticed the following minor problem with Isabelle and 
-ProofGeneral:
-
-
->>   theory "a" = Main:
->>   Proof General -> Use -> Retract:
->>   *** Outer syntax error: end of input expected,
->>   *** but identifier "a" was found
-
-Regards,
-Tjark
-
-*)
-
-
diff --git a/etc/isar/Parsing.thy b/etc/isar/Parsing.thy
deleted file mode 100644
index 98e8819..0000000
--- a/etc/isar/Parsing.thy
+++ /dev/null
@@ -1,75 +0,0 @@
-(* Not really a theory of parsing, but a test of Proof General's
-   parsing for Isabelle/Isar.... *)
-
-(* First, start with successive comments before a real command *)
-
-theory Parsing imports Main begin
-
-(* Then a comment *after* a command.  Also one which mentions
-   the names of commands, such as theory or theorem or proof itself,
-   never mind thus assume end qed. *)
-
-(* At the moment, successive comments are amalgamated, and comments
-   following commands are wrapped into the command (so cannot be
-   hidden). *)
-
-text {* Isar theories can have arbitrary literal text,
-          so the text must be ignored as well; thus. *}
-
-(* Those pieces of literal text are treated as another kind
-   of comment. What gets slight risky is when they're
-   text {* nested one inside the other. *}.
-   If Emacs confuses the two kinds of sequence, then
-   this can go wrong.
-*)
-
-text {* nesting (* may be the other way around *) *}
-
-(* The main type of comment (* may be nested *)
-   just like in SML. GNU Emacs [21.1] supports this now, nicely,
-   but XEmacs [21.4.8] doesn't, so colouration goes wrong.  
-   If there are any command names inside this comment
-   (e.g. theorem), it breaks the parser in XEmacs. 
-   [ To process this in XEmacs, delete "thxxrem" above, C-c C-n, C-x u ]
-*)
-
-(* Let's do my favourite proof. *)
-
-theorem and_comms: "A & B --> B & A"
-proof
-  assume "A & B"  (* it's "important" that we test "strings" I guess *)
-  then show "B & A"
-  proof
-    assume B A (* blah boo bah *)
-    then show ?thesis (* bah boo bah *)
-      ..
-  qed
-qed
-
-(* Another thing: nesting with { and } can be tricky. *)
-
-theorem and_comms_again: "A & B --> B & A"
-proof
-  assume "A & B" 
-  then show "B & A"
-  proof
-    {
-      assume B A
-      then show ?thesis
-       ..
-    }
-  qed
-qed
-
-(* Now the end of file is coming up.  Funny things happen
-   because PG only knows how commands start, not how they end.
-*)
-
-end
-(* That's the final command and it includes any text which follows it.
-   An oddity is that if there is a syntax error - unclosed comment
-   or whatever, after the last end, PG will say that it can't find
-   a complete command! 
-
-   Another oddity with comments at the end: these are left as "commands". *)
-
diff --git a/etc/isar/ParsingBug1.thy b/etc/isar/ParsingBug1.thy
deleted file mode 100644
index e56a5ae..0000000
--- a/etc/isar/ParsingBug1.thy
+++ /dev/null
@@ -1,15 +0,0 @@
-(* 
-  This is a small test case for parsing the { nested proof } phrase.
-
-  This case causes problems with the new parsing mechanism, see
-  comments in isar/isar-syntax.el and generic/proof-script.el
-*)
-  
-
-theory ParsingBug1 imports Main begin
-
-theorem "P"
-proof -
-  assume a: "Q"
-  {fix i have "Q" sorry}
-qed
diff --git a/etc/isar/Persistent.thy b/etc/isar/Persistent.thy
deleted file mode 100644
index 8a04288..0000000
--- a/etc/isar/Persistent.thy
+++ /dev/null
@@ -1,40 +0,0 @@
-(* 
-
-We now support persistent Isabelle sessions with Proof General, preserving
-the state of loaded theories (before I used to have a few explicit
-``bombs'' to prevent this).  When saying ``Exit Isabelle/Isar'' the image
-is committed back.  It's not possible to go continue partially processed
-theory buffer, but users could expect to have a fully processed theory
-stored properly.  The latter requires scripting to be disabled first, in
-order to inform the process to store the finished theory.
-
-To spare users to think about this, the ``Exit Isabelle/Isar''
-operation disables scripting automatically.
-
-Produce a writable Isabelle session like this:
-
-  isabelle -q HOL Foo
-
-Now start PG and start a process with the Foo logic image.
-
-Tests:
-
-  Process this file, exit, start.  
-  Unprocess, exit, start.              [FAILS with Isabelle2002]
-
-*)
-
-
-theory Persistent imports Main begin
-
-theorem and_comms: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume B and A
-    then show ?thesis ..
-  qed
-qed
-
-end
diff --git a/etc/isar/README b/etc/isar/README
deleted file mode 100644
index b2f5ffb..0000000
--- a/etc/isar/README
+++ /dev/null
@@ -1,8 +0,0 @@
-bad1.thy:
-  Bug test case: parser would silently skip bad command "foo".
-  Resolved as of 13.9.00
-
-bad2.thy:
-  Bug test case: synchronization problem on starting Isar process,
-  doesn't catch the first error.
-  Resolved as of 17.9.00
diff --git a/etc/isar/Sendback.thy b/etc/isar/Sendback.thy
deleted file mode 100644
index c77e90b..0000000
--- a/etc/isar/Sendback.thy
+++ /dev/null
@@ -1,23 +0,0 @@
-(* $Id$ *)
-
-header {* Demonstrate the use of literal command markup *}
-
-theory Sendback imports Main begin
-
-ML {*
-fun sendback cmd = ProofGeneral.sendback "Try this:" [Pretty.str cmd]
-fun sendback2 cmd1 cmd2 =
-  writeln ("Try: " ^ (Markup.markup Markup.sendback cmd1) ^ " or " ^
-                    (Markup.markup Markup.sendback cmd2))
-*}
-
-theorem and_comms: "A & B --> B & A"
-proof
-  ML_command {* sendback "assume \"A & B\"" *}
-  ML_command {* sendback "show \"B & A\"" *}
-  ML_command {* sendback2 "proof assume B and A then" 
-                         "proof assume A and B then" *}
-  ML_command {* sendback "show ?thesis .. qed" *}
-  ML_command {* sendback "qed" *}
-qed
-
diff --git a/etc/isar/TextProps.thy b/etc/isar/TextProps.thy
deleted file mode 100644
index 6c5b4b8..0000000
--- a/etc/isar/TextProps.thy
+++ /dev/null
@@ -1,22 +0,0 @@
-theory TextProps imports Main begin
-
-(* Note: nesting regions shows up possible text property 
-   merging problem inside Emacs/font-lock
-
-   \<^bbold>Bold and \<^bitalic>italic\<^eitalic>\<^ebold>
-
-   ;; good, desirable property value for 'face 
-   (append '(:slant italic) '(:weight bold font-lock-string-face))
-   (:slant italic :weight bold font-lock-string-face)
-
-   ;; bad, value obtained with font-lock-{append/prepend}-property:
-   (append '(:slant italic) '((:weight bold font-lock-string-face)))
-   (:slant italic (:weight bold font-lock-string-face))
-
-   For now we work around this in unicode-tokens 
-   (see unicode-tokens-prepend-text-properties)
-*)
-
-term "\<^bbold>Bold and \<^bitalic>italic\<^eitalic>\<^ebold>"
-
-end
diff --git a/etc/isar/TokensAcid.thy b/etc/isar/TokensAcid.thy
deleted file mode 100644
index 1759718..0000000
--- a/etc/isar/TokensAcid.thy
+++ /dev/null
@@ -1,218 +0,0 @@
-(* 
-   Some acid tests for token modes in Isabelle
-   David Aspinall, 2008-9.
-   $Id$
-
-   Note:
-    Unicode Tokens mode works much better in Emacs 23 than 22.
-
-   jEdit properties :tabSize=8:indentSize=8:noTabs=false:
-*)
-
-theory TokensAcid imports Main 
-begin
-
-(* Symbols.
-
-   Here's a table of all the standardly defined tokens for symbols,
-   produced by menu command Tokens -> List Tokens
-
-   You should see glyphs in all positions except the whitespace
-   tokens at positions 208, 262 and 263.
- 
-   I recommend using StixGeneral for symbols.
-   See http://www.stixfonts.org/
-   To install on Ubuntu, try:  
-
-         sudo apt-get install fonts-stix
-
-   Other good choices are: Lucida Grande, Lucida Sans Unicode, 
-   or DejaVuLGC Sans Mono.
-
-   Unfortunately 
-
-
- 1.  \<leftarrow>      \<rightarrow>   \<Leftarrow>    \<Rightarrow>   
\<leftrightarrow>       \<Leftrightarrow>       \<mapsto>       
\<longleftarrow>        \<Longleftarrow>        \<longrightarrow>
- 2.  \<Longrightarrow> \<longleftrightarrow>   \<Longleftrightarrow>   
\<longmapsto>   \<midarrow>     \<Midarrow>     \<hookleftarrow>        
\<hookrightarrow>       \<leftharpoondown>      \<rightharpoondown>
- 3.  \<leftharpoonup>  \<rightharpoonup>       \<rightleftharpoons>    
\<leadsto>      \<downharpoonleft>      \<downharpoonright>     
\<upharpoonleft>        \<upharpoonright>       \<restriction>  \<Colon>
- 4.  \<up>     \<Up>   \<down> \<Down> \<updown>       \<Updown>       
\<langle>       \<rangle>       \<lceil>        \<rceil>
- 5.  \<lfloor> \<rfloor>       \<lparr>        \<rparr>        \<lbrakk>       
\<rbrakk>       \<lbrace>       \<rbrace>       \<guillemotleft>        
\<guillemotright>
- 6.  \<bottom> \<top>  \<and>  \<And>  \<or>   \<Or>   \<forall>       
\<exists>       \<nexists>      \<not>
- 7.  \<box>    \<diamond>      \<turnstile>    \<Turnstile>    \<tturnstile>   
\<TTurnstile>   \<stileturn>    \<surd> \<le>   \<ge>
- 8.  \<lless>  \<ggreater>     \<lesssim>      \<greatersim>   \<lessapprox>   
\<greaterapprox>        \<in>   \<notin>        \<subset>       \<supset>
- 9.  \<subseteq>       \<supseteq>     \<sqsubset>     \<sqsupset>     
\<sqsubseteq>   \<sqsupseteq>   \<inter>        \<Inter>        \<union>        
\<Union>
-10.  \<squnion>        \<Squnion>      \<sqinter>      \<Sqinter>      
\<setminus>     \<propto>       \<uplus>        \<Uplus>        \<noteq>        
\<sim>
-11.  \<doteq>  \<simeq>        \<approx>       \<asymp>        \<cong> 
\<smile>        \<equiv>        \<frown>        \<Join> \<bowtie>
-12.  \<prec>   \<succ> \<preceq>       \<succeq>       \<parallel>     \<bar>  
\<plusminus>    \<minusplus>    \<times>        \<div>
-13.  \<cdot>   \<star> \<bullet>       \<circ> \<dagger>       \<ddagger>      
\<lhd>  \<rhd>  \<unlhd>        \<unrhd>
-14.  \<triangleleft>   \<triangleright>        \<triangle>     \<triangleq>    
\<oplus>        \<Oplus>        \<otimes>       \<Otimes>       \<odot> \<Odot>
-15.  \<ominus> \<oslash>       \<dots> \<cdots>        \<Sum>  \<Prod> 
\<Coprod>       \<infinity>     \<integral>     \<ointegral>
-16.  \<clubsuit>       \<diamondsuit>  \<heartsuit>    \<spadesuit>    
\<aleph>        \<emptyset>     \<nabla>        \<partial>      \<Re>   \<Im>
-17.  \<flat>   \<natural>      \<sharp>        \<angle>        \<copyright>    
\<registered>   \<hyphen>       \<inverse>      \<onesuperior>  \<twosuperior>
-18.  \<threesuperior>  \<onequarter>   \<onehalf>      \<threequarters>        
\<ordmasculine> \<ordfeminine>  \<section>      \<paragraph>    \<exclamdown>   
\<questiondown>
-19.  \<euro>   \<pounds>       \<yen>  \<cent> \<currency>     \<degree>       
\<amalg>        \<mho>  \<lozenge>      \<wp>
-20.  \<wrong>  \<struct>       \<acute>        \<index>        \<dieresis>     
\<cedilla>      \<hungarumlaut> \<spacespace>   \<module>       \<some>
-21.  \<stareq> \<defeq>        \<questioneq>   \<vartheta>     \<varpi>        
\<varrho>       \<varsigma>     \<varphi>       \<hbar> \<ell>
-22.  \<ast>    \<bigcirc>      \<bigtriangleup>        \<bigtriangledown>      
\<ni>   \<mid>  \<notlt>        \<notle>        \<notprec>      \<notpreceq>
-23.  \<notsubset>      \<notsubseteq>  \<notsqsubseteq>        \<notgt>        
\<notge>        \<notsucc>      \<notsucceq>    \<notsupset>    \<notsupseteq>  
\<notsqsupseteq>
-24.  \<notequiv>       \<notsim>       \<notsimeq>     \<notapprox>    
\<notcong>      \<notasymp>     \<nearrow>      \<searrow>      \<swarrow>      
\<nwarrow>
-25.  \<vdots>  \<ddots>        \<closequote>   \<openquote>    \<opendblquote> 
\<closedblquote>        \<emdash>       \<prime>        \<doubleprime>  
\<tripleprime>
-26.  \<quadrupleprime> \<nbspace>      \<thinspace>    \<notni>        
\<colonequals>  \<foursuperior> \<fivesuperior> \<sixsuperior>  
\<sevensuperior>        \<eightsuperior>
-27.  \<ninesuperior>   \<bool> \<complex>      \<nat>  \<rat>  \<real> \<int>  
\<alpha>        \<beta> \<gamma>
-28.  \<delta>  \<epsilon>      \<zeta> \<eta>  \<theta>        \<iota> 
\<kappa>        \<lambda>       \<mu>   \<nu>
-29.  \<xi>     \<pi>   \<rho>  \<sigma>        \<tau>  \<upsilon>      \<phi>  
\<chi>  \<psi>  \<omega>
-30.  \<Gamma>  \<Delta>        \<Theta>        \<Lambda>       \<Xi>   \<Pi>   
\<Sigma>        \<Upsilon>      \<Phi>  \<Psi>
-31.  \<Omega>  \<zero> \<one>  \<two>  \<three>        \<four> \<five> \<six>  
\<seven>        \<eight>
-32.  \<nine>   \<A>    \<B>    \<C>    \<D>    \<E>    \<F>    \<G>    \<H>    
\<I>
-33.  \<J>      \<K>    \<L>    \<M>    \<N>    \<O>    \<P>    \<Q>    \<R>    
\<S>
-34.  \<T>      \<U>    \<V>    \<W>    \<X>    \<Y>    \<Z>    \<a>    \<b>    
\<c>
-35.  \<d>      \<e>    \<f>    \<g>    \<h>    \<i>    \<j>    \<k>    \<l>    
\<m>
-36.  \<n>      \<o>    \<p>    \<q>    \<r>    \<s>    \<t>    \<u>    \<v>    
\<w>
-37.  \<x>      \<y>    \<z>    \<AA>   \<BB>   \<CC>   \<DD>   \<EE>   \<FF>   
\<GG>
-38.  \<HH>     \<II>   \<JJ>   \<KK>   \<LL>   \<MM>   \<NN>   \<OO>   \<PP>   
\<QQ>
-39.  \<RR>     \<SS>   \<TT>   \<UU>   \<VV>   \<WW>   \<XX>   \<YY>   \<ZZ>   
\<aa>
-40.  \<bb>     \<cc>   \<dd>   \<ee>   \<ff>   \<gg>   \<hh>   \<ii>   \<jj>   
\<kk>
-41.  \<ll>     \<mm>   \<nn>   \<oo>   \<pp>   \<qq>   \<rr>   \<ss>   \<tt>   
\<uu>
-42.  \<vv>     \<ww>   \<xx>   \<yy>   \<zz>                                   
 
-*)
-
-(* Tokens controlling layout and fonts: regions.
-
-   Token region convention in Isabelle is \<^bFOO>... \<^eFOO>
-  
-   The \<^bserif>font\<^eserif> and 
\<^bbold>bold\<^ebold>/\<^bitalic>italic\<^eitalic> controls are non-standard 
and
-   may not be supported by other interfaces.
-
-   Convenience functions:
-     Select a region, use Tokens -> Format Region -> Bold, etc
-  
-   Editing can be a bit fiddly, use C-c C-t C-t to show or hide
-   the control tokens to help.
-*)  
-
-(* Introduce uninterpreted term syntax using these features,
-   to check behaviour in locked/unlocked regions. *)
-
-consts longsub :: "['a,'a]\<Rightarrow>'a" ("_\<^bsub>_\<^esub>")
-consts longsup :: "['a,'a]\<Rightarrow>'a" ("_\<^bsup>_\<^esup>")
-
-consts bold    :: "'a\<Rightarrow>'a" ("\<^bbold>_\<^ebold>")
-consts italic  :: "'a\<Rightarrow>'a" ("\<^bitalic>_\<^eitalic>")
-consts sans    :: "'a\<Rightarrow>'a" ("\<^bsans>_\<^esans>")
-consts script  :: "'a\<Rightarrow>'a" ("\<^bscript>_\<^escript>")
-consts frakt   :: "'a\<Rightarrow>'a" ("\<^bfrakt>_\<^efrakt>")
-consts serif   :: "'a\<Rightarrow>'a" ("\<^bserif>_\<^eserif>")
-
-term "a\<^bsub>longsub\<^esub>"   term "b\<^bsup>longsuper\<^esup>"
-
-term "\<^bbold>Bold text\<^ebold>"  term "\<^bitalic>Italic text \<alpha> 
\<beta>\<^eitalic>"  
-term "\<^bsans>Sans \<gamma>\<^esans>"     term "\<^bscript>Script 
text\<^escript>"
-term "\<^bfrakt>Frakt stuff\<^efrakt>"  term "\<^bserif>Roman stuff\<^eserif>"
-   
-lemma "\<lbrakk> \<^bbold>(Bold text)\<^ebold>; Q \<rbrakk> \<Longrightarrow> 
Q"
-by auto
-
-(* Tokens controlling layout and fonts: next character.
-   These are tokens that affect the following character/identifier only.
-   Similar to previous case.
-
-   See Tokens -> Format Char -> ...
-*)
-
-consts shortsub :: "['a,'a]\<Rightarrow>'a" ("_\<^sub>_")
-consts shortsup :: "['a,'a]\<Rightarrow>'a" ("_\<^sup>_")
-
-consts charloc    :: "['a,'a]\<Rightarrow>'a" ("\<^loc>_")
-consts charbold   :: "['a,'a]\<Rightarrow>'a" ("\<^bold>_")
-consts charitalic :: "['a,'a]\<Rightarrow>'a" ("\<^italic>_")
-
-term "a\<^sub>b"
-term "a\<^sup>b"
-term "\<^loc>a"
-term "\<^bold>b"
-term "\<^italic>b"
-
-(* Further examples *)
-
-term "a\<^isub>\<gamma>\<delta>"     (* subscripted gamma  *)
-term "a\<^isub>def"  (* no subscript on ef *)
-
-term "a\<^isub>x\<^isub>y"      (* x and y subscripted individually *)
-term "a\<^isub>xabc\<^isub>y"   (* x and y should be subscripted, but not ab *)
-
-(* 
-   Variants on token names: different token names,
-   same appearance.   Simulated overloading, \<^bitalic>much\<^eitalic> 
simpler to do
-   this in the UI than mess with type classes, etc,
-   in the logical framework!
-
-   Demonstration: let's take back \<And> from the meta-level.
-
-   NB: the token scheme mechanism here is a PG convenience,
-   in other frontends you may have to define \ < AndX> to
-   appear in the same way as \ < And> individually.
-   Similarly for LaTeX output.
-
-   Use C-c C-t C-z to toggle the display of tokens.
-*)
-
-consts 
-   andprops :: "bool set \<Rightarrow> bool"      
-   andpreds :: "('a \<Rightarrow> bool) set \<Rightarrow> bool"   
-
-notation (xsymbols)
-   andprops ("\<And1>") and   (* token <And1>, hover to see this *)
-   andpreds ("\<And2>")       (* token <And2>, hover to see this *)
-
-term "\<And1> {True, False}"             
-term "\<And2> {\<lambda> x. True, \<lambda> y. False}"
-
-(* Note: of course, copy and paste using Unicode to another
-   application (Tokens \<rightarrow> Copy As Unicode) and then re-reading in
-   Isabelle using another interface will probably produce the wrong
-   result.  But copy-pasting within Proof General Emacs is fine since
-   the underlying token text is copied, not the presentation.
-   What happens is that the text properties are "sticky" and
-   copied as well, so you see them even in non-Unicode Tokens buffers.
-   But if you save and revisit, you'll see the real text.
-*)
-
-
-(* More esoteric non-standard stuff: unlikely in other interfaces *)
-
-consts 
-  shout :: "'a \<Rightarrow> 'a"
-  whisper :: "'a \<Rightarrow> 'a"
-  underline :: "'a \<Rightarrow> 'a"
-  overline :: "'a \<Rightarrow> 'a"
-
-notation (xsymbols)
-  shout ("\<^bbig>_\<^ebig>") and
-  whisper ("\<^bsmall>_\<^esmall>") and
-  underline ("\<^bunderline>_\<^eunderline>") and
-  overline ("\<^boverline>_\<^eoverline>")
-
-term "\<^bbig>large text \<alpha> \<beta> \<Sigma> \<integral>\<^ebig>"
-
-term "\<^bsmall>smaller text ((\<alpha> \<and> \<beta>) \<longrightarrow> 
\<gamma>) \<^esmall>"
-
-term "\<^bunderline>underlined\<^eunderline>"
-
-term "\<^boverline>overlined\<^eoverline>"
-
-
-(* Bold and italic combinations for regions *)
-term "\<^bbold>Bold and (\<^bitalic>italic\<^eitalic>)\<^ebold>"
-term "\<^bitalic>Italic and \<^bbold>bold\<^ebold>\<^eitalic>"
-
-(* Font and weight/shape changes for regions *)
-term "\<^bbold>Bold and \<^bscript>script\<^escript>\<^ebold>"
-term "\<^bserif>Roman and \<^bitalic>italic\<^eitalic> and 
\<^bbold>bold\<^ebold> \<^eserif>"
-term "\<^bfrakt>Frakt and \<^bitalic>italic\<^eitalic> and 
\<^bbold>bold\<^ebold> \<^efrakt>"
-
-(* Spanning identifier supers/subs: not included in standard Isabelle 
lexer/latex *)
-
-(* term "a\<^bisup>bcd\<^eisup>"
-   term "a\<^bisub>bcd\<^eisub>"  *)
-
-end
diff --git a/etc/isar/Trac189.thy b/etc/isar/Trac189.thy
deleted file mode 100644
index 43c4bdd..0000000
--- a/etc/isar/Trac189.thy
+++ /dev/null
@@ -1,8 +0,0 @@
-theory Trac189 imports Main begin
-
-
-(* Undoing of a diagnostic: exercises proof-no-command *)
-
-lemma "True"
-  apply (rule TrueI)
-  thm TrueI
diff --git a/etc/isar/Trac280-subrev.thy b/etc/isar/Trac280-subrev.thy
deleted file mode 100644
index ff392ec..0000000
--- a/etc/isar/Trac280-subrev.thy
+++ /dev/null
@@ -1,14 +0,0 @@
-theory "Trac280-subrev" imports Main begin
-
-lemma 
- assumes asm: "P\<^isub>i \<and> Q\<^isub>i"
- shows "Q\<^isub>i \<and> P\<^isub>i"
-proof - 
-  from asm obtain "P\<^isub>i" and "Q\<^isub>i"
-    by blast
-  then show "Q\<^isub>i \<and> P\<^isub>i"
-    by simp
-qed
-
-end
-
diff --git a/etc/isar/Unicode.thy b/etc/isar/Unicode.thy
deleted file mode 100644
index 95140e6..0000000
--- a/etc/isar/Unicode.thy
+++ /dev/null
@@ -1,73 +0,0 @@
-(* -*- coding: utf-8 -*- *)
-
-(*
-  Example theory involving unicode characters (utf-8 encoding) -- both
-  formal and informal ones.
-*)
-
-theory Unicode
-imports Main
-begin
-
-text {* The Hebrew Alef-Bet (א-ב). *}
-
-datatype alef_bet =
-    Alef    ("א")
-  | Bet     ("ב")
-  | Gimel   ("ג")
-  | Dalet   ("ד")
-  | He      ("ה")
-  | Vav     ("ו")
-  | Zayin   ("ז")
-  | Het     ("ח")
-  | Tet     ("ט")
-  | Yod     ("י")
-  | Kaf     ("כ")
-  | Lamed   ("ל")
-  | Mem     ("מ")
-  | Nun     ("נ")
-  | Samekh  ("ס")
-  | Ayin    ("ע")
-  | Pe      ("פ")
-  | Tsadi   ("צ")
-  | Qof     ("ק")
-  | Resh    ("ר")
-  | Shin    ("ש")
-  | Tav     ("ת")
-
-thm alef_bet.induct
-
-
-text {* Interpreting Hebrew letters as numbers. *}
-
-primrec mispar :: "alef_bet => nat"
-where
-  "mispar א = 1"
-| "mispar ב = 2"
-| "mispar ג = 3"
-| "mispar ד = 4"
-| "mispar ה = 5"
-| "mispar ו = 6"
-| "mispar ז = 7"
-| "mispar ח = 8"
-| "mispar ט = 9"
-| "mispar י = 10"
-| "mispar כ = 20"
-| "mispar ל = 30"
-| "mispar מ = 40"
-| "mispar נ = 50"
-| "mispar ס = 60"
-| "mispar ע = 70"
-| "mispar פ = 80"
-| "mispar צ = 90"
-| "mispar ק = 100"
-| "mispar ר = 200"
-| "mispar ש = 300"
-| "mispar ת = 400"
-
-thm mispar.simps
-
-lemma "mispar ק + mispar ל + mispar ה = 135"
-  by simp
-
-end
diff --git a/etc/isar/XEmacsSyntacticContextProb.thy 
b/etc/isar/XEmacsSyntacticContextProb.thy
deleted file mode 100644
index ef295a9..0000000
--- a/etc/isar/XEmacsSyntacticContextProb.thy
+++ /dev/null
@@ -1,20 +0,0 @@
-(* Demonstrates a bug with XEmacs 21.1: after procesing, between
-   two terms, buffer-syntactic-context returns "string".  
-   But _before_ processing, it correctly returns "nil".
-   Even when regions are removed, still get "string" returned
-   after processing started. 
-
-   Bug doesn't occur in GNU Emacs (using imp of buffer-syntactic context
-   provided in proof-compat.el), nor in XEmacs 21.4
-
-   Workaround added Fri Aug 10 13:55:28 BST 2001
-*)
-
-theory XEmacsSyntacticContextProb imports Main begin
-
-term "
-(f x)" 
-
-term "(f x)"
-
-end
diff --git a/etc/isar/XSymbolTests.thy b/etc/isar/XSymbolTests.thy
deleted file mode 100644
index 0425fc3..0000000
--- a/etc/isar/XSymbolTests.thy
+++ /dev/null
@@ -1,146 +0,0 @@
-(* Some checks for Unicode Tokens behaviour.  
-
-   This file should be displayed sensibly, and also the
-   display back from Isabelle ought to match.
-
-   $Id$
-*)
-
-theory XSymbolTests imports Main begin
-
-(* Fri Dec 14 13:20:38 GMT 2007.
-   http://proofgeneral.inf.ed.ac.uk/trac/ticket/161
-   Sub/superscript output not handled properly when enabled using
-   menu.   Fix: add fontification to proof-x-symbol-decode-region,
-   fix in proof-x-symbol.el 8.10.
-*)
-
-(* response output *)
-thm wf_trancl
-
-(* goals output *)
-lemma wf_trancl2 : "wf ?r \<Longrightarrow> wf (?r\<^sup>+)"
-by auto
-
-(* Thu Sep 25 16:26:47 BST 2003.  
-   Problem reported by Norbert Schirmer <norbert.schirmer@web.de>
-   Currently, superscript output highlighting seems broken anyway? *)
-
-consts "\<alpha1>":: "'a => 'a" ("\<alpha1>\<^sup>_")
-consts "\<alpha2>":: "'a => 'a => 'a" ("\<alpha2>\<^sup>_")
-consts "\<alpha3>":: "'a => 'a => 'a => 'a" ("_\<^sup>_\<^sup>_")
-
-consts k:: 'a
-
-term "\<alpha>"
-term "a\<^sup>b" (* b should be a blue variable *)
-term "\<forall>x. a\<^sup>x" (* x should be a green bound variable *)
-term "a\<^sup>k" (* k should be a black constant *)
-term "\<alpha>\<^isub>2" (* alpha should be blue variable with subscripted 
blue 2 *)
-term "\<alpha>\<^isup>x"  (* identifier *)
-
-consts sausage:: "'a => 'a => 'a" ("_\<^bsup>_\<^esup>" [1000,1000] 1000)
-
-term "k\<^bsup>long\<^esup>"  (* k black, long is blue *)
-
-
-(* 28.8.02: bug in pg-remove-specials broke this; now fixed *)
-
-lemma "A ==> A" .  -- OK
-
-consts A :: bool
-lemma "A ==> A" .  -- "xsymbols should be displayed!"
-
-
-(* Test electric token input: writing a token 
-like \ <alpha>  (without space, \<alpha>) should immediately 
-replace it. *)
-
-constdefs
- P1 :: bool   ("P\<^sub>1")    (* subscript *)
- "P\<^sub>1 == True"
- P2 :: bool   ("P\<^sup>2")    (* superscript *)
- "P\<^sup>2 == True"
-
- "P\<^loc>x" (* location escape *)
-
-(* Buglet here: if we enable x-sym during scripting,
-   goals/response flks are not updated, so xsyms
-   do not appear in output windows. Stoping/starting
-   prover fixes.
-*)
-
-thm P1_def P2_def      (* check display from Isabelle *)
-
-constdefs (* long sub/sups, new 29/12/03, added by Gerwin Klein *)
-
-\<^bitalic>test italics\<^eitalic>
-\<^bserif>serif\<^eserif>
-\<^bfrakt>fraktur\<^efrakt>
-\<^bbold>test\<^ebold>
-
-\<^bsub> asda low\<^esub>
- Plow :: bool ("P\<^bsub>low\<^esub>")         (* spanning subscript *)
-  "P\<^bsub>low\<^esub> \<equiv> True"
- Phigh :: bool ("P\<^bsup>high\<^esup>")               (* spanning superscript 
*)
-  "P\<^bsup>high\<^esup> \<equiv> True"
-
-thm Plow_def Phigh_def (* check display from Isabelle *)
-
-theorem "P\<^sub>1 \<and> P\<^sup>2";  (* check fonts in goals window *)
-by (simp add: P1_def P2_def)  (* .. and response window *)
-
-consts
- "P\<^sup>\<alpha>" :: bool   (* superscript of a token char *)
- "\<^bold>P"  :: bool   (* bold character *)
- "\<^italic>i"  :: int 
-
-\<^bitalic>italic?\<^eitalic>
-
-(* test: using a symbol as a subscript *)
-(* 9.3.03: this causes nasty prob with pre-command hook,
-   x-symbol-invisitiblity-spec type error, at least
-   during editing. *)
-consts
- intof :: "nat \<Rightarrow> int"  ("_\<^sub>\<int>" 50)
- mynat :: nat ("\<gamma>")
-\<one> \<two> \<C> \<J>      \<S> \<h> h \<AA> 
-
-\<^bscript>foo\<^escript>
-bar
-
-term "intof 3"
-
-constdefs
- myint :: int
- "myint == \<gamma>\<^sub>\<int>"
- 
-
-(* 
- Another X-Symbol oddity: sometimes the _first_ buffer to
- be visited displays _some_ characters as \2xx, e.g.
- for \<circ>.  But subsequent buffers to be visited work
- fine.  Problem is stable for turning x-symbol on/off.
- Revisting the first buffer cures the problem.
- Update: May be inherent problem with non-Mule version of
- X-Symbol (CW suggests)
-*)
-
-consts
-  iter :: "('a => 'a) => nat => ('a => 'a)"
-primrec
-  "iter f 0 = id"
-  "iter f (Suc n) = f \<circ> (iter f n)"
-
-
-end
-
-\<A>
-\<AA> \<ABC> \<ss> \<pounds> \<yen>
-
-SYMBOL Ideas:
-
- \<0x888>  for unicode character
- \<alpha:foo> for variants, same display
-
- \<color:foo> for colour, no sems (dropped in translation)
\ No newline at end of file
diff --git a/etc/isar/bad1.thy b/etc/isar/bad1.thy
deleted file mode 100644
index a355389..0000000
--- a/etc/isar/bad1.thy
+++ /dev/null
@@ -1,3 +0,0 @@
-(*foo*)
-foo
-end
diff --git a/etc/isar/bad2.thy b/etc/isar/bad2.thy
deleted file mode 100644
index 7a12fdb..0000000
--- a/etc/isar/bad2.thy
+++ /dev/null
@@ -1 +0,0 @@
-theory bad2 imports unknown begin
diff --git a/etc/isar/multiple/A.thy b/etc/isar/multiple/A.thy
deleted file mode 100644
index aac334a..0000000
--- a/etc/isar/multiple/A.thy
+++ /dev/null
@@ -1,7 +0,0 @@
-theory A imports Pure 
-begin
-
-consts foo :: 'a
-consts bar :: 'a
-
-end
diff --git a/etc/isar/multiple/B.thy b/etc/isar/multiple/B.thy
deleted file mode 100644
index efebff8..0000000
--- a/etc/isar/multiple/B.thy
+++ /dev/null
@@ -1,4 +0,0 @@
-theory B imports Pure
-begin
-
-end
diff --git a/etc/isar/multiple/C.thy b/etc/isar/multiple/C.thy
deleted file mode 100644
index 22d8685..0000000
--- a/etc/isar/multiple/C.thy
+++ /dev/null
@@ -1,4 +0,0 @@
-theory C imports A B
-begin
-
-end
diff --git a/etc/isar/multiple/D.thy b/etc/isar/multiple/D.thy
deleted file mode 100644
index 3c78e54..0000000
--- a/etc/isar/multiple/D.thy
+++ /dev/null
@@ -1,4 +0,0 @@
-theory D imports Pure
-begin
-
-end
diff --git a/etc/isar/multiple/E.thy b/etc/isar/multiple/E.thy
deleted file mode 100644
index 02d6202..0000000
--- a/etc/isar/multiple/E.thy
+++ /dev/null
@@ -1,4 +0,0 @@
-theory E imports C D
-begin
-
-end
diff --git a/etc/isar/multiple/README b/etc/isar/multiple/README
deleted file mode 100644
index ad57b44..0000000
--- a/etc/isar/multiple/README
+++ /dev/null
@@ -1,3 +0,0 @@
-
-Test files for multiple file handling with Isabelle/Isar
-(see also isa/multiple/README).
diff --git a/etc/isar/nesting-too-deep-for-parser.txt 
b/etc/isar/nesting-too-deep-for-parser.txt
deleted file mode 100644
index 580c640..0000000
--- a/etc/isar/nesting-too-deep-for-parser.txt
+++ /dev/null
@@ -1,1622 +0,0 @@
-Here is an example of some text which generates the "nesting too deep
-for parser" error message in XEmacs.  [da]
-
-Paste into the response buffer and do
-
- (proof-fontify-region (point-min) (point-max))
-
-Backtrace is this:
-
-  parse-partial-sexp(1 72319 nil nil nil syntax-table)
-  font-lock-fontify-syntactically-region(1 72319 nil)
-  font-lock-default-fontify-region(1 72319 nil)
-  (let ((font-lock-keywords proof-font-lock-keywords)) (if (and 
proof-running-on-XEmacs ... ... ...) (progn ... ...)) (save-restriction 
(narrow-to-region start end) (run-hooks ...) (setq end ...)) 
(font-lock-default-fontify-region start end nil))
-  (progn (proof-font-lock-set-font-lock-vars) (unless proof-running-on-XEmacs 
(font-lock-set-defaults)) (let (...) (if ... ...) (save-restriction ... ... 
...) (font-lock-default-fontify-region start end nil)))
-  (if proof-output-fontify-enable (progn (proof-font-lock-set-font-lock-vars) 
(unless proof-running-on-XEmacs ...) (let ... ... ... ...)))
-  proof-fontify-region(1 72319)
-
-How deep is too deep?
-
-
-  (parse-partial-sexp 1 72319 10)
-  (parse-partial-sexp 1 72319 20)
-  (parse-partial-sexp 1 72319 80)
-  (parse-partial-sexp 1 72319 99)     -- gets to char 51927
-  (parse-partial-sexp 1 72319 100)    -- Gives error on XEmacs 21.4.15 
-                                    -- still on
-    Value: "21.5  (beta17) \"chayote\" (+CVS-20040622) XEmacs Lucid"
-
-  (parse-partial-sexp 1 72319 200)    -- reaches end of this text at
-                                        depth 130 in Emacs 21.3.1
-
-In fact Emacs 21.3.1 isn't bothered by a buffer containing 40,000 left-parens.
-Bug report at bottom [23.6.04].
-
------------------
-
-
-"$ISATOOL" document -c -o 'ps' '/tmp/isabelle-da4586/document' 2>&1
-This is TeXk, Version 3.14159 (Web2C 7.4.5)
- %&-line parsing enabled.
-LaTeX2e <2001/06/01>
-Babel <v3.7h> and hyphenation patterns for american, french, german, ngerman, n
-ohyphenation, loaded.
-
-(./root.tex (/usr/share/texmf/tex/latex/base/article.cls
-Document Class: article 2001/04/21 v1.4e Standard LaTeX document class
-(/usr/share/texmf/tex/latex/base/size10.clo)) (./isabelle.sty)
-(./isabellesym.sty) (/usr/share/texmf/tex/latex/base/inputenc.sty
-(/usr/share/texmf/tex/latex/base/latin1.def)) (./pdfsetup.sty)
-(/usr/local/texmf.da/tex/latex/comisc/url.sty)
-(/usr/share/texmf/tex/latex/base/latexsym.sty)
-No file root.aux.
-(./session.tex (./HeapSortProofVCG.tex
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 6--7
-[][]  \OT1/cmtt/m/sl/9 -- would be desirable to redesign CALLMP rule so that si
-de condition which[] 
-
-Overfull \hbox (42.44675pt too wide) in paragraph at lines 12--13
-[][]       \OT1/cmtt/m/sl/9 generates (variable number of) subgoals for each fu
-nction that is dominated
-(/usr/share/texmf/tex/latex/base/ulasy.fd)
-Overfull \hbox (23.5469pt too wide) in paragraph at lines 19--20
-[][]       \OT1/cmtt/m/sl/9 need to verify n+1, which leaves indeterminate numb
-er of side-condition
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 31--32
-[][]       \OT1/cmtt/m/sl/9 maybe a good idea to have a method for (each) primi
-tives, and then a
-
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 32--33
-[][]       \OT1/cmtt/m/sl/9 let which does the composition on-the-fly  --- this
- avoids duplicating
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 35--36
-[][]        \OT1/cmtt/m/sl/9 -- define ML values bound to tactics appearing in 
-bodies of methods[] 
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 47--48
-[][]\OT1/cmtt/m/sl/9 text {*This corresponds to the following specifications, f
-ormalised from the
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 48--49
-[][]       \OT1/cmtt/m/sl/9 method bodies: the contexts (in second parameter of
- @{text DAss}) are
-[1]
-Overfull \hbox (5.55548pt too wide) in paragraph at lines 52--53
-[][]  \OT1/cmtt/m/sl/9 (if M = Insert then (DAss {t_} 1 (emptyfinmap(t_ $\OMS/c
-msy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) (TreeET
-
-Overfull \hbox (29.18028pt too wide) in paragraph at lines 53--54
-[][]  \OT1/cmtt/m/sl/9 if M = Removesome then (DAss {t_} 0 (emptyfinmap(t_ $\OM
-S/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) (ResultET
-
-Overfull \hbox (24.45532pt too wide) in paragraph at lines 54--55
-[][]  \OT1/cmtt/m/sl/9 if M = Removetop then (DAss {t_} 0 (emptyfinmap(t_ $\OMS
-/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) (ResultET
-
-Overfull \hbox (15.0054pt too wide) in paragraph at lines 55--56
-[][]  \OT1/cmtt/m/sl/9 if M = Make_heap then (DAss {l_} 0 (emptyfinmap(l_ $\OMS
-/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (ListET 0))) (TreeET
-
-Overfull \hbox (5.55548pt too wide) in paragraph at lines 56--57
-[][]  \OT1/cmtt/m/sl/9 if M = Extract then (DAss {h_} 0 (emptyfinmap(h_ $\OMS/c
-msy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) (ListET
-
-Overfull \hbox (19.73036pt too wide) in paragraph at lines 57--58
-[][]  \OT1/cmtt/m/sl/9 if M = Siftdown then (DAss {t1_, t2_} 1 (emptyfinmap(t1_
- $\OMS/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))(t2_
-
-Overfull \hbox (5.55548pt too wide) in paragraph at lines 58--59
-[][]  \OT1/cmtt/m/sl/9 if M = Sort then (DAss {l_} 0 (emptyfinmap(l_ $\OMS/cmsy
-/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (ListET 0))) (ListET 0)
-
-Overfull \hbox (20.53447pt too wide) in paragraph at lines 65--66
-[][]\OT1/cmtt/m/sl/9 "sMST == ($\OML/cmm/m/it/9 ^^U$ \OT1/cmtt/m/sl/9 C M args 
-E h hh v p. SPEC M (newframe_env Nullref (fst (methtable
-
-Overfull \hbox (70.79651pt too wide) in paragraph at lines 70--71
-[][]  \OT1/cmtt/m/sl/9 Meth_Insert Fun_fInsert Fun_fzeroInsert Fun_foneInsert F
-un_ftwoInsert Fun_fthreeInsert[] 
-
-Overfull \hbox (61.34659pt too wide) in paragraph at lines 74--75
-[][]  \OT1/cmtt/m/sl/9 Meth_Removetop Fun_fRemovetop Fun_fzeroRemovetop Fun_fon
-eRemovetop Fun_ftwoRemovetop
-
-Overfull \hbox (37.72179pt too wide) in paragraph at lines 75--76
-[][]  \OT1/cmtt/m/sl/9 Meth_Siftdown Fun_fSiftdown Fun_fzeroSiftdown Fun_foneSi
-ftdown Fun_ftwoSiftdown
-
-Overfull \hbox (89.69635pt too wide) in paragraph at lines 76--77
-[][]  \OT1/cmtt/m/sl/9 Fun_ffourSiftdown Fun_ffiveSiftdown Fun_fsixSiftdown Fun
-_fsevenSiftdown Fun_feightSiftdown[] 
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 77--78
-[][]  \OT1/cmtt/m/sl/9 Fun_fnineSiftdown Fun_ftenSiftdown Fun_felevenSiftdown F
-un_ftwelveSiftdown
-
-Overfull \hbox (70.79651pt too wide) in paragraph at lines 78--79
-[][]  \OT1/cmtt/m/sl/9 Fun_ffourteenSiftdown Fun_ffifteenSiftdown Fun_fsixteenS
-iftdown Fun_fseventeenSiftdown
-
-Overfull \hbox (38.27744pt too wide) in paragraph at lines 81--82
-[][]\OT1/cmtt/m/sl/9 lemma LL2: "$[]$(E, h, U,C,R,m):CS; U = V$[]$ $[][]\OMS/cm
-sy/m/n/9 )$ \OT1/cmtt/m/sl/9 (E, h, V,C,R,m):CS" (*<*)by simp(*>*)[] 
-
-Overfull \hbox (12.18752pt too wide) in paragraph at lines 88--89
-[][]  $[]$ \OT1/cmtt/m/sl/9 {y,z} , 1 , (emptyfinmap(y $\OMS/cmsy/m/n/9 7!$$[][
-]$\OT1/cmtt/m/sl/9 (TreeET 0))(z $\OMS/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (Tr
-eeET 0))) $\OMS/cmsy/m/n/9 ^^]$  \OT1/cmtt/m/sl/9 (TreeET
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 90--91
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-[2]
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 92--93
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 96--97
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (7.43889pt too wide) in paragraph at lines 103--104
-[][] $[][]\OMS/cmsy/m/n/9 )$ $[]$ \OT1/cmtt/m/sl/9 {x}, 0 , (emptyfinmap(x $\OM
-S/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (ListET 0)))  $\OMS/cmsy/m/n/9 ^^]$ \OT1
-/cmtt/m/sl/9 (TreeET 0) , 0 $[]$ E h hh
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 105--106
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 107--108
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 111--112
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 120--121
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 122--123
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 126--127
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (2.71393pt too wide) in paragraph at lines 133--134
-[][]$[][]\OMS/cmsy/m/n/9 )$ $[]$ \OT1/cmtt/m/sl/9 {x}, 0 , (emptyfinmap(x $\OMS
-/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0)))  $\OMS/cmsy/m/n/9 ^^]$ \OT1/
-cmtt/m/sl/9 (ListET 0) , 0 $[]$ E h hh
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 135--136
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 137--138
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-[3]
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 141--142
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (3.75562pt too wide) in paragraph at lines 148--149
-[][]$[][]\OMS/cmsy/m/n/9 )$ $[]$ \OT1/cmtt/m/sl/9 {y} , 1 , (emptyfinmap(y $\OM
-S/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) $\OMS/cmsy/m/n/9 ^^]$  \OT1
-/cmtt/m/sl/9 (TreeET 0), 0 $[]$ E h hh
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 150--151
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 152--153
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 156--157
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (2.55698pt too wide) in paragraph at lines 163--164
-[][]$[][]\OMS/cmsy/m/n/9 )$ $[]$ \OT1/cmtt/m/sl/9 {x} , 0 , (emptyfinmap(x $\OM
-S/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) $\OMS/cmsy/m/n/9 ^^]$  \OT1
-/cmtt/m/sl/9 (ResultET 0 (TreeET 0)
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 165--166
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 167--168
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 171--172
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (2.55698pt too wide) in paragraph at lines 178--179
-[][]$[][]\OMS/cmsy/m/n/9 )$ $[]$ \OT1/cmtt/m/sl/9 {x} , 0 , (emptyfinmap(x $\OM
-S/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) $\OMS/cmsy/m/n/9 ^^]$  \OT1
-/cmtt/m/sl/9 (ResultET 0 (TreeET 0)
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 180--181
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 182--183
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-[4]
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 186--187
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (2.5181pt too wide) in paragraph at lines 208--209
-[][]\OT1/cmtt/m/sl/9 lemma vcg_rvar: "GETr C x = Some T $[][]\OMS/cmsy/m/n/9 )$
- \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$  \OT1/cmtt/m/sl/9 RVar x : $[]$ {x} , n
- , C $\OMS/cmsy/m/n/9 ^^]$  \OT1/cmtt/m/sl/9 T
-
-Overfull \hbox (12.12497pt too wide) in paragraph at lines 218--219
-[][]                 $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 
-^^C$  \OT1/cmtt/m/sl/9 RPrimop f x y : $[]$ {x, y} , n , C $\OMS/cmsy/m/n/9 ^^]
-$ \OT1/cmtt/m/sl/9 IntET , n $[]$"
-
-Overfull \hbox (8.07211pt too wide) in paragraph at lines 230--231
-[][]     \OT1/cmtt/m/sl/9 "$[]$GETr C y = Some (TreeET k); GETr C z = Some (Tre
-eET k); y$\OMS/cmsy/m/n/9 6\OT1/cmr/m/n/9 =$\OT1/cmtt/m/sl/9 z; n=(Suc
-
-Overfull \hbox (17.61093pt too wide) in paragraph at lines 231--232
-[][]     $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$ \OT1/cm
-tt/m/sl/9 (DIAM$[]$Make_IIDD ([VALarg (IVal 3), INarg v, RNarg y, RNarg z]))
-[5]
-Overfull \hbox (1.16122pt too wide) in paragraph at lines 239--240
-[][]  \OT1/cmtt/m/sl/9 "$\OMS/cmsy/m/n/9 :$ \OT1/cmtt/m/sl/9 isMergePoint f $\O
-MS/cmsy/m/n/9 ^$ \OT1/cmtt/m/sl/9 (dominates f, G, f, $[]$U, n, C $\OMS/cmsy/m/
-n/9 ^^]$ \OT1/cmtt/m/sl/9 T, m$[]$) $\OMS/cmsy/m/n/9 2$ \OT1/cmtt/m/sl/9 DOM_Ca
-ll
-
-Overfull \hbox (12.61101pt too wide) in paragraph at lines 241--242
-[][]\OT1/cmtt/m/sl/9 (CALL f, $[]$U, n , restr C (ParList2RnameList (fst (funta
-ble f))) $\OMS/cmsy/m/n/9 ^^]$ \OT1/cmtt/m/sl/9 T , m $[]$)
-
-Overfull \hbox (1.16122pt too wide) in paragraph at lines 245--246
-[][]  \OT1/cmtt/m/sl/9 "$\OMS/cmsy/m/n/9 :$ \OT1/cmtt/m/sl/9 isMergePoint f $\O
-MS/cmsy/m/n/9 ^$ \OT1/cmtt/m/sl/9 (dominates f, G, f, $[]$U, n, C $\OMS/cmsy/m/
-n/9 ^^]$ \OT1/cmtt/m/sl/9 T, m$[]$) $\OMS/cmsy/m/n/9 2$ \OT1/cmtt/m/sl/9 DOM_Ca
-ll
-
-Overfull \hbox (12.61101pt too wide) in paragraph at lines 247--248
-[][]\OT1/cmtt/m/sl/9 (CALL f, $[]$U, n , restr C (ParList2RnameList (fst (funta
-ble f))) $\OMS/cmsy/m/n/9 ^^]$ \OT1/cmtt/m/sl/9 T , m $[]$)
-
-Overfull \hbox (8.40714pt too wide) in paragraph at lines 256--257
-[][]  \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$  \OT1/cmtt/m/sl/9 e : $[]$ U1 , n 
-, C $\OMS/cmsy/m/n/9 ^^]$  \OT1/cmtt/m/sl/9 T1 , m $[]$ ; G $\U/lasy/m/n/9 ^^C$
-  \OT1/cmtt/m/sl/9 ee : $[]$ U2 , m , C(x$\OMS/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/
-sl/9 T1) $\OMS/cmsy/m/n/9 ^^]$
-
-Overfull \hbox (4.4306pt too wide) in paragraph at lines 257--258
-[][]  \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$  \OT1/cmtt/m/sl/9 (LET rf x =e IN 
-ee END) : $[]$ U1 $\OMS/cmsy/m/n/9 [$ \OT1/cmtt/m/sl/9 (U2 - {x}) , n , C $\OMS
-/cmsy/m/n/9 ^^]$  \OT1/cmtt/m/sl/9 T2 , k $[]$"[] 
-
-Overfull \hbox (5.1584pt too wide) in paragraph at lines 270--271
-[][]  $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$ \OT1/cmtt/
-m/sl/9 (LET z = RPrimop f x y IN e END) : $[]${x, y} $\OMS/cmsy/m/n/9 [$ \OT1/c
-mtt/m/sl/9 U, n, C $\OMS/cmsy/m/n/9 ^^]$ \OT1/cmtt/m/sl/9 T, m$[]$"
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 273--274
-[][]\OT1/cmtt/m/sl/9 (* Note: side conditions in match rules cannot be solved u
-ntil later because
-[6]
-Overfull \hbox (28.63316pt too wide) in paragraph at lines 292--293
-[][]$[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$  \OT1/cmtt/m
-/sl/9 (LET cont =t$[]$V0; rf left =t$\OMS/cmsy/m/n/9 }$\OT1/cmtt/m/sl/9 R1; rf 
-right =t$\OMS/cmsy/m/n/9 }$\OT1/cmtt/m/sl/9 R2;  _ =DIAM$[]$Free([RNarg
-
-Overfull \hbox (8.16101pt too wide) in paragraph at lines 300--301
-[][] $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$ \OT1/cmtt/m
-/sl/9 (LET h = GetFi l V0; rf t = GetFr l R1; _ = DIAM$[]$Free ([RNarg l])
-
-Overfull \hbox (8.16101pt too wide) in paragraph at lines 308--309
-[][] $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$ \OT1/cmtt/m
-/sl/9 (LET h = GetFi l V0; rf t = GetFr l R1; _ = DIAM$[]$Free ([RNarg l])
-
-Overfull \hbox (1.11948pt too wide) in paragraph at lines 315--316
-[][]     $\OMS/cmsy/m/n/9 8 $ \OT1/cmtt/m/sl/9 E h hh v p. sMST c M L E h hh v 
-p $[][]\OMS/cmsy/m/n/9 !$ $[]$\OT1/cmtt/m/sl/9 U, n, C $\OMS/cmsy/m/n/9 ^^]$ \O
-T1/cmtt/m/sl/9 T1, m$[]$ E h hh v
-
-Overfull \hbox (4.43343pt too wide) in paragraph at lines 319--320
-[][]   $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$  \OT1/cmt
-t/m/sl/9 (LET rf x = c$[]$M(L) IN e END) : $[]$U $\OMS/cmsy/m/n/9 [$ \OT1/cmtt/
-m/sl/9 (V-{x}), nk, D $\OMS/cmsy/m/n/9 ^^]$ \OT1/cmtt/m/sl/9 T, l$[]$"
-
-Overfull \hbox (3.34715pt too wide) in paragraph at lines 323--324
-[][]     \OT1/cmtt/m/sl/9 "$[]$GETr C y = Some (TreeET k);GETr C z = Some (Tree
-ET k); y$\OMS/cmsy/m/n/9 6\OT1/cmr/m/n/9 =$\OT1/cmtt/m/sl/9 z; n=(Suc
-[7]
-Overfull \hbox (3.43605pt too wide) in paragraph at lines 326--327
-[][]     $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$ \OT1/cm
-tt/m/sl/9 (LET rf x = DIAM$[]$Make_IIDD ([VALarg (IVal 3), INarg v, RNarg
-
-Overfull \hbox (62.34396pt too wide) in paragraph at lines 326--327
-\OT1/cmtt/m/sl/9 y, RNarg z]) IN e END): $[]$({y,z} $\OMS/cmsy/m/n/9 [$ \OT1/cm
-tt/m/sl/9 (U-{x})), n, C $\OMS/cmsy/m/n/9 ^^]$ \OT1/cmtt/m/sl/9 T, l$[]$" by (e
-rule DA_LetrMakeTree,
-
-Overfull \hbox (19.73325pt too wide) in paragraph at lines 335--336
-[][]\OT1/cmtt/m/sl/9 lemma vcg_domcallcons: "$[]$(t,{(Call h, $[]$U, n, C $\OMS
-/cmsy/m/n/9 ^^]$ \OT1/cmtt/m/sl/9 T, m$[]$)} $\OMS/cmsy/m/n/9 [$ \OT1/cmtt/m/sl
-/9 G,f,P):DOM_Call;[] 
-
-Overfull \hbox (42.44675pt too wide) in paragraph at lines 347--348
-[][]       \OT1/cmtt/m/sl/9 context which contains an one entry for each syntac
-tic method invocation.*}[] 
-
-Overfull \hbox (3.92209pt too wide) in paragraph at lines 350--351
-[][]  \OT1/cmtt/m/sl/9 {(HS$[]$Insert([INarg x_,RNarg r2_]), sMST HS Insert [IN
-arg x_,RNarg r2_]),[] 
-
-Overfull \hbox (8.64705pt too wide) in paragraph at lines 351--352
-[][]  \OT1/cmtt/m/sl/9 (HS$[]$Insert([INarg v4_,RNarg r2_]), sMST HS Insert [IN
-arg v4_,RNarg r2_]),[] 
-
-Overfull \hbox (3.92209pt too wide) in paragraph at lines 358--359
-[][]  \OT1/cmtt/m/sl/9 (HS$[]$Siftdown([INarg v2_, RNarg r3_, RNarg r1_]), sMST
- HS Siftdown [INarg
-
-Overfull \hbox (18.09697pt too wide) in paragraph at lines 359--360
-[][]  \OT1/cmtt/m/sl/9 (HS$[]$Siftdown([INarg w_, RNarg r5_, RNarg r4_]), sMST 
-HS Siftdown [INarg w_,
-
-Overfull \hbox (18.09697pt too wide) in paragraph at lines 360--361
-[][]  \OT1/cmtt/m/sl/9 (HS$[]$Siftdown([INarg w_, RNarg r8_, RNarg r7_]), sMST 
-HS Siftdown [INarg w_,
-[8]
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 380--381
-[][]    \OT1/cmtt/m/sl/9 CHANGED (simp_tac ((Simplifier.get_local_simpset ctxt)
- addsimps thms) i)[] 
-
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 382--383
-[][]    \OT1/cmtt/m/sl/9 CHANGED (asm_simp_tac ((Simplifier.get_local_simpset c
-txt) addsimps thms)
-[9] [10]
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 510--511
-[][]\OT1/cmtt/m/sl/9 (*            apply method_Let prefer 2 apply (simp add: H
-eapSortContext_def)[] 
-
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 511--512
-[][]                             \OT1/cmtt/m/sl/9 prefer 2 apply (clarsimp, eru
-le Siftdown_Invoke,
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 518--519
-[][]  \OT1/cmtt/m/sl/9 (* for solving premise of vcg_call -- either unfold Dom 
-def, or lookup *)
-[11]
-Overfull \hbox (28.27187pt too wide) in paragraph at lines 557--558
-[][]   \OT1/cmtt/m/sl/9 fun main_tac ctxt (alldefs as (flowdefs,dom_defs,gamma_
-def)) i state = state
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 562--563
-[][]   \OT1/cmtt/m/sl/9 and main_tac_aux ctxt (alldefs as (flowdefs,dom_defs,ga
-mma_def)) i state
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 566--567
-[][]            \OT1/cmtt/m/sl/9 let_tac ctxt (flowdefs @ gamma_def)  (main_tac
-_aux ctxt alldefs)
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 575--576
-[][]\OT1/cmtt/m/sl/9 (* Testing methods for invoking parts of the tactic above 
-[for debug only]
-[12]
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 585--586
-[][]\OT1/cmtt/m/sl/9 method_setup method_Let = {* Method.thms_ctxt_args (fn thm
-s => fn ctxt => [] 
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 589--590
-[][]\OT1/cmtt/m/sl/9 (* apply (rule vcg_call) apply (simp add: dominates_def is
-MergePoint_def) *)[] 
-
-Overfull \hbox (42.44675pt too wide) in paragraph at lines 594--595
-[][]\OT1/cmtt/m/sl/9 (* apply (simp?, (rule DA_NullResult, simp) | rule DA_Null
-Tree | rule DA_NullList)
-
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 603--604
-[][]\OT1/cmtt/m/sl/9 (* FIXME: to combine method_Call with method_Dom or mergep
-oint stuff, we need
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 606--607
-[][]\OT1/cmtt/m/sl/9 (* apply ((rule vcg_domcallcons) | (rule vcg_domcallnil))+
- apply simp apply
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 608--609
-[][]  \OT1/cmtt/m/sl/9 fn ctxt => Method.METHOD (fn facts => dom_tac ctxt thms 
-stop stop 1)) *}[] 
-
-Overfull \hbox (37.72179pt too wide) in paragraph at lines 624--625
-[][]         \OT1/cmtt/m/sl/9 two_subgoal_tacs i THEN vdm_tac (i+1) THEN vdm_ta
-c i,  (* stack: reverse
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 630--631
-[][]\OT1/cmtt/m/sl/9 (* apply ((rule vcg_domcallcons) | (rule vcg_domcallnil))+
- apply simp apply
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 631--632
-[][]\OT1/cmtt/m/sl/9 method_setup method_Weak = {* Method.thms_ctxt_args (fn th
-ms => fn ctxt =>
-[13]
-Overfull \hbox (37.72179pt too wide) in paragraph at lines 636--637
-[][]\OT1/cmtt/m/sl/9 (*methods call and dom are applied together, using CallDom
-: proofs takes 55secs*)[] 
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 642--643
-[][]\OT1/cmtt/m/sl/9 (* apply (method_main dominates_def isMergePoint_def MFS_d
-efs SPEC_def) *)[] 
-
-Overfull \hbox (42.44675pt too wide) in paragraph at lines 657--658
-[][]\OT1/cmtt/m/sl/9 (* Method main: writing bits of ML code to parse in Isar i
-s a pain, so we hardwire[] 
-
-Overfull \hbox (28.27187pt too wide) in paragraph at lines 666--667
-[][]  \OT1/cmtt/m/sl/9 Method.METHOD (fn facts => main_tac ctxt (thms "flow_def
-s", thms "doms_defs",
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 670--671
-[][]  \OT1/cmtt/m/sl/9 Method.METHOD (fn facts => main_tac_aux ctxt (thms "flow
-_defs", thms "doms_defs",
-
-Overfull \hbox (13.4388pt too wide) in paragraph at lines 674--675
-[][]\OT1/cmtt/m/sl/9 "$[]$G = HeapSortContext$[]$ $[][]\OMS/cmsy/m/n/9 )$ \OT1/
-cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$ \OT1/cmtt/m/sl/9 snd (methtable HS Siftdown) 
-: SPEC Siftdown"[] 
-[14] [15] [16]
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 805--806
-[][]                \OT1/cmtt/m/sl/9 apply (method_Dom doms_defs)  (* this the 
-place that cut is
-
-Overfull \hbox (37.72179pt too wide) in paragraph at lines 830--831
-[][]                                \OT1/cmtt/m/sl/9 (*Call*) (* first call to 
-the merge point ffour*)[] 
-
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 840--841
-[][]                                \OT1/cmtt/m/sl/9 (*Call*) (*This is the sec
-ond call to ffour*)[] 
-[17]
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 853--854
-[][]                    \OT1/cmtt/m/sl/9 (*1*) apply simp (*contraint came from
- TreematchD STAR.*)[] 
-
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 855--856
-[][]                     \OT1/cmtt/m/sl/9 (*this is like a top-level verificati
-on, i.e.starts with
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 878--879
-[][]                           \OT1/cmtt/m/sl/9 apply (method_Dom doms_defs)  (
-* this the place
-[18]
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 900--901
-[][]                                   \OT1/cmtt/m/sl/9 (*call This is the firs
-t call to feleven*)[] 
-
-Overfull \hbox (23.5469pt too wide) in paragraph at lines 910--911
-[][]                                   \OT1/cmtt/m/sl/9 (*call This is the seco
-nd call to feleven*)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 920--921
-[][]                                 \OT1/cmtt/m/sl/9 (*call This is the third 
-call to feleven*)[] 
-
-Overfull \hbox (32.99683pt too wide) in paragraph at lines 924--925
-[][]                             \OT1/cmtt/m/sl/9 (*this is like a top-level ve
-rification, i.e.starts
-
-Overfull \hbox (23.5469pt too wide) in paragraph at lines 938--939
-[][]                                           \OT1/cmtt/m/sl/9 (*of course, de
-fining the adaptaion
-
-Overfull \hbox (37.72179pt too wide) in paragraph at lines 939--940
-[][]                                           \OT1/cmtt/m/sl/9 apply (method_L
-et HeapSortContext_def)[] 
-
-Overfull \hbox (23.5469pt too wide) in paragraph at lines 943--944
-[][]                                           \OT1/cmtt/m/sl/9 (*1*) apply sim
-p (*letinvokeconst*)[] 
-[19]
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 951--952
-[][]                                     \OT1/cmtt/m/sl/9 apply (method_Let Hea
-pSortContext_def)[] 
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 957--958
-[][]                                           \OT1/cmtt/m/sl/9 (*2*) apply sim
-p (*letrmaketree*)[] 
-
-Overfull \hbox (51.89667pt too wide) in paragraph at lines 959--960
-[][]                             \OT1/cmtt/m/sl/9 (*2*) apply fast (* the weake
-ning from the verification
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 960--961
-[][]                   \OT1/cmtt/m/sl/9 (*2*) apply fast (* the weakening from 
-the verification
-
-Overfull \hbox (240.89508pt too wide) in paragraph at lines 967--968
-[][]\OT1/cmtt/m/sl/9 (* =======================================================
-==================================================================
-)) [20] (./root.aux) )
-(see the transcript file for additional information)
-Output written on root.dvi (20 pages, 43848 bytes).
-Transcript written on root.log.
-This is TeXk, Version 3.14159 (Web2C 7.4.5)
- %&-line parsing enabled.
-LaTeX2e <2001/06/01>
-Babel <v3.7h> and hyphenation patterns for american, french, german, ngerman, n
-ohyphenation, loaded.
-
-(./root.tex (/usr/share/texmf/tex/latex/base/article.cls
-Document Class: article 2001/04/21 v1.4e Standard LaTeX document class
-(/usr/share/texmf/tex/latex/base/size10.clo)) (./isabelle.sty)
-(./isabellesym.sty) (/usr/share/texmf/tex/latex/base/inputenc.sty
-(/usr/share/texmf/tex/latex/base/latin1.def)) (./pdfsetup.sty)
-(/usr/local/texmf.da/tex/latex/comisc/url.sty)
-(/usr/share/texmf/tex/latex/base/latexsym.sty) (./root.aux) (./session.tex
-(./HeapSortProofVCG.tex
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 6--7
-[][]  \OT1/cmtt/m/sl/9 -- would be desirable to redesign CALLMP rule so that si
-de condition which[] 
-
-Overfull \hbox (42.44675pt too wide) in paragraph at lines 12--13
-[][]       \OT1/cmtt/m/sl/9 generates (variable number of) subgoals for each fu
-nction that is dominated
-(/usr/share/texmf/tex/latex/base/ulasy.fd)
-Overfull \hbox (23.5469pt too wide) in paragraph at lines 19--20
-[][]       \OT1/cmtt/m/sl/9 need to verify n+1, which leaves indeterminate numb
-er of side-condition
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 31--32
-[][]       \OT1/cmtt/m/sl/9 maybe a good idea to have a method for (each) primi
-tives, and then a
-
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 32--33
-[][]       \OT1/cmtt/m/sl/9 let which does the composition on-the-fly  --- this
- avoids duplicating
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 35--36
-[][]        \OT1/cmtt/m/sl/9 -- define ML values bound to tactics appearing in 
-bodies of methods[] 
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 47--48
-[][]\OT1/cmtt/m/sl/9 text {*This corresponds to the following specifications, f
-ormalised from the
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 48--49
-[][]       \OT1/cmtt/m/sl/9 method bodies: the contexts (in second parameter of
- @{text DAss}) are
-[1]
-Overfull \hbox (5.55548pt too wide) in paragraph at lines 52--53
-[][]  \OT1/cmtt/m/sl/9 (if M = Insert then (DAss {t_} 1 (emptyfinmap(t_ $\OMS/c
-msy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) (TreeET
-
-Overfull \hbox (29.18028pt too wide) in paragraph at lines 53--54
-[][]  \OT1/cmtt/m/sl/9 if M = Removesome then (DAss {t_} 0 (emptyfinmap(t_ $\OM
-S/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) (ResultET
-
-Overfull \hbox (24.45532pt too wide) in paragraph at lines 54--55
-[][]  \OT1/cmtt/m/sl/9 if M = Removetop then (DAss {t_} 0 (emptyfinmap(t_ $\OMS
-/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) (ResultET
-
-Overfull \hbox (15.0054pt too wide) in paragraph at lines 55--56
-[][]  \OT1/cmtt/m/sl/9 if M = Make_heap then (DAss {l_} 0 (emptyfinmap(l_ $\OMS
-/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (ListET 0))) (TreeET
-
-Overfull \hbox (5.55548pt too wide) in paragraph at lines 56--57
-[][]  \OT1/cmtt/m/sl/9 if M = Extract then (DAss {h_} 0 (emptyfinmap(h_ $\OMS/c
-msy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) (ListET
-
-Overfull \hbox (19.73036pt too wide) in paragraph at lines 57--58
-[][]  \OT1/cmtt/m/sl/9 if M = Siftdown then (DAss {t1_, t2_} 1 (emptyfinmap(t1_
- $\OMS/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))(t2_
-
-Overfull \hbox (5.55548pt too wide) in paragraph at lines 58--59
-[][]  \OT1/cmtt/m/sl/9 if M = Sort then (DAss {l_} 0 (emptyfinmap(l_ $\OMS/cmsy
-/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (ListET 0))) (ListET 0)
-
-Overfull \hbox (20.53447pt too wide) in paragraph at lines 65--66
-[][]\OT1/cmtt/m/sl/9 "sMST == ($\OML/cmm/m/it/9 ^^U$ \OT1/cmtt/m/sl/9 C M args 
-E h hh v p. SPEC M (newframe_env Nullref (fst (methtable
-
-Overfull \hbox (70.79651pt too wide) in paragraph at lines 70--71
-[][]  \OT1/cmtt/m/sl/9 Meth_Insert Fun_fInsert Fun_fzeroInsert Fun_foneInsert F
-un_ftwoInsert Fun_fthreeInsert[] 
-
-Overfull \hbox (61.34659pt too wide) in paragraph at lines 74--75
-[][]  \OT1/cmtt/m/sl/9 Meth_Removetop Fun_fRemovetop Fun_fzeroRemovetop Fun_fon
-eRemovetop Fun_ftwoRemovetop
-
-Overfull \hbox (37.72179pt too wide) in paragraph at lines 75--76
-[][]  \OT1/cmtt/m/sl/9 Meth_Siftdown Fun_fSiftdown Fun_fzeroSiftdown Fun_foneSi
-ftdown Fun_ftwoSiftdown
-
-Overfull \hbox (89.69635pt too wide) in paragraph at lines 76--77
-[][]  \OT1/cmtt/m/sl/9 Fun_ffourSiftdown Fun_ffiveSiftdown Fun_fsixSiftdown Fun
-_fsevenSiftdown Fun_feightSiftdown[] 
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 77--78
-[][]  \OT1/cmtt/m/sl/9 Fun_fnineSiftdown Fun_ftenSiftdown Fun_felevenSiftdown F
-un_ftwelveSiftdown
-
-Overfull \hbox (70.79651pt too wide) in paragraph at lines 78--79
-[][]  \OT1/cmtt/m/sl/9 Fun_ffourteenSiftdown Fun_ffifteenSiftdown Fun_fsixteenS
-iftdown Fun_fseventeenSiftdown
-
-Overfull \hbox (38.27744pt too wide) in paragraph at lines 81--82
-[][]\OT1/cmtt/m/sl/9 lemma LL2: "$[]$(E, h, U,C,R,m):CS; U = V$[]$ $[][]\OMS/cm
-sy/m/n/9 )$ \OT1/cmtt/m/sl/9 (E, h, V,C,R,m):CS" (*<*)by simp(*>*)[] 
-
-Overfull \hbox (12.18752pt too wide) in paragraph at lines 88--89
-[][]  $[]$ \OT1/cmtt/m/sl/9 {y,z} , 1 , (emptyfinmap(y $\OMS/cmsy/m/n/9 7!$$[][
-]$\OT1/cmtt/m/sl/9 (TreeET 0))(z $\OMS/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (Tr
-eeET 0))) $\OMS/cmsy/m/n/9 ^^]$  \OT1/cmtt/m/sl/9 (TreeET
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 90--91
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-[2]
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 92--93
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 96--97
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (7.43889pt too wide) in paragraph at lines 103--104
-[][] $[][]\OMS/cmsy/m/n/9 )$ $[]$ \OT1/cmtt/m/sl/9 {x}, 0 , (emptyfinmap(x $\OM
-S/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (ListET 0)))  $\OMS/cmsy/m/n/9 ^^]$ \OT1
-/cmtt/m/sl/9 (TreeET 0) , 0 $[]$ E h hh
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 105--106
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 107--108
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 111--112
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 120--121
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 122--123
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 126--127
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (2.71393pt too wide) in paragraph at lines 133--134
-[][]$[][]\OMS/cmsy/m/n/9 )$ $[]$ \OT1/cmtt/m/sl/9 {x}, 0 , (emptyfinmap(x $\OMS
-/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0)))  $\OMS/cmsy/m/n/9 ^^]$ \OT1/
-cmtt/m/sl/9 (ListET 0) , 0 $[]$ E h hh
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 135--136
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 137--138
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-[3]
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 141--142
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (3.75562pt too wide) in paragraph at lines 148--149
-[][]$[][]\OMS/cmsy/m/n/9 )$ $[]$ \OT1/cmtt/m/sl/9 {y} , 1 , (emptyfinmap(y $\OM
-S/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) $\OMS/cmsy/m/n/9 ^^]$  \OT1
-/cmtt/m/sl/9 (TreeET 0), 0 $[]$ E h hh
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 150--151
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 152--153
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 156--157
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (2.55698pt too wide) in paragraph at lines 163--164
-[][]$[][]\OMS/cmsy/m/n/9 )$ $[]$ \OT1/cmtt/m/sl/9 {x} , 0 , (emptyfinmap(x $\OM
-S/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) $\OMS/cmsy/m/n/9 ^^]$  \OT1
-/cmtt/m/sl/9 (ResultET 0 (TreeET 0)
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 165--166
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 167--168
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 171--172
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (2.55698pt too wide) in paragraph at lines 178--179
-[][]$[][]\OMS/cmsy/m/n/9 )$ $[]$ \OT1/cmtt/m/sl/9 {x} , 0 , (emptyfinmap(x $\OM
-S/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) $\OMS/cmsy/m/n/9 ^^]$  \OT1
-/cmtt/m/sl/9 (ResultET 0 (TreeET 0)
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 180--181
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 182--183
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-[4]
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 186--187
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (2.5181pt too wide) in paragraph at lines 208--209
-[][]\OT1/cmtt/m/sl/9 lemma vcg_rvar: "GETr C x = Some T $[][]\OMS/cmsy/m/n/9 )$
- \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$  \OT1/cmtt/m/sl/9 RVar x : $[]$ {x} , n
- , C $\OMS/cmsy/m/n/9 ^^]$  \OT1/cmtt/m/sl/9 T
-
-Overfull \hbox (12.12497pt too wide) in paragraph at lines 218--219
-[][]                 $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 
-^^C$  \OT1/cmtt/m/sl/9 RPrimop f x y : $[]$ {x, y} , n , C $\OMS/cmsy/m/n/9 ^^]
-$ \OT1/cmtt/m/sl/9 IntET , n $[]$"
-
-Overfull \hbox (8.07211pt too wide) in paragraph at lines 230--231
-[][]     \OT1/cmtt/m/sl/9 "$[]$GETr C y = Some (TreeET k); GETr C z = Some (Tre
-eET k); y$\OMS/cmsy/m/n/9 6\OT1/cmr/m/n/9 =$\OT1/cmtt/m/sl/9 z; n=(Suc
-
-Overfull \hbox (17.61093pt too wide) in paragraph at lines 231--232
-[][]     $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$ \OT1/cm
-tt/m/sl/9 (DIAM$[]$Make_IIDD ([VALarg (IVal 3), INarg v, RNarg y, RNarg z]))
-[5]
-Overfull \hbox (1.16122pt too wide) in paragraph at lines 239--240
-[][]  \OT1/cmtt/m/sl/9 "$\OMS/cmsy/m/n/9 :$ \OT1/cmtt/m/sl/9 isMergePoint f $\O
-MS/cmsy/m/n/9 ^$ \OT1/cmtt/m/sl/9 (dominates f, G, f, $[]$U, n, C $\OMS/cmsy/m/
-n/9 ^^]$ \OT1/cmtt/m/sl/9 T, m$[]$) $\OMS/cmsy/m/n/9 2$ \OT1/cmtt/m/sl/9 DOM_Ca
-ll
-
-Overfull \hbox (12.61101pt too wide) in paragraph at lines 241--242
-[][]\OT1/cmtt/m/sl/9 (CALL f, $[]$U, n , restr C (ParList2RnameList (fst (funta
-ble f))) $\OMS/cmsy/m/n/9 ^^]$ \OT1/cmtt/m/sl/9 T , m $[]$)
-
-Overfull \hbox (1.16122pt too wide) in paragraph at lines 245--246
-[][]  \OT1/cmtt/m/sl/9 "$\OMS/cmsy/m/n/9 :$ \OT1/cmtt/m/sl/9 isMergePoint f $\O
-MS/cmsy/m/n/9 ^$ \OT1/cmtt/m/sl/9 (dominates f, G, f, $[]$U, n, C $\OMS/cmsy/m/
-n/9 ^^]$ \OT1/cmtt/m/sl/9 T, m$[]$) $\OMS/cmsy/m/n/9 2$ \OT1/cmtt/m/sl/9 DOM_Ca
-ll
-
-Overfull \hbox (12.61101pt too wide) in paragraph at lines 247--248
-[][]\OT1/cmtt/m/sl/9 (CALL f, $[]$U, n , restr C (ParList2RnameList (fst (funta
-ble f))) $\OMS/cmsy/m/n/9 ^^]$ \OT1/cmtt/m/sl/9 T , m $[]$)
-
-Overfull \hbox (8.40714pt too wide) in paragraph at lines 256--257
-[][]  \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$  \OT1/cmtt/m/sl/9 e : $[]$ U1 , n 
-, C $\OMS/cmsy/m/n/9 ^^]$  \OT1/cmtt/m/sl/9 T1 , m $[]$ ; G $\U/lasy/m/n/9 ^^C$
-  \OT1/cmtt/m/sl/9 ee : $[]$ U2 , m , C(x$\OMS/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/
-sl/9 T1) $\OMS/cmsy/m/n/9 ^^]$
-
-Overfull \hbox (4.4306pt too wide) in paragraph at lines 257--258
-[][]  \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$  \OT1/cmtt/m/sl/9 (LET rf x =e IN 
-ee END) : $[]$ U1 $\OMS/cmsy/m/n/9 [$ \OT1/cmtt/m/sl/9 (U2 - {x}) , n , C $\OMS
-/cmsy/m/n/9 ^^]$  \OT1/cmtt/m/sl/9 T2 , k $[]$"[] 
-
-Overfull \hbox (5.1584pt too wide) in paragraph at lines 270--271
-[][]  $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$ \OT1/cmtt/
-m/sl/9 (LET z = RPrimop f x y IN e END) : $[]${x, y} $\OMS/cmsy/m/n/9 [$ \OT1/c
-mtt/m/sl/9 U, n, C $\OMS/cmsy/m/n/9 ^^]$ \OT1/cmtt/m/sl/9 T, m$[]$"
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 273--274
-[][]\OT1/cmtt/m/sl/9 (* Note: side conditions in match rules cannot be solved u
-ntil later because
-[6]
-Overfull \hbox (28.63316pt too wide) in paragraph at lines 292--293
-[][]$[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$  \OT1/cmtt/m
-/sl/9 (LET cont =t$[]$V0; rf left =t$\OMS/cmsy/m/n/9 }$\OT1/cmtt/m/sl/9 R1; rf 
-right =t$\OMS/cmsy/m/n/9 }$\OT1/cmtt/m/sl/9 R2;  _ =DIAM$[]$Free([RNarg
-
-Overfull \hbox (8.16101pt too wide) in paragraph at lines 300--301
-[][] $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$ \OT1/cmtt/m
-/sl/9 (LET h = GetFi l V0; rf t = GetFr l R1; _ = DIAM$[]$Free ([RNarg l])
-
-Overfull \hbox (8.16101pt too wide) in paragraph at lines 308--309
-[][] $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$ \OT1/cmtt/m
-/sl/9 (LET h = GetFi l V0; rf t = GetFr l R1; _ = DIAM$[]$Free ([RNarg l])
-
-Overfull \hbox (1.11948pt too wide) in paragraph at lines 315--316
-[][]     $\OMS/cmsy/m/n/9 8 $ \OT1/cmtt/m/sl/9 E h hh v p. sMST c M L E h hh v 
-p $[][]\OMS/cmsy/m/n/9 !$ $[]$\OT1/cmtt/m/sl/9 U, n, C $\OMS/cmsy/m/n/9 ^^]$ \O
-T1/cmtt/m/sl/9 T1, m$[]$ E h hh v
-
-Overfull \hbox (4.43343pt too wide) in paragraph at lines 319--320
-[][]   $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$  \OT1/cmt
-t/m/sl/9 (LET rf x = c$[]$M(L) IN e END) : $[]$U $\OMS/cmsy/m/n/9 [$ \OT1/cmtt/
-m/sl/9 (V-{x}), nk, D $\OMS/cmsy/m/n/9 ^^]$ \OT1/cmtt/m/sl/9 T, l$[]$"
-
-Overfull \hbox (3.34715pt too wide) in paragraph at lines 323--324
-[][]     \OT1/cmtt/m/sl/9 "$[]$GETr C y = Some (TreeET k);GETr C z = Some (Tree
-ET k); y$\OMS/cmsy/m/n/9 6\OT1/cmr/m/n/9 =$\OT1/cmtt/m/sl/9 z; n=(Suc
-[7]
-Overfull \hbox (3.43605pt too wide) in paragraph at lines 326--327
-[][]     $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$ \OT1/cm
-tt/m/sl/9 (LET rf x = DIAM$[]$Make_IIDD ([VALarg (IVal 3), INarg v, RNarg
-
-Overfull \hbox (62.34396pt too wide) in paragraph at lines 326--327
-\OT1/cmtt/m/sl/9 y, RNarg z]) IN e END): $[]$({y,z} $\OMS/cmsy/m/n/9 [$ \OT1/cm
-tt/m/sl/9 (U-{x})), n, C $\OMS/cmsy/m/n/9 ^^]$ \OT1/cmtt/m/sl/9 T, l$[]$" by (e
-rule DA_LetrMakeTree,
-
-Overfull \hbox (19.73325pt too wide) in paragraph at lines 335--336
-[][]\OT1/cmtt/m/sl/9 lemma vcg_domcallcons: "$[]$(t,{(Call h, $[]$U, n, C $\OMS
-/cmsy/m/n/9 ^^]$ \OT1/cmtt/m/sl/9 T, m$[]$)} $\OMS/cmsy/m/n/9 [$ \OT1/cmtt/m/sl
-/9 G,f,P):DOM_Call;[] 
-
-Overfull \hbox (42.44675pt too wide) in paragraph at lines 347--348
-[][]       \OT1/cmtt/m/sl/9 context which contains an one entry for each syntac
-tic method invocation.*}[] 
-
-Overfull \hbox (3.92209pt too wide) in paragraph at lines 350--351
-[][]  \OT1/cmtt/m/sl/9 {(HS$[]$Insert([INarg x_,RNarg r2_]), sMST HS Insert [IN
-arg x_,RNarg r2_]),[] 
-
-Overfull \hbox (8.64705pt too wide) in paragraph at lines 351--352
-[][]  \OT1/cmtt/m/sl/9 (HS$[]$Insert([INarg v4_,RNarg r2_]), sMST HS Insert [IN
-arg v4_,RNarg r2_]),[] 
-
-Overfull \hbox (3.92209pt too wide) in paragraph at lines 358--359
-[][]  \OT1/cmtt/m/sl/9 (HS$[]$Siftdown([INarg v2_, RNarg r3_, RNarg r1_]), sMST
- HS Siftdown [INarg
-
-Overfull \hbox (18.09697pt too wide) in paragraph at lines 359--360
-[][]  \OT1/cmtt/m/sl/9 (HS$[]$Siftdown([INarg w_, RNarg r5_, RNarg r4_]), sMST 
-HS Siftdown [INarg w_,
-
-Overfull \hbox (18.09697pt too wide) in paragraph at lines 360--361
-[][]  \OT1/cmtt/m/sl/9 (HS$[]$Siftdown([INarg w_, RNarg r8_, RNarg r7_]), sMST 
-HS Siftdown [INarg w_,
-[8]
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 380--381
-[][]    \OT1/cmtt/m/sl/9 CHANGED (simp_tac ((Simplifier.get_local_simpset ctxt)
- addsimps thms) i)[] 
-
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 382--383
-[][]    \OT1/cmtt/m/sl/9 CHANGED (asm_simp_tac ((Simplifier.get_local_simpset c
-txt) addsimps thms)
-[9] [10]
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 510--511
-[][]\OT1/cmtt/m/sl/9 (*            apply method_Let prefer 2 apply (simp add: H
-eapSortContext_def)[] 
-
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 511--512
-[][]                             \OT1/cmtt/m/sl/9 prefer 2 apply (clarsimp, eru
-le Siftdown_Invoke,
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 518--519
-[][]  \OT1/cmtt/m/sl/9 (* for solving premise of vcg_call -- either unfold Dom 
-def, or lookup *)
-[11]
-Overfull \hbox (28.27187pt too wide) in paragraph at lines 557--558
-[][]   \OT1/cmtt/m/sl/9 fun main_tac ctxt (alldefs as (flowdefs,dom_defs,gamma_
-def)) i state = state
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 562--563
-[][]   \OT1/cmtt/m/sl/9 and main_tac_aux ctxt (alldefs as (flowdefs,dom_defs,ga
-mma_def)) i state
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 566--567
-[][]            \OT1/cmtt/m/sl/9 let_tac ctxt (flowdefs @ gamma_def)  (main_tac
-_aux ctxt alldefs)
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 575--576
-[][]\OT1/cmtt/m/sl/9 (* Testing methods for invoking parts of the tactic above 
-[for debug only]
-[12]
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 585--586
-[][]\OT1/cmtt/m/sl/9 method_setup method_Let = {* Method.thms_ctxt_args (fn thm
-s => fn ctxt => [] 
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 589--590
-[][]\OT1/cmtt/m/sl/9 (* apply (rule vcg_call) apply (simp add: dominates_def is
-MergePoint_def) *)[] 
-
-Overfull \hbox (42.44675pt too wide) in paragraph at lines 594--595
-[][]\OT1/cmtt/m/sl/9 (* apply (simp?, (rule DA_NullResult, simp) | rule DA_Null
-Tree | rule DA_NullList)
-
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 603--604
-[][]\OT1/cmtt/m/sl/9 (* FIXME: to combine method_Call with method_Dom or mergep
-oint stuff, we need
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 606--607
-[][]\OT1/cmtt/m/sl/9 (* apply ((rule vcg_domcallcons) | (rule vcg_domcallnil))+
- apply simp apply
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 608--609
-[][]  \OT1/cmtt/m/sl/9 fn ctxt => Method.METHOD (fn facts => dom_tac ctxt thms 
-stop stop 1)) *}[] 
-
-Overfull \hbox (37.72179pt too wide) in paragraph at lines 624--625
-[][]         \OT1/cmtt/m/sl/9 two_subgoal_tacs i THEN vdm_tac (i+1) THEN vdm_ta
-c i,  (* stack: reverse
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 630--631
-[][]\OT1/cmtt/m/sl/9 (* apply ((rule vcg_domcallcons) | (rule vcg_domcallnil))+
- apply simp apply
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 631--632
-[][]\OT1/cmtt/m/sl/9 method_setup method_Weak = {* Method.thms_ctxt_args (fn th
-ms => fn ctxt =>
-[13]
-Overfull \hbox (37.72179pt too wide) in paragraph at lines 636--637
-[][]\OT1/cmtt/m/sl/9 (*methods call and dom are applied together, using CallDom
-: proofs takes 55secs*)[] 
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 642--643
-[][]\OT1/cmtt/m/sl/9 (* apply (method_main dominates_def isMergePoint_def MFS_d
-efs SPEC_def) *)[] 
-
-Overfull \hbox (42.44675pt too wide) in paragraph at lines 657--658
-[][]\OT1/cmtt/m/sl/9 (* Method main: writing bits of ML code to parse in Isar i
-s a pain, so we hardwire[] 
-
-Overfull \hbox (28.27187pt too wide) in paragraph at lines 666--667
-[][]  \OT1/cmtt/m/sl/9 Method.METHOD (fn facts => main_tac ctxt (thms "flow_def
-s", thms "doms_defs",
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 670--671
-[][]  \OT1/cmtt/m/sl/9 Method.METHOD (fn facts => main_tac_aux ctxt (thms "flow
-_defs", thms "doms_defs",
-
-Overfull \hbox (13.4388pt too wide) in paragraph at lines 674--675
-[][]\OT1/cmtt/m/sl/9 "$[]$G = HeapSortContext$[]$ $[][]\OMS/cmsy/m/n/9 )$ \OT1/
-cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$ \OT1/cmtt/m/sl/9 snd (methtable HS Siftdown) 
-: SPEC Siftdown"[] 
-[14] [15] [16]
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 805--806
-[][]                \OT1/cmtt/m/sl/9 apply (method_Dom doms_defs)  (* this the 
-place that cut is
-
-Overfull \hbox (37.72179pt too wide) in paragraph at lines 830--831
-[][]                                \OT1/cmtt/m/sl/9 (*Call*) (* first call to 
-the merge point ffour*)[] 
-
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 840--841
-[][]                                \OT1/cmtt/m/sl/9 (*Call*) (*This is the sec
-ond call to ffour*)[] 
-[17]
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 853--854
-[][]                    \OT1/cmtt/m/sl/9 (*1*) apply simp (*contraint came from
- TreematchD STAR.*)[] 
-
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 855--856
-[][]                     \OT1/cmtt/m/sl/9 (*this is like a top-level verificati
-on, i.e.starts with
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 878--879
-[][]                           \OT1/cmtt/m/sl/9 apply (method_Dom doms_defs)  (
-* this the place
-[18]
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 900--901
-[][]                                   \OT1/cmtt/m/sl/9 (*call This is the firs
-t call to feleven*)[] 
-
-Overfull \hbox (23.5469pt too wide) in paragraph at lines 910--911
-[][]                                   \OT1/cmtt/m/sl/9 (*call This is the seco
-nd call to feleven*)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 920--921
-[][]                                 \OT1/cmtt/m/sl/9 (*call This is the third 
-call to feleven*)[] 
-
-Overfull \hbox (32.99683pt too wide) in paragraph at lines 924--925
-[][]                             \OT1/cmtt/m/sl/9 (*this is like a top-level ve
-rification, i.e.starts
-
-Overfull \hbox (23.5469pt too wide) in paragraph at lines 938--939
-[][]                                           \OT1/cmtt/m/sl/9 (*of course, de
-fining the adaptaion
-
-Overfull \hbox (37.72179pt too wide) in paragraph at lines 939--940
-[][]                                           \OT1/cmtt/m/sl/9 apply (method_L
-et HeapSortContext_def)[] 
-
-Overfull \hbox (23.5469pt too wide) in paragraph at lines 943--944
-[][]                                           \OT1/cmtt/m/sl/9 (*1*) apply sim
-p (*letinvokeconst*)[] 
-[19]
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 951--952
-[][]                                     \OT1/cmtt/m/sl/9 apply (method_Let Hea
-pSortContext_def)[] 
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 957--958
-[][]                                           \OT1/cmtt/m/sl/9 (*2*) apply sim
-p (*letrmaketree*)[] 
-
-Overfull \hbox (51.89667pt too wide) in paragraph at lines 959--960
-[][]                             \OT1/cmtt/m/sl/9 (*2*) apply fast (* the weake
-ning from the verification
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 960--961
-[][]                   \OT1/cmtt/m/sl/9 (*2*) apply fast (* the weakening from 
-the verification
-
-Overfull \hbox (240.89508pt too wide) in paragraph at lines 967--968
-[][]\OT1/cmtt/m/sl/9 (* =======================================================
-==================================================================
-)) [20] (./root.aux) )
-(see the transcript file for additional information)
-Output written on root.dvi (20 pages, 43848 bytes).
-Transcript written on root.log.
-This is TeXk, Version 3.14159 (Web2C 7.4.5)
- %&-line parsing enabled.
-LaTeX2e <2001/06/01>
-Babel <v3.7h> and hyphenation patterns for american, french, german, ngerman, n
-ohyphenation, loaded.
-
-(./root.tex (/usr/share/texmf/tex/latex/base/article.cls
-Document Class: article 2001/04/21 v1.4e Standard LaTeX document class
-(/usr/share/texmf/tex/latex/base/size10.clo)) (./isabelle.sty)
-(./isabellesym.sty) (/usr/share/texmf/tex/latex/base/inputenc.sty
-(/usr/share/texmf/tex/latex/base/latin1.def)) (./pdfsetup.sty)
-(/usr/local/texmf.da/tex/latex/comisc/url.sty)
-(/usr/share/texmf/tex/latex/base/latexsym.sty) (./root.aux) (./session.tex
-(./HeapSortProofVCG.tex
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 6--7
-[][]  \OT1/cmtt/m/sl/9 -- would be desirable to redesign CALLMP rule so that si
-de condition which[] 
-
-Overfull \hbox (42.44675pt too wide) in paragraph at lines 12--13
-[][]       \OT1/cmtt/m/sl/9 generates (variable number of) subgoals for each fu
-nction that is dominated
-(/usr/share/texmf/tex/latex/base/ulasy.fd)
-Overfull \hbox (23.5469pt too wide) in paragraph at lines 19--20
-[][]       \OT1/cmtt/m/sl/9 need to verify n+1, which leaves indeterminate numb
-er of side-condition
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 31--32
-[][]       \OT1/cmtt/m/sl/9 maybe a good idea to have a method for (each) primi
-tives, and then a
-
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 32--33
-[][]       \OT1/cmtt/m/sl/9 let which does the composition on-the-fly  --- this
- avoids duplicating
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 35--36
-[][]        \OT1/cmtt/m/sl/9 -- define ML values bound to tactics appearing in 
-bodies of methods[] 
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 47--48
-[][]\OT1/cmtt/m/sl/9 text {*This corresponds to the following specifications, f
-ormalised from the
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 48--49
-[][]       \OT1/cmtt/m/sl/9 method bodies: the contexts (in second parameter of
- @{text DAss}) are
-[1]
-Overfull \hbox (5.55548pt too wide) in paragraph at lines 52--53
-[][]  \OT1/cmtt/m/sl/9 (if M = Insert then (DAss {t_} 1 (emptyfinmap(t_ $\OMS/c
-msy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) (TreeET
-
-Overfull \hbox (29.18028pt too wide) in paragraph at lines 53--54
-[][]  \OT1/cmtt/m/sl/9 if M = Removesome then (DAss {t_} 0 (emptyfinmap(t_ $\OM
-S/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) (ResultET
-
-Overfull \hbox (24.45532pt too wide) in paragraph at lines 54--55
-[][]  \OT1/cmtt/m/sl/9 if M = Removetop then (DAss {t_} 0 (emptyfinmap(t_ $\OMS
-/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) (ResultET
-
-Overfull \hbox (15.0054pt too wide) in paragraph at lines 55--56
-[][]  \OT1/cmtt/m/sl/9 if M = Make_heap then (DAss {l_} 0 (emptyfinmap(l_ $\OMS
-/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (ListET 0))) (TreeET
-
-Overfull \hbox (5.55548pt too wide) in paragraph at lines 56--57
-[][]  \OT1/cmtt/m/sl/9 if M = Extract then (DAss {h_} 0 (emptyfinmap(h_ $\OMS/c
-msy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) (ListET
-
-Overfull \hbox (19.73036pt too wide) in paragraph at lines 57--58
-[][]  \OT1/cmtt/m/sl/9 if M = Siftdown then (DAss {t1_, t2_} 1 (emptyfinmap(t1_
- $\OMS/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))(t2_
-
-Overfull \hbox (5.55548pt too wide) in paragraph at lines 58--59
-[][]  \OT1/cmtt/m/sl/9 if M = Sort then (DAss {l_} 0 (emptyfinmap(l_ $\OMS/cmsy
-/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (ListET 0))) (ListET 0)
-
-Overfull \hbox (20.53447pt too wide) in paragraph at lines 65--66
-[][]\OT1/cmtt/m/sl/9 "sMST == ($\OML/cmm/m/it/9 ^^U$ \OT1/cmtt/m/sl/9 C M args 
-E h hh v p. SPEC M (newframe_env Nullref (fst (methtable
-
-Overfull \hbox (70.79651pt too wide) in paragraph at lines 70--71
-[][]  \OT1/cmtt/m/sl/9 Meth_Insert Fun_fInsert Fun_fzeroInsert Fun_foneInsert F
-un_ftwoInsert Fun_fthreeInsert[] 
-
-Overfull \hbox (61.34659pt too wide) in paragraph at lines 74--75
-[][]  \OT1/cmtt/m/sl/9 Meth_Removetop Fun_fRemovetop Fun_fzeroRemovetop Fun_fon
-eRemovetop Fun_ftwoRemovetop
-
-Overfull \hbox (37.72179pt too wide) in paragraph at lines 75--76
-[][]  \OT1/cmtt/m/sl/9 Meth_Siftdown Fun_fSiftdown Fun_fzeroSiftdown Fun_foneSi
-ftdown Fun_ftwoSiftdown
-
-Overfull \hbox (89.69635pt too wide) in paragraph at lines 76--77
-[][]  \OT1/cmtt/m/sl/9 Fun_ffourSiftdown Fun_ffiveSiftdown Fun_fsixSiftdown Fun
-_fsevenSiftdown Fun_feightSiftdown[] 
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 77--78
-[][]  \OT1/cmtt/m/sl/9 Fun_fnineSiftdown Fun_ftenSiftdown Fun_felevenSiftdown F
-un_ftwelveSiftdown
-
-Overfull \hbox (70.79651pt too wide) in paragraph at lines 78--79
-[][]  \OT1/cmtt/m/sl/9 Fun_ffourteenSiftdown Fun_ffifteenSiftdown Fun_fsixteenS
-iftdown Fun_fseventeenSiftdown
-
-Overfull \hbox (38.27744pt too wide) in paragraph at lines 81--82
-[][]\OT1/cmtt/m/sl/9 lemma LL2: "$[]$(E, h, U,C,R,m):CS; U = V$[]$ $[][]\OMS/cm
-sy/m/n/9 )$ \OT1/cmtt/m/sl/9 (E, h, V,C,R,m):CS" (*<*)by simp(*>*)[] 
-
-Overfull \hbox (12.18752pt too wide) in paragraph at lines 88--89
-[][]  $[]$ \OT1/cmtt/m/sl/9 {y,z} , 1 , (emptyfinmap(y $\OMS/cmsy/m/n/9 7!$$[][
-]$\OT1/cmtt/m/sl/9 (TreeET 0))(z $\OMS/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (Tr
-eeET 0))) $\OMS/cmsy/m/n/9 ^^]$  \OT1/cmtt/m/sl/9 (TreeET
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 90--91
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-[2]
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 92--93
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 96--97
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (7.43889pt too wide) in paragraph at lines 103--104
-[][] $[][]\OMS/cmsy/m/n/9 )$ $[]$ \OT1/cmtt/m/sl/9 {x}, 0 , (emptyfinmap(x $\OM
-S/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (ListET 0)))  $\OMS/cmsy/m/n/9 ^^]$ \OT1
-/cmtt/m/sl/9 (TreeET 0) , 0 $[]$ E h hh
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 105--106
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 107--108
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 111--112
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 120--121
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 122--123
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 126--127
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (2.71393pt too wide) in paragraph at lines 133--134
-[][]$[][]\OMS/cmsy/m/n/9 )$ $[]$ \OT1/cmtt/m/sl/9 {x}, 0 , (emptyfinmap(x $\OMS
-/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0)))  $\OMS/cmsy/m/n/9 ^^]$ \OT1/
-cmtt/m/sl/9 (ListET 0) , 0 $[]$ E h hh
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 135--136
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 137--138
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-[3]
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 141--142
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (3.75562pt too wide) in paragraph at lines 148--149
-[][]$[][]\OMS/cmsy/m/n/9 )$ $[]$ \OT1/cmtt/m/sl/9 {y} , 1 , (emptyfinmap(y $\OM
-S/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) $\OMS/cmsy/m/n/9 ^^]$  \OT1
-/cmtt/m/sl/9 (TreeET 0), 0 $[]$ E h hh
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 150--151
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 152--153
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 156--157
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (2.55698pt too wide) in paragraph at lines 163--164
-[][]$[][]\OMS/cmsy/m/n/9 )$ $[]$ \OT1/cmtt/m/sl/9 {x} , 0 , (emptyfinmap(x $\OM
-S/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) $\OMS/cmsy/m/n/9 ^^]$  \OT1
-/cmtt/m/sl/9 (ResultET 0 (TreeET 0)
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 165--166
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 167--168
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 171--172
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (2.55698pt too wide) in paragraph at lines 178--179
-[][]$[][]\OMS/cmsy/m/n/9 )$ $[]$ \OT1/cmtt/m/sl/9 {x} , 0 , (emptyfinmap(x $\OM
-S/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/sl/9 (TreeET 0))) $\OMS/cmsy/m/n/9 ^^]$  \OT1
-/cmtt/m/sl/9 (ResultET 0 (TreeET 0)
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 180--181
-[][]\OT1/cmtt/m/sl/9 apply (simp add: sMST_def SPEC_def MFS_defs newframe_env_d
-ef evalARGS_def self_def)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 182--183
-[][]\OT1/cmtt/m/sl/9 apply (erule_tac x=q in allE, erule_tac x=F in allE, erule
-_tac x=R in allE,
-[4]
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 186--187
-[][]        \OT1/cmtt/m/sl/9 ( (rule CS_NIL, fastsimp, simp+) | (rule CS_CONS, 
-fastsimp, simp+)
-
-Overfull \hbox (2.5181pt too wide) in paragraph at lines 208--209
-[][]\OT1/cmtt/m/sl/9 lemma vcg_rvar: "GETr C x = Some T $[][]\OMS/cmsy/m/n/9 )$
- \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$  \OT1/cmtt/m/sl/9 RVar x : $[]$ {x} , n
- , C $\OMS/cmsy/m/n/9 ^^]$  \OT1/cmtt/m/sl/9 T
-
-Overfull \hbox (12.12497pt too wide) in paragraph at lines 218--219
-[][]                 $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 
-^^C$  \OT1/cmtt/m/sl/9 RPrimop f x y : $[]$ {x, y} , n , C $\OMS/cmsy/m/n/9 ^^]
-$ \OT1/cmtt/m/sl/9 IntET , n $[]$"
-
-Overfull \hbox (8.07211pt too wide) in paragraph at lines 230--231
-[][]     \OT1/cmtt/m/sl/9 "$[]$GETr C y = Some (TreeET k); GETr C z = Some (Tre
-eET k); y$\OMS/cmsy/m/n/9 6\OT1/cmr/m/n/9 =$\OT1/cmtt/m/sl/9 z; n=(Suc
-
-Overfull \hbox (17.61093pt too wide) in paragraph at lines 231--232
-[][]     $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$ \OT1/cm
-tt/m/sl/9 (DIAM$[]$Make_IIDD ([VALarg (IVal 3), INarg v, RNarg y, RNarg z]))
-[5]
-Overfull \hbox (1.16122pt too wide) in paragraph at lines 239--240
-[][]  \OT1/cmtt/m/sl/9 "$\OMS/cmsy/m/n/9 :$ \OT1/cmtt/m/sl/9 isMergePoint f $\O
-MS/cmsy/m/n/9 ^$ \OT1/cmtt/m/sl/9 (dominates f, G, f, $[]$U, n, C $\OMS/cmsy/m/
-n/9 ^^]$ \OT1/cmtt/m/sl/9 T, m$[]$) $\OMS/cmsy/m/n/9 2$ \OT1/cmtt/m/sl/9 DOM_Ca
-ll
-
-Overfull \hbox (12.61101pt too wide) in paragraph at lines 241--242
-[][]\OT1/cmtt/m/sl/9 (CALL f, $[]$U, n , restr C (ParList2RnameList (fst (funta
-ble f))) $\OMS/cmsy/m/n/9 ^^]$ \OT1/cmtt/m/sl/9 T , m $[]$)
-
-Overfull \hbox (1.16122pt too wide) in paragraph at lines 245--246
-[][]  \OT1/cmtt/m/sl/9 "$\OMS/cmsy/m/n/9 :$ \OT1/cmtt/m/sl/9 isMergePoint f $\O
-MS/cmsy/m/n/9 ^$ \OT1/cmtt/m/sl/9 (dominates f, G, f, $[]$U, n, C $\OMS/cmsy/m/
-n/9 ^^]$ \OT1/cmtt/m/sl/9 T, m$[]$) $\OMS/cmsy/m/n/9 2$ \OT1/cmtt/m/sl/9 DOM_Ca
-ll
-
-Overfull \hbox (12.61101pt too wide) in paragraph at lines 247--248
-[][]\OT1/cmtt/m/sl/9 (CALL f, $[]$U, n , restr C (ParList2RnameList (fst (funta
-ble f))) $\OMS/cmsy/m/n/9 ^^]$ \OT1/cmtt/m/sl/9 T , m $[]$)
-
-Overfull \hbox (8.40714pt too wide) in paragraph at lines 256--257
-[][]  \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$  \OT1/cmtt/m/sl/9 e : $[]$ U1 , n 
-, C $\OMS/cmsy/m/n/9 ^^]$  \OT1/cmtt/m/sl/9 T1 , m $[]$ ; G $\U/lasy/m/n/9 ^^C$
-  \OT1/cmtt/m/sl/9 ee : $[]$ U2 , m , C(x$\OMS/cmsy/m/n/9 7!$$[][]$\OT1/cmtt/m/
-sl/9 T1) $\OMS/cmsy/m/n/9 ^^]$
-
-Overfull \hbox (4.4306pt too wide) in paragraph at lines 257--258
-[][]  \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$  \OT1/cmtt/m/sl/9 (LET rf x =e IN 
-ee END) : $[]$ U1 $\OMS/cmsy/m/n/9 [$ \OT1/cmtt/m/sl/9 (U2 - {x}) , n , C $\OMS
-/cmsy/m/n/9 ^^]$  \OT1/cmtt/m/sl/9 T2 , k $[]$"[] 
-
-Overfull \hbox (5.1584pt too wide) in paragraph at lines 270--271
-[][]  $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$ \OT1/cmtt/
-m/sl/9 (LET z = RPrimop f x y IN e END) : $[]${x, y} $\OMS/cmsy/m/n/9 [$ \OT1/c
-mtt/m/sl/9 U, n, C $\OMS/cmsy/m/n/9 ^^]$ \OT1/cmtt/m/sl/9 T, m$[]$"
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 273--274
-[][]\OT1/cmtt/m/sl/9 (* Note: side conditions in match rules cannot be solved u
-ntil later because
-[6]
-Overfull \hbox (28.63316pt too wide) in paragraph at lines 292--293
-[][]$[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$  \OT1/cmtt/m
-/sl/9 (LET cont =t$[]$V0; rf left =t$\OMS/cmsy/m/n/9 }$\OT1/cmtt/m/sl/9 R1; rf 
-right =t$\OMS/cmsy/m/n/9 }$\OT1/cmtt/m/sl/9 R2;  _ =DIAM$[]$Free([RNarg
-
-Overfull \hbox (8.16101pt too wide) in paragraph at lines 300--301
-[][] $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$ \OT1/cmtt/m
-/sl/9 (LET h = GetFi l V0; rf t = GetFr l R1; _ = DIAM$[]$Free ([RNarg l])
-
-Overfull \hbox (8.16101pt too wide) in paragraph at lines 308--309
-[][] $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$ \OT1/cmtt/m
-/sl/9 (LET h = GetFi l V0; rf t = GetFr l R1; _ = DIAM$[]$Free ([RNarg l])
-
-Overfull \hbox (1.11948pt too wide) in paragraph at lines 315--316
-[][]     $\OMS/cmsy/m/n/9 8 $ \OT1/cmtt/m/sl/9 E h hh v p. sMST c M L E h hh v 
-p $[][]\OMS/cmsy/m/n/9 !$ $[]$\OT1/cmtt/m/sl/9 U, n, C $\OMS/cmsy/m/n/9 ^^]$ \O
-T1/cmtt/m/sl/9 T1, m$[]$ E h hh v
-
-Overfull \hbox (4.43343pt too wide) in paragraph at lines 319--320
-[][]   $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$  \OT1/cmt
-t/m/sl/9 (LET rf x = c$[]$M(L) IN e END) : $[]$U $\OMS/cmsy/m/n/9 [$ \OT1/cmtt/
-m/sl/9 (V-{x}), nk, D $\OMS/cmsy/m/n/9 ^^]$ \OT1/cmtt/m/sl/9 T, l$[]$"
-
-Overfull \hbox (3.34715pt too wide) in paragraph at lines 323--324
-[][]     \OT1/cmtt/m/sl/9 "$[]$GETr C y = Some (TreeET k);GETr C z = Some (Tree
-ET k); y$\OMS/cmsy/m/n/9 6\OT1/cmr/m/n/9 =$\OT1/cmtt/m/sl/9 z; n=(Suc
-[7]
-Overfull \hbox (3.43605pt too wide) in paragraph at lines 326--327
-[][]     $[][]\OMS/cmsy/m/n/9 )$ \OT1/cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$ \OT1/cm
-tt/m/sl/9 (LET rf x = DIAM$[]$Make_IIDD ([VALarg (IVal 3), INarg v, RNarg
-
-Overfull \hbox (62.34396pt too wide) in paragraph at lines 326--327
-\OT1/cmtt/m/sl/9 y, RNarg z]) IN e END): $[]$({y,z} $\OMS/cmsy/m/n/9 [$ \OT1/cm
-tt/m/sl/9 (U-{x})), n, C $\OMS/cmsy/m/n/9 ^^]$ \OT1/cmtt/m/sl/9 T, l$[]$" by (e
-rule DA_LetrMakeTree,
-
-Overfull \hbox (19.73325pt too wide) in paragraph at lines 335--336
-[][]\OT1/cmtt/m/sl/9 lemma vcg_domcallcons: "$[]$(t,{(Call h, $[]$U, n, C $\OMS
-/cmsy/m/n/9 ^^]$ \OT1/cmtt/m/sl/9 T, m$[]$)} $\OMS/cmsy/m/n/9 [$ \OT1/cmtt/m/sl
-/9 G,f,P):DOM_Call;[] 
-
-Overfull \hbox (42.44675pt too wide) in paragraph at lines 347--348
-[][]       \OT1/cmtt/m/sl/9 context which contains an one entry for each syntac
-tic method invocation.*}[] 
-
-Overfull \hbox (3.92209pt too wide) in paragraph at lines 350--351
-[][]  \OT1/cmtt/m/sl/9 {(HS$[]$Insert([INarg x_,RNarg r2_]), sMST HS Insert [IN
-arg x_,RNarg r2_]),[] 
-
-Overfull \hbox (8.64705pt too wide) in paragraph at lines 351--352
-[][]  \OT1/cmtt/m/sl/9 (HS$[]$Insert([INarg v4_,RNarg r2_]), sMST HS Insert [IN
-arg v4_,RNarg r2_]),[] 
-
-Overfull \hbox (3.92209pt too wide) in paragraph at lines 358--359
-[][]  \OT1/cmtt/m/sl/9 (HS$[]$Siftdown([INarg v2_, RNarg r3_, RNarg r1_]), sMST
- HS Siftdown [INarg
-
-Overfull \hbox (18.09697pt too wide) in paragraph at lines 359--360
-[][]  \OT1/cmtt/m/sl/9 (HS$[]$Siftdown([INarg w_, RNarg r5_, RNarg r4_]), sMST 
-HS Siftdown [INarg w_,
-
-Overfull \hbox (18.09697pt too wide) in paragraph at lines 360--361
-[][]  \OT1/cmtt/m/sl/9 (HS$[]$Siftdown([INarg w_, RNarg r8_, RNarg r7_]), sMST 
-HS Siftdown [INarg w_,
-[8]
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 380--381
-[][]    \OT1/cmtt/m/sl/9 CHANGED (simp_tac ((Simplifier.get_local_simpset ctxt)
- addsimps thms) i)[] 
-
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 382--383
-[][]    \OT1/cmtt/m/sl/9 CHANGED (asm_simp_tac ((Simplifier.get_local_simpset c
-txt) addsimps thms)
-[9] [10]
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 510--511
-[][]\OT1/cmtt/m/sl/9 (*            apply method_Let prefer 2 apply (simp add: H
-eapSortContext_def)[] 
-
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 511--512
-[][]                             \OT1/cmtt/m/sl/9 prefer 2 apply (clarsimp, eru
-le Siftdown_Invoke,
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 518--519
-[][]  \OT1/cmtt/m/sl/9 (* for solving premise of vcg_call -- either unfold Dom 
-def, or lookup *)
-[11]
-Overfull \hbox (28.27187pt too wide) in paragraph at lines 557--558
-[][]   \OT1/cmtt/m/sl/9 fun main_tac ctxt (alldefs as (flowdefs,dom_defs,gamma_
-def)) i state = state
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 562--563
-[][]   \OT1/cmtt/m/sl/9 and main_tac_aux ctxt (alldefs as (flowdefs,dom_defs,ga
-mma_def)) i state
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 566--567
-[][]            \OT1/cmtt/m/sl/9 let_tac ctxt (flowdefs @ gamma_def)  (main_tac
-_aux ctxt alldefs)
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 575--576
-[][]\OT1/cmtt/m/sl/9 (* Testing methods for invoking parts of the tactic above 
-[for debug only]
-[12]
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 585--586
-[][]\OT1/cmtt/m/sl/9 method_setup method_Let = {* Method.thms_ctxt_args (fn thm
-s => fn ctxt => [] 
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 589--590
-[][]\OT1/cmtt/m/sl/9 (* apply (rule vcg_call) apply (simp add: dominates_def is
-MergePoint_def) *)[] 
-
-Overfull \hbox (42.44675pt too wide) in paragraph at lines 594--595
-[][]\OT1/cmtt/m/sl/9 (* apply (simp?, (rule DA_NullResult, simp) | rule DA_Null
-Tree | rule DA_NullList)
-
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 603--604
-[][]\OT1/cmtt/m/sl/9 (* FIXME: to combine method_Call with method_Dom or mergep
-oint stuff, we need
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 606--607
-[][]\OT1/cmtt/m/sl/9 (* apply ((rule vcg_domcallcons) | (rule vcg_domcallnil))+
- apply simp apply
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 608--609
-[][]  \OT1/cmtt/m/sl/9 fn ctxt => Method.METHOD (fn facts => dom_tac ctxt thms 
-stop stop 1)) *}[] 
-
-Overfull \hbox (37.72179pt too wide) in paragraph at lines 624--625
-[][]         \OT1/cmtt/m/sl/9 two_subgoal_tacs i THEN vdm_tac (i+1) THEN vdm_ta
-c i,  (* stack: reverse
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 630--631
-[][]\OT1/cmtt/m/sl/9 (* apply ((rule vcg_domcallcons) | (rule vcg_domcallnil))+
- apply simp apply
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 631--632
-[][]\OT1/cmtt/m/sl/9 method_setup method_Weak = {* Method.thms_ctxt_args (fn th
-ms => fn ctxt =>
-[13]
-Overfull \hbox (37.72179pt too wide) in paragraph at lines 636--637
-[][]\OT1/cmtt/m/sl/9 (*methods call and dom are applied together, using CallDom
-: proofs takes 55secs*)[] 
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 642--643
-[][]\OT1/cmtt/m/sl/9 (* apply (method_main dominates_def isMergePoint_def MFS_d
-efs SPEC_def) *)[] 
-
-Overfull \hbox (42.44675pt too wide) in paragraph at lines 657--658
-[][]\OT1/cmtt/m/sl/9 (* Method main: writing bits of ML code to parse in Isar i
-s a pain, so we hardwire[] 
-
-Overfull \hbox (28.27187pt too wide) in paragraph at lines 666--667
-[][]  \OT1/cmtt/m/sl/9 Method.METHOD (fn facts => main_tac ctxt (thms "flow_def
-s", thms "doms_defs",
-
-Overfull \hbox (47.1717pt too wide) in paragraph at lines 670--671
-[][]  \OT1/cmtt/m/sl/9 Method.METHOD (fn facts => main_tac_aux ctxt (thms "flow
-_defs", thms "doms_defs",
-
-Overfull \hbox (13.4388pt too wide) in paragraph at lines 674--675
-[][]\OT1/cmtt/m/sl/9 "$[]$G = HeapSortContext$[]$ $[][]\OMS/cmsy/m/n/9 )$ \OT1/
-cmtt/m/sl/9 G $\U/lasy/m/n/9 ^^C$ \OT1/cmtt/m/sl/9 snd (methtable HS Siftdown) 
-: SPEC Siftdown"[] 
-[14] [15] [16]
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 805--806
-[][]                \OT1/cmtt/m/sl/9 apply (method_Dom doms_defs)  (* this the 
-place that cut is
-
-Overfull \hbox (37.72179pt too wide) in paragraph at lines 830--831
-[][]                                \OT1/cmtt/m/sl/9 (*Call*) (* first call to 
-the merge point ffour*)[] 
-
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 840--841
-[][]                                \OT1/cmtt/m/sl/9 (*Call*) (*This is the sec
-ond call to ffour*)[] 
-[17]
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 853--854
-[][]                    \OT1/cmtt/m/sl/9 (*1*) apply simp (*contraint came from
- TreematchD STAR.*)[] 
-
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 855--856
-[][]                     \OT1/cmtt/m/sl/9 (*this is like a top-level verificati
-on, i.e.starts with
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 878--879
-[][]                           \OT1/cmtt/m/sl/9 apply (method_Dom doms_defs)  (
-* this the place
-[18]
-Overfull \hbox (18.82195pt too wide) in paragraph at lines 900--901
-[][]                                   \OT1/cmtt/m/sl/9 (*call This is the firs
-t call to feleven*)[] 
-
-Overfull \hbox (23.5469pt too wide) in paragraph at lines 910--911
-[][]                                   \OT1/cmtt/m/sl/9 (*call This is the seco
-nd call to feleven*)[] 
-
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 920--921
-[][]                                 \OT1/cmtt/m/sl/9 (*call This is the third 
-call to feleven*)[] 
-
-Overfull \hbox (32.99683pt too wide) in paragraph at lines 924--925
-[][]                             \OT1/cmtt/m/sl/9 (*this is like a top-level ve
-rification, i.e.starts
-
-Overfull \hbox (23.5469pt too wide) in paragraph at lines 938--939
-[][]                                           \OT1/cmtt/m/sl/9 (*of course, de
-fining the adaptaion
-
-Overfull \hbox (37.72179pt too wide) in paragraph at lines 939--940
-[][]                                           \OT1/cmtt/m/sl/9 apply (method_L
-et HeapSortContext_def)[] 
-
-Overfull \hbox (23.5469pt too wide) in paragraph at lines 943--944
-[][]                                           \OT1/cmtt/m/sl/9 (*1*) apply sim
-p (*letinvokeconst*)[] 
-[19]
-Overfull \hbox (9.37202pt too wide) in paragraph at lines 951--952
-[][]                                     \OT1/cmtt/m/sl/9 apply (method_Let Hea
-pSortContext_def)[] 
-
-Overfull \hbox (14.09698pt too wide) in paragraph at lines 957--958
-[][]                                           \OT1/cmtt/m/sl/9 (*2*) apply sim
-p (*letrmaketree*)[] 
-
-Overfull \hbox (51.89667pt too wide) in paragraph at lines 959--960
-[][]                             \OT1/cmtt/m/sl/9 (*2*) apply fast (* the weake
-ning from the verification
-
-Overfull \hbox (4.64706pt too wide) in paragraph at lines 960--961
-[][]                   \OT1/cmtt/m/sl/9 (*2*) apply fast (* the weakening from 
-the verification
-
-Overfull \hbox (240.89508pt too wide) in paragraph at lines 967--968
-[][]\OT1/cmtt/m/sl/9 (* =======================================================
-==================================================================
-)) [20] (./root.aux) )
-(see the transcript file for additional information)
-Output written on root.dvi (20 pages, 43848 bytes).
-Transcript written on root.log.
-request id is kyo-603 (1 file(s))
-
-
-=================================================================
-
-To: XEmacs Beta <xemacs-beta@xemacs.org>
-Subject: [Bug: 21.4.15] parse-partial-sexp gives stack overflow 
---text follows this line--
-================================================================
-Dear Bug Team!
-
-This bug/issue has been bothering me and (users of my Proof General
-package) for some time.  I have just verified that with the current CVS
-version of XEmacs the same problem is still present.
-
-Test case:
-
-1. switch to *scratch*
-2. C-u 100 ( 
-3. Eval expression (parse-partial-sexp 1 (point-max))
-
-The symptom I get is "nesting too deep for parser" error messages.
-(These are triggered e.g. by font-lock-fontify-region on large regions which
-contained ill-balanced parens; I also use parse-partial-sexp
-elsewhere in the PG code because of problems with buffer-syntactic-context.
-
-I notice some old comments in font-lock.el concerning this issue.  It
-might be worth looking at GNU Emacs implementation if these two are
-really supposed to be equivalent functions: on GNU Emacs 21.3.1 I
-tested a *scratch* buffer containing 40000 left parens and
-parse-partial-sexp returned a result without missing a beat 8-).
-[ NB: I didn't confirm whether the syntax tables being used were
-identical, but both cases were in Lisp Interaction mode ]
-
- - David Aspinall.
-
-
-================================================================
diff --git a/etc/isar/new-parsing-test.el b/etc/isar/new-parsing-test.el
deleted file mode 100644
index 147ad47..0000000
--- a/etc/isar/new-parsing-test.el
+++ /dev/null
@@ -1,38 +0,0 @@
-;; 
-;; Temporary test for new code in proof-done-advancing, following
-;; Markus's suggestions in proof-config  
-;; [see doc of proof-really-save-command-p]
-;; 
-;; Not integrated yet for fear of destruction of finely tuned 
-;; PG/Isar instance.
-;; 
-;;  -da  June 02.
-;; 
-;; FIXME: the handling of nesting depth counter doesn't yet work
-;; smoothly in the generic code, especially across undos/forget.
-;; Need to fix when nesting depth is changed, how it is changed,
-;; and choice of kill_proof vs undos for Isar.
-;;
-;; Testing: evaluate this buffer, reload script file 
-;; (to re-execute isar-mode).
-
-(setq proof-nested-goals-p t)
-(setq proof-goal-command-regexp 
-      (concat isar-goal-command-regexp "\\|" isar-local-goal-command-regexp))
-
-(defun isar-goal-command-p (str)
-  "Decide whether argument is a goal or not"
-  (proof-string-match proof-goal-command-regexp str))
-
-;; Reset this to default value
-(setq proof-really-save-command-p (lambda (span cmd) t))
-
-;; Use the new parser, but have to hack the keywords setting
-;; to fix prob with "{"  
-;; [do we??  that was probably buffer-syntactic context/symtab problem]
-(setq proof-script-use-old-parser nil)
-(setq isar-any-command-regexp
-      (isar-ids-to-regexp isar-keywords-major))
-;      (cons "{[^\\*]"  ;; FIXME:
-;          (isar-ids-to-regexp 
-;           (remove "{" isar-keywords-major))))
diff --git a/etc/isar/profiling.txt b/etc/isar/profiling.txt
deleted file mode 100644
index 27c9c8f..0000000
--- a/etc/isar/profiling.txt
+++ /dev/null
@@ -1,322 +0,0 @@
-Wed Aug 18 2010.  See Trac #324.
-
------------------------------------------------------------------
-
-Interactive:  C-c C-n
-
-### 12.461s elapsed time, 0.514s cpu time, 0.108s GC time
-
-scomint-output-filter                                           206         
3.6426039999  0.0176825436
-proof-shell-filter                                              206         
3.629433      0.0176186067
-proof-shell-filter-manage-output                                206         
3.6140779999  0.0175440679
-proof-shell-exec-loop                                           206         
3.5814560000  0.0173857087
-mapc                                                            208         
3.4833689999  0.0167469663
-proof-shell-invoke-callback                                     206         
3.4798549999  0.0168924999
-proof-done-advancing                                            204         
3.4786709999  0.0170523088
-proof-done-advancing-other                                      104         
3.2460199999  0.0312117307
-pg-add-element                                                  204         
3.2301699999  0.0158341666
-proof-debug                                                     99          
3.2140250000  0.0324648989
-pg-autotest-message                                             99          
3.211558      0.0324399797
-redisplay                                                       99          
3.140468      0.0317218989
-proof-done-advancing-save                                       100         
0.107982      0.00107982
-proof-process-buffer                                            1           
0.103025      0.103025
-proof-assert-until-point-interactive                            1           
0.102849      0.102849
-proof-assert-until-point                                        1           
0.102845      0.102845
-proof-make-goalsave                                             100         
0.0734089999  0.0007340899
-proof-assert-semis                                              1           
0.0729        0.0729
-proof-semis-to-vanillas                                         1           
0.069353      0.069353
-span-at-before                                                  200         
0.0607209999  0.0003036049
-proof-shell-insert-action-item                                  206         
0.0561400000  0.0002725242
-proof-shell-insert                                              206         
0.0552149999  0.0002680339
-pg-set-span-helphighlights                                      304         
0.0523910000  0.0001723388
-pg-add-proof-element                                            100         
0.0507439999  0.0005074399
-isar-global-save-command-p                                      100         
0.0403249999  0.0004032499
-isar-command-wrapping                                           204         
0.0389439999  0.0001909019
-isar-positions-of                                               204         
0.0342390000  0.0001678382
-proof-segment-up-to-using-cache                                 1           
0.029667      0.029667
-proof-segment-up-to                                             1           
0.029599      0.029599
-proof-segment-up-to-parser                                      1           
0.02959       0.02959
-proof-script-generic-parse-cmdstart                             204         
0.0265809999  0.0001302990
-span-live-p                                                     408         
0.0245460000  6.016...e-05
-span-property                                                   2226        
0.0242540000  1.089...e-05
-proof-set-locked-end                                            204         
0.0179210000  8.784...e-05
-proof-set-locked-endpoints                                      204         
0.0169129999  8.290...e-05
-goto-char                                                       3401        
0.0159649999  4.694...e-06
-replace-regexp-in-string                                        613         
0.0154579999  2.521...e-05
-pg-processing-complete-hint                                     1           
0.014814      0.014814
-proof-buffer-syntactic-context                                  411         
0.0145479999  3.539...e-05
-pg-last-output-displayform                                      304         
0.0140980000  4.637...e-05
-proof-buffer-syntactic-context-emulate                          411         
0.0135870000  3.305...e-05
-span-set-property                                               4968        
0.0131570000  2.648...e-06
-proof-shell-strip-output-markup                                 202         
0.0121529999  6.016...e-05
-isar-strip-output-markup                                        202         
0.0115120000  5.699...e-05
-proof-set-overlay-arrow                                         204         
0.0110750000  5.428...e-05
-pg-hint                                                         1           
0.010877      0.010877
-scomint-send-input                                              206         
0.0096710000  4.694...e-05
-skip-chars-forward                                              917         
0.0088720000  9.675...e-06
-string-match                                                    3879        
0.0085580000  2.206...e-06
-proof-string-match                                              1114        
0.0083859999  7.527...e-06
-re-search-forward                                               1084        
0.0076900000  7.094...e-06
-proof-shell-process-urgent-messages                             206         
0.0072959999  3.541...e-05
-proof-shell-handle-immediate-output                             206         
0.0069180000  3.358...e-05
-span-set-endpoints                                              409         
0.0060590000  1.481...e-05
-isar-preprocessing                                              206         
0.0057689999  2.800...e-05
-isar-string-wrapping                                            408         
0.0057090000  1.399...e-05
-move-overlay                                                    410         
0.0048900000  1.192...e-05
-insert                                                          718         
0.0043259999  6.025...e-06
-proof-set-queue-start                                           204         
0.0039419999  1.932...e-05
-proof-next-element-id                                           204         
0.0038919999  1.907...e-05
-proof-re-search-forward-safe                                    824         
0.0038370000  4.656...e-06
-proof-script-delete-secondary-spans                             1           
0.003218      0.003218
-span-delete-spans                                               1           
0.003215      0.003215
-span-mapc-spans                                                 1           
0.003214      0.003214
-span-set-start                                                  204         
0.003181      1.559...e-05
-pg-add-to-input-history                                         204         
0.0030040000  1.472...e-05
-isar-goal-command-p                                             204         
0.0029059999  1.424...e-05
-span-make                                                       608         
0.0029059999  4.779...e-06
-span-end                                                        928         
0.0026819999  2.890...e-06
-proof-get-name-from-goal                                        100         
0.0024339999  2.433...e-05
-proof-string-match-safe                                         204         
0.0024330000  1.192...e-05
-overlay-put                                                     4970        
0.0023869999  4.802...e-07
-span-delete                                                     304         
0.002174      7.151...e-06
-pg-span-name                                                    102         
0.00199       1.950...e-05
-proof-element-id                                                204         
0.0019369999  9.495...e-06
-span-start                                                      604         
0.0018080000  2.993...e-06
-replace-match                                                   1009        
0.0016779999  1.663...e-06
-skip-chars-backward                                             207         
0.0015489999  7.483...e-06
-make-overlay                                                    609         
0.0014599999  2.397...e-06
-proof-shell-slurp-comments                                      207         
0.0012420000  6.000...e-06
-delete-overlay                                                  306         
0.0011619999  3.797...e-06
-font-lock-fontify-region                                        2           
0.000982      0.000491
-font-lock-default-fontify-region                                2           
0.0009649999  0.0004824999
-set-marker                                                      1853        
0.0009280000  5.008...e-07
-proof-shell-handle-delayed-output                               1           
0.000917      0.000917
-proof-shell-display-output-as-response                          1           
0.000892      0.000892
-pg-response-display                                             1           
0.000888      0.000888
-font-lock-fontify-keywords-region                               2           
0.000882      0.000441
-proof-display-and-keep-buffer                                   1           
0.00087       0.00087
-kill-buffer                                                     4           
0.000787      0.00019675
-proof-next-element-count                                        204         
0.0006769999  3.318...e-06
-spans-at-region-prop                                            1           
0.000641      0.000641
-overlay-end                                                     1129        
0.0004920000  4.357...e-07
-match-string                                                    308         
0.0004569999  1.483...e-06
-marker-position                                                 1237        
0.0004520000  3.654...e-07
-buffer-live-p                                                   723         
0.0003860000  5.338...e-07
-isar-shell-adjust-line-width                                    206         
0.0003380000  1.640...e-06
-get-buffer-process                                              212         
0.0002819999  1.330...e-06
-proof-extend-queue                                              1           
0.000254      0.000254
-proof-shell-process-urgent-message                              1           
0.00024       0.00024
-overlay-start                                                   605         
0.0002349999  3.884...e-07
-proof-add-to-queue                                              1           
0.000231      0.000231
-proof-only-whitespace-to-locked-region-p                        1           
0.000192      0.000192
-isar-font-lock-fontify-syntactically-region                     2           
0.000184      9.2e-05
-nreverse                                                        209         
0.0001679999  8.038...e-07
-proof-shell-process-urgent-message-default                      1           
0.000163      0.000163
-proof-get-window-for-buffer                                     1           
0.000161      0.000161
-proof-re-search-backward                                        1           
0.000157      0.000157
-re-search-backward                                              1           
8.5e-05       8.5e-05
-pg-response-display-with-face                                   2           
7.999...e-05  3.999...e-05
-proof-queue-or-locked-end                                       6           
7.2e-05       1.2e-05
-pg-response-maybe-erase                                         2           
5.9e-05       2.95e-05
-proof-shell-ready-prover                                        2           
5.3e-05       2.65e-05
-proof-looking-at-safe                                           8           
5.1e-05       6.375e-06
-proof-shell-start                                               2           
4.6e-05       2.3e-05
-proof-unprocessed-begin                                         5           
4.3e-05       8.6e-06
-isar-match-nesting                                              1           
4.3e-05       4.3e-05
-proof-activate-scripting                                        1           
4.2e-05       4.2e-05
-proof-shell-live-buffer                                         2           
3.9e-05       1.95e-05
-proof-looking-at                                                7           
3.6e-05       5.142...e-06
-proof-re-search-forward                                         2           
3.500...e-05  1.750...e-05
-proof-detach-queue                                              1           
3.1e-05       3.1e-05
-scomint-check-proc                                              2           
2.9e-05       1.45e-05
-span-detach                                                     1           
2.8e-05       2.8e-05
-proof-maybe-follow-locked-end                                   1           
2.7e-05       2.7e-05
-proof-locked-region-full-p                                      1           
2.7e-05       2.7e-05
-proof-grab-lock                                                 1           
2.4e-05       2.4e-05
-font-lock-fontify-syntactically-region                          1           
2.3e-05       2.3e-05
-font-lock-mode                                                  1           
2e-05         2e-05
-font-lock-unfontify-region                                      2           
1.7e-05       8.5e-06
-font-lock-extend-jit-lock-region-after-change                   3           
1.1e-05       3.666...e-06
-proof-locked-region-empty-p                                     1           
1e-05         1e-05
-proof-set-queue-endpoints                                       1           
1e-05         1e-05
-proof-shell-strip-eager-annotations                             1           
1e-05         1e-05
-font-lock-default-unfontify-region                              2           
7.000...e-06  3.500...e-06
-proof-associated-windows                                        1           
7e-06         7e-06
-proof-shell-should-be-silent                                    1           
6e-06         6e-06
-font-lock-default-function                                      1           
5e-06         5e-06
-proof-shell-stop-silent-item                                    1           
4e-06         4e-06
-proof-shell-start-silent-item                                   1           
4e-06         4e-06
-proof-script-next-command-advance                               1           
4e-06         4e-06
-proof-shell-action-list-item                                    2           
3e-06         1.5e-06
-font-lock-set-defaults                                          2           
3e-06         1.5e-06
-proof-associated-buffers                                        2           
2e-06         1e-06
-font-lock-extend-region-wholelines                              2           
2e-06         1e-06
-font-lock-extend-region-multiline                               2           
2e-06         1e-06
-proof-minibuffer-message                                        1           
1e-06         1e-06
-proof-shell-set-silent                                          1           
1e-06         1e-06
-proof-shell-clear-silent                                        1           
1e-06         1e-06
-proof-pbp-focus-on-first-goal                                   1           
1e-06         1e-06
-proof-release-lock                                              1           
1e-06         1e-06
-pg-finish-tracing-display                                       1           
1e-06         1e-06
-nconc                                                           1           
1e-06         1e-06
-process-status                                                  2           
0.0           0.0
-
-
------------------------------------------------------------------
-
-Non-interactive:  (progn (proof-process-buffer) (proof-shell-wait))
-
-### 4.368s elapsed time, 0.457s cpu time, 0.094s GC time
-
-proof-shell-wait                                                1           
4.484316      4.484316
-accept-process-output                                           73          
3.8998559999  0.0534226849
-redisplay                                                       172         
3.7155909999  0.0216022732
-scomint-output-filter                                           206         
3.5921849999  0.0174377912
-proof-shell-filter                                              206         
3.5562370000  0.0172632864
-proof-shell-filter-manage-output                                206         
3.5167620000  0.0170716601
-proof-shell-exec-loop                                           206         
3.5079160000  0.0170287184
-mapc                                                            208         
3.4532319999  0.0166020769
-proof-shell-invoke-callback                                     206         
3.4492200000  0.0167437864
-proof-done-advancing                                            204         
3.4481900000  0.0169028921
-proof-done-advancing-other                                      104         
3.2636610000  0.0313813557
-pg-add-element                                                  204         
3.2225049999  0.0157965931
-proof-debug                                                     99          
3.1809079999  0.0321303838
-pg-autotest-message                                             99          
3.1785960000  0.0321070303
-proof-process-buffer                                            1           
0.098653      0.098653
-proof-assert-until-point-interactive                            1           
0.098513      0.098513
-proof-assert-until-point                                        1           
0.098508      0.098508
-proof-done-advancing-save                                       100         
0.0861289999  0.0008612899
-pg-set-span-helphighlights                                      304         
0.0751920000  0.0002473421
-proof-make-goalsave                                             100         
0.074799      0.00074799
-proof-assert-semis                                              1           
0.072791      0.072791
-proof-shell-insert-action-item                                  206         
0.0508700000  0.0002469417
-proof-shell-insert                                              206         
0.0500239999  0.0002428349
-proof-set-locked-end                                            204         
0.0447420000  0.0002193235
-proof-semis-to-vanillas                                         1           
0.043912      0.043912
-proof-set-locked-endpoints                                      204         
0.0438019999  0.0002147156
-proof-set-overlay-arrow                                         204         
0.039986      0.0001960098
-span-set-property                                               4968        
0.0389520000  7.840...e-06
-isar-command-wrapping                                           204         
0.0359119999  0.0001760392
-isar-global-save-command-p                                      100         
0.0357419999  0.0003574199
-span-at-before                                                  200         
0.033411      0.0001670550
-proof-script-delete-secondary-spans                             1           
0.02853       0.02853
-span-delete-spans                                               1           
0.028527      0.028527
-span-mapc-spans                                                 1           
0.028523      0.028523
-pg-add-proof-element                                            100         
0.0274090000  0.0002740900
-proof-segment-up-to-using-cache                                 1           
0.025547      0.025547
-proof-segment-up-to                                             1           
0.025512      0.025512
-proof-segment-up-to-parser                                      1           
0.025509      0.025509
-proof-script-generic-parse-cmdstart                             204         
0.023117      0.0001133186
-replace-regexp-in-string                                        612         
0.0151239999  2.471...e-05
-pg-last-output-displayform                                      304         
0.0137170000  4.512...e-05
-goto-char                                                       3399        
0.0134079999  3.944...e-06
-proof-buffer-syntactic-context                                  411         
0.0133350000  3.244...e-05
-proof-buffer-syntactic-context-emulate                          411         
0.0125479999  3.053...e-05
-proof-shell-strip-output-markup                                 202         
0.0118950000  5.888...e-05
-isar-strip-output-markup                                        202         
0.01126       5.574...e-05
-scomint-send-input                                              206         
0.0089030000  4.321...e-05
-skip-chars-forward                                              917         
0.0077629999  8.465...e-06
-proof-string-match                                              1114        
0.0076579999  6.874...e-06
-string-match                                                    3859        
0.0065880000  1.707...e-06
-isar-positions-of                                               204         
0.0063140000  3.095...e-05
-proof-shell-handle-immediate-output                             206         
0.0061669999  2.993...e-05
-proof-shell-process-urgent-messages                             206         
0.006087      2.954...e-05
-re-search-forward                                               1048        
0.0060810000  5.802...e-06
-isar-string-wrapping                                            408         
0.0055940000  1.371...e-05
-isar-preprocessing                                              206         
0.0048040000  2.332...e-05
-insert                                                          718         
0.0036899999  5.139...e-06
-proof-re-search-forward-safe                                    824         
0.0034060000  4.133...e-06
-proof-next-element-id                                           204         
0.0033579999  1.646...e-05
-span-set-endpoints                                              409         
0.0031649999  7.738...e-06
-proof-set-queue-start                                           204         
0.0029729999  1.457...e-05
-span-delete                                                     304         
0.0027480000  9.039...e-06
-isar-goal-command-p                                             204         
0.0027019999  1.324...e-05
-span-make                                                       608         
0.0026310000  4.327...e-06
-span-end                                                        926         
0.0024999999  2.699...e-06
-overlay-put                                                     4977        
0.0024500000  4.922...e-07
-pg-add-to-input-history                                         204         
0.002432      1.192...e-05
-proof-string-match-safe                                         204         
0.0024030000  1.177...e-05
-proof-get-name-from-goal                                        100         
0.0022690000  2.269...e-05
-span-set-start                                                  204         
0.0022479999  1.101...e-05
-move-overlay                                                    413         
0.0020689999  5.009...e-06
-pg-span-name                                                    102         
0.0019750000  1.936...e-05
-span-start                                                      604         
0.0016740000  2.771...e-06
-replace-match                                                   1008        
0.0015839999  1.571...e-06
-span-live-p                                                     408         
0.0015820000  3.877...e-06
-proof-element-id                                                204         
0.0015369999  7.534...e-06
-span-property                                                   2226        
0.0014979999  6.729...e-07
-make-overlay                                                    609         
0.0012819999  2.105...e-06
-delete-overlay                                                  309         
0.0012420000  4.019...e-06
-skip-chars-backward                                             206         
0.0011609999  5.635...e-06
-proof-shell-slurp-comments                                      207         
0.0011250000  5.434...e-06
-set-marker                                                      1853        
0.0009220000  4.975...e-07
-pg-processing-complete-hint                                     1           
0.000625      0.000625
-proof-next-element-count                                        204         
0.0005830000  2.857...e-06
-spans-at-region-prop                                            1           
0.000573      0.000573
-proof-shell-handle-delayed-output                               1           
0.000495      0.000495
-proof-shell-display-output-as-response                          1           
0.000478      0.000478
-pg-response-display                                             1           
0.000474      0.000474
-proof-display-and-keep-buffer                                   1           
0.000463      0.000463
-overlay-end                                                     1126        
0.0004170000  3.703...e-07
-marker-position                                                 1236        
0.0004100000  3.317...e-07
-match-string                                                    308         
0.0003959999  1.285...e-06
-buffer-live-p                                                   725         
0.0003580000  4.937...e-07
-isar-shell-adjust-line-width                                    206         
0.0003170000  1.538...e-06
-proof-extend-queue                                              1           
0.000293      0.000293
-proof-add-to-queue                                              1           
0.000266      0.000266
-get-buffer-process                                              209         
0.0002369999  1.133...e-06
-overlay-start                                                   604         
0.0002369999  3.923...e-07
-proof-shell-process-urgent-message                              1           
0.000232      0.000232
-proof-shell-process-urgent-message-default                      1           
0.000169      0.000169
-font-lock-fontify-region                                        1           
0.000167      0.000167
-font-lock-default-fontify-region                                1           
0.00016       0.00016
-nreverse                                                        209         
0.0001489999  7.129...e-07
-proof-get-window-for-buffer                                     1           
0.000124      0.000124
-font-lock-fontify-keywords-region                               1           
0.000117      0.000117
-proof-only-whitespace-to-locked-region-p                        1           
0.000108      0.000108
-proof-re-search-backward                                        1           
8.2e-05       8.2e-05
-pg-response-display-with-face                                   2           
8.2e-05       4.1e-05
-re-search-backward                                              1           
6.7e-05       6.7e-05
-pg-response-maybe-erase                                         2           
5.900...e-05  2.950...e-05
-font-lock-mode                                                  3           
5.8e-05       1.933...e-05
-proof-queue-or-locked-end                                       6           
5.600...e-05  9.333...e-06
-proof-shell-ready-prover                                        2           
4.6e-05       2.3e-05
-proof-looking-at-safe                                           8           
4.2e-05       5.25e-06
-proof-shell-start                                               2           
3.700...e-05  1.850...e-05
-proof-maybe-follow-locked-end                                   1           
3.5e-05       3.5e-05
-proof-shell-live-buffer                                         2           
3.1e-05       1.55e-05
-proof-activate-scripting                                        1           
2.8e-05       2.8e-05
-proof-looking-at                                                7           
2.8e-05       4e-06
-proof-grab-lock                                                 1           
2.7e-05       2.7e-05
-proof-unprocessed-begin                                         3           
2.399...e-05  8e-06
-proof-shell-should-be-silent                                    1           
2.2e-05       2.2e-05
-proof-detach-queue                                              1           
1.8e-05       1.8e-05
-scomint-check-proc                                              2           
1.7e-05       8.5e-06
-font-lock-fontify-syntactically-region                          1           
1.7e-05       1.7e-05
-isar-font-lock-fontify-syntactically-region                     1           
1.6e-05       1.6e-05
-span-detach                                                     1           
1.5e-05       1.5e-05
-font-lock-default-function                                      3           
1.400...e-05  4.666...e-06
-proof-shell-strip-eager-annotations                             1           
1.1e-05       1.1e-05
-font-lock-extend-jit-lock-region-after-change                   3           
1e-05         3.333...e-06
-proof-set-queue-endpoints                                       1           
8e-06         8e-06
-font-lock-unfontify-region                                      1           
7e-06         7e-06
-proof-re-search-forward                                         1           
6e-06         6e-06
-proof-associated-windows                                        1           
6e-06         6e-06
-proof-script-next-command-advance                               1           
6e-06         6e-06
-proof-shell-stop-silent-item                                    1           
4e-06         4e-06
-proof-shell-start-silent-item                                   1           
4e-06         4e-06
-proof-shell-action-list-item                                    2           
3e-06         1.5e-06
-proof-shell-clear-silent                                        1           
3e-06         3e-06
-process-status                                                  2           
2e-06         1e-06
-font-lock-set-defaults                                          1           
2e-06         2e-06
-proof-associated-buffers                                        2           
1e-06         5e-07
-proof-minibuffer-message                                        1           
1e-06         1e-06
-proof-shell-set-silent                                          1           
1e-06         1e-06
-proof-release-lock                                              1           
1e-06         1e-06
-pg-finish-tracing-display                                       1           
1e-06         1e-06
-nconc                                                           1           
1e-06         1e-06
-font-lock-extend-region-wholelines                              1           
1e-06         1e-06
-font-lock-default-unfontify-region                              1           
1e-06         1e-06
-proof-pbp-focus-on-first-goal                                   1           
0.0           0.0
-font-lock-extend-region-multiline                               1           
0.0           0.0
-
diff --git a/etc/isar/trace_simp.thy b/etc/isar/trace_simp.thy
deleted file mode 100644
index de651e5..0000000
--- a/etc/isar/trace_simp.thy
+++ /dev/null
@@ -1,20 +0,0 @@
-(* This is a test of tracing output for Isabelle. *)
-
-theory trace_simp imports Main begin
-
-text {*
-  this produces massive amount of simplifier trace, but terminates
-  eventually: *}
-
-declare [[simp_trace]]
-ML {* quick_and_dirty := false *}
-
-datatype ord = Zero | Succ ord | Limit "nat => ord"
-
-(* testing comment here *)
-
-text {* this one loops forever *}
-
-lemma "ALL x. f x = g(f(g(x))) ==> f [] = f [] @ []"
-  apply simp
-
diff --git a/generic/pg-custom.el b/generic/pg-custom.el
index 0c67c7a..f7a853c 100644
--- a/generic/pg-custom.el
+++ b/generic/pg-custom.el
@@ -3,7 +3,7 @@
 ;; This file is part of Proof General.
 
 ;; Portions © Copyright 1994-2012  David Aspinall and University of Edinburgh
-;; Portions © Copyright 2003, 2012, 2014  Free Software Foundation, Inc.
+;; Portions © Copyright 2003, 2012, 2014, 2021  Free Software Foundation, Inc.
 ;; Portions © Copyright 2001-2017  Pierre Courtieu
 ;; Portions © Copyright 2010, 2016  Erik Martin-Dorel
 ;; Portions © Copyright 2011-2013, 2016-2017  Hendrik Tews
@@ -18,7 +18,7 @@
 ;; Prover specific settings and user options.
 ;;
 ;; The settings defined here automatically use the current proof
-;; assistant symbol as a prefix, i.e.  isar-favourites, coq-favourites,
+;; assistant symbol as a prefix, i.e.  coq-favourites,
 ;; or whatever will be defined on evaluation.
 ;;
 ;; This file is loaded only by mode stubs defined in `proof-site.el',
@@ -117,7 +117,7 @@ For example for coq on Windows you might need something 
like:
 
 (defpgcustom quit-timeout
   (cond
-   ((eq proof-assistant-symbol 'isar)    45)
+   ;; ((eq proof-assistant-symbol 'isar)    45)
    (t                                   5))
   "The number of seconds to wait after sending `proof-shell-quit-cmd'.
 After this timeout, the proof shell will be killed off more rudely.
@@ -180,7 +180,7 @@ Currently this setting is UNIMPLEMENTED, changes have no 
effect."
 
 (defpgcustom one-command-per-line
   (cond
-   ((eq proof-assistant-symbol 'isar)  nil)
+   ;; ((eq proof-assistant-symbol 'isar)  nil)
    (t t))
   "*If non-nil, format for newlines after each command in a script."
   :type 'boolean
@@ -195,7 +195,7 @@ Currently this setting is UNIMPLEMENTED, changes have no 
effect."
   :set 'proof-set-value
   :group 'proof-user-options)
 
-(defpgcustom unicode-tokens-enable (eq proof-assistant-symbol 'isar)
+(defpgcustom unicode-tokens-enable nil ;; (eq proof-assistant-symbol 'isar)
   "*Non-nil for using Unicode token input mode in Proof General."
   :type 'boolean
   :set 'proof-set-value
diff --git a/generic/pg-response.el b/generic/pg-response.el
index 37f629a..7704df4 100644
--- a/generic/pg-response.el
+++ b/generic/pg-response.el
@@ -3,7 +3,7 @@
 ;; This file is part of Proof General.
 
 ;; Portions © Copyright 1994-2012  David Aspinall and University of Edinburgh
-;; Portions © Copyright 2003-2019  Free Software Foundation, Inc.
+;; Portions © Copyright 2003-2021  Free Software Foundation, Inc.
 ;; Portions © Copyright 2001-2017  Pierre Courtieu
 ;; Portions © Copyright 2010, 2016  Erik Martin-Dorel
 ;; Portions © Copyright 2011-2013, 2016-2017  Hendrik Tews
@@ -377,7 +377,7 @@ Returns non-nil if response buffer was cleared."
   ;; NB: this displays an empty buffer sometimes when it's not
   ;; so useful.  It _is_ useful if the user has requested to
   ;; see the proof state and there is none
-  ;; (Isabelle/Isar displays nothing: might be better if it did).
+  ;; (Isabelle/Isar displayed nothing: might be better if it did).
   (proof-display-and-keep-buffer proof-response-buffer))
 
 ;;
diff --git a/generic/proof-config.el b/generic/proof-config.el
index 2f4be4a..d3f2f19 100644
--- a/generic/proof-config.el
+++ b/generic/proof-config.el
@@ -1449,8 +1449,7 @@ This is an experimental feature, currently 
work-in-progress."
   "Splits strings which match `proof-shell-theorem-dependency-list-regexp'.
 Used as an argument to `split-string'; nil defaults to whitespace.
 \(This setting is necessary for provers which allow whitespace in
-the names of theorems/definitions/constants), see setting for
-Isabelle in isa/isa.el and isar/isar.el."
+the names of theorems/definitions/constants)."
   :type '(choice (const nil) regexp)
   :group 'proof-shell)
 
diff --git a/generic/proof-depends.el b/generic/proof-depends.el
index 2d3a095..0024ca0 100644
--- a/generic/proof-depends.el
+++ b/generic/proof-depends.el
@@ -89,7 +89,7 @@ Called from `proof-done-advancing' when a save is processed 
and
   (span-set-property gspan 'dependencies
                     ;; Ancestors of NAME are in the second component.
                     ;; FIXME: for now we ignore the first component:
-                    ;; NAME may not be enough [Isar allows proof regions
+                    ;; NAME may not be enough [e.g. Isar allowed proof regions
                     ;; with multiple names, which are reported in dep'c'y
                     ;; output].
                     (cdr proof-last-theorem-dependencies))
diff --git a/generic/proof-script.el b/generic/proof-script.el
index 04868f5..5e03347 100644
--- a/generic/proof-script.el
+++ b/generic/proof-script.el
@@ -749,7 +749,7 @@ Each span has a 'type property, one of:
 (defun pg-last-output-displayform ()
   "Return displayable form of `proof-shell-last-output'.
 This is used to annotate the buffer with the result of proof steps."
-  ;; NOTE: Isabelle/Isar uses urgent messages (sigh) in its ordinary output.
+  ;; NOTE: Isabelle/Isar used urgent messages (sigh) in its ordinary output.
   ;; ("Successful attempt...").  This loses here.
   (if (string= proof-shell-last-output "") ""
     (let* ((text (proof-shell-strip-output-markup
@@ -1409,7 +1409,7 @@ that is not yet documented here, this function
               ;; don't amalgamate unless the nesting depth is 0,
               ;; i.e. we're in a top-level proof.
               ;; This assumes prover keeps history for nested proofs.
-              ;; (True for Isabelle/Isar).
+              ;; (was true for Isabelle/Isar).
               (eq proof-nesting-depth 0)
             t))
       (proof-done-advancing-save span))
@@ -1487,9 +1487,10 @@ Besides stuff that is not yet documented here, this 
function
 - enters some commands and their spans in some database (with for
   me unknown purpose)"
   (unless (or (eq proof-shell-proof-completed 1)
-             (eq proof-assistant-symbol 'isar))
+             ;; (eq proof-assistant-symbol 'isar)
+             )
     ;; We expect saves to succeed only for recently completed top-level proofs.
-    ;; NB: not true in Isar, because save commands can perform proof.
+    ;; NB: Wasn't true in Isar, because save commands could perform proof.
     ;; Note: not true in Coq either, if there is a command (eg. a Check)
     ;; between the tactic that finished the proof and the Qed.
     (proof-debug
diff --git a/generic/proof-shell.el b/generic/proof-shell.el
index d706fd5..37acd2d 100644
--- a/generic/proof-shell.el
+++ b/generic/proof-shell.el
@@ -376,7 +376,7 @@ process command."
              proof-shell-process-connection-type)
 
             ;; Trac #324, Trac #284: default with Emacs 23 variants
-            ;; is t.  nil gives marginally better results with "make
+            ;; is t.  nil gave marginally better results with "make
             ;; profile.isar" on homogenous test input.  Top-level
             ;; Emacs loop causes slow down on Mac and Windows ports.
             (process-adaptive-read-buffering nil)
diff --git a/generic/proof-site.el b/generic/proof-site.el
index 4a111b7..301128a 100644
--- a/generic/proof-site.el
+++ b/generic/proof-site.el
@@ -44,7 +44,6 @@
     '(
       ;; Main instances of PG.
 
-      (isar "Isabelle" "thy")
       (coq "Coq" "v" nil (".vo" ".glob"))
       (easycrypt "EasyCrypt" "ec" "\\.eca?\\'")
       (phox "PhoX" "phx" nil (".phi" ".pho"))
diff --git a/generic/proof-useropts.el b/generic/proof-useropts.el
index 1432776..9e80691 100644
--- a/generic/proof-useropts.el
+++ b/generic/proof-useropts.el
@@ -3,7 +3,7 @@
 ;; This file is part of Proof General.
 
 ;; Portions © Copyright 1994-2012  David Aspinall and University of Edinburgh
-;; Portions © Copyright 2003-2018  Free Software Foundation, Inc.
+;; Portions © Copyright 2003-2021  Free Software Foundation, Inc.
 ;; Portions © Copyright 2001-2017  Pierre Courtieu
 ;; Portions © Copyright 2010, 2016  Erik Martin-Dorel
 ;; Portions © Copyright 2011-2013, 2016-2017  Hendrik Tews
@@ -392,8 +392,8 @@ For example,
 
    ssh bigjobs
 
-Would cause Proof General to issue the command `ssh bigjobs isabelle'
-to start Isabelle remotely on our large compute server called `bigjobs'.
+Would cause Proof General to issue the command `ssh bigjobs coqtop'
+to start Coq remotely on our large compute server called `bigjobs'.
 
 The protocol used should be configured so that no user interaction
 \(passwords, or whatever) is required to get going.  For proper
diff --git a/isar/Example-Tokens.thy b/isar/Example-Tokens.thy
deleted file mode 100644
index 46c9a2c..0000000
--- a/isar/Example-Tokens.thy
+++ /dev/null
@@ -1,37 +0,0 @@
-(*
-      Example proof document for Isabelle/Isar Proof General,
-      using symbols.  
-      View and process this document with Unicode Tokens engaged.
-   
-      For a more exhaustive test of token display, visit the test
-      file etc/isar/TokensAcid.thy.  Check the FAQ for more advice.
-
-      $Id$
-*)
-
-theory "Example-Tokens" imports Main begin
-
-text {* Proper proof text -- \<^bitalic>naive version\<^eitalic>. *}
-
-theorem and_comms: "\<phi> \<and> \<psi> \<longrightarrow> \<psi> \<and> 
\<phi>"
-proof
-  assume "\<phi> \<and> \<psi>"
-  then show "\<psi> \<and> \<phi>"
-  proof
-    assume "\<psi>" and "\<phi>"
-    then show ?thesis ..
- qed
-qed
-
-text {* \<^bbold>Unstructured\<^ebold> proof script. *}
-
-theorem "\<phi>\<^isub>\<alpha> \<and> \<phi>\<^isub>\<beta> \<longrightarrow> 
\<phi>\<^isub>\<beta> \<and> \<phi>\<^isub>\<alpha>"
-  apply (rule impI)
-  apply (erule conjE)
-  apply (rule conjI)
-  apply assumption
-  apply assumption
-done
-
-end
-
diff --git a/isar/Example.thy b/isar/Example.thy
deleted file mode 100644
index 01b755d..0000000
--- a/isar/Example.thy
+++ /dev/null
@@ -1,33 +0,0 @@
-(*
-      Example proof document for Isabelle/Isar Proof General.
-   
-      $Id$
-*)
-
-
-theory Example imports Main begin
-
-text {* Proper proof text -- \textit{naive version}. *}
-
-theorem and_comms: "A & B --> B & A"
-proof
-  assume "A & B"
-  then show "B & A"
-  proof
-    assume "B" and "A"
-    then show ?thesis ..
- qed
-qed
-
-text {* Unstructured proof script. *}
-
-theorem  "A & B --> B & A"
-  apply (rule impI)
-  apply (erule conjE)
-  apply (rule conjI)
-  apply assumption
-  apply assumption
-done
-
-
-end
diff --git a/isar/README b/isar/README
deleted file mode 100644
index bd1e377..0000000
--- a/isar/README
+++ /dev/null
@@ -1,33 +0,0 @@
-Isabelle/Isar Proof General
-
-Written by Markus Wenzel and David Aspinall.
-
-Contributions from David von Oheimb, Stefan Berghofer, 
- Sebastian Skalberg, Gerwin Klein, Tjark Weber.
-
-Status:                    supported
-Maintainers:       David Aspinall, Makarius Wenzel
-Isabelle versions:  Isabelle2011 (earlier versions not guaranteed)
-Isabelle homepage:  http://www.cl.cam.ac.uk/Research/HVG/Isabelle/
-
-===========================================================================
-
-Isabelle/Isar Proof General has full support for multiple file
-scripting, with dependencies between theories communicated between
-Isabelle and Proof General.  
-
-There is full support for Unicode Tokens, using the Isabelle print
-mode for X Symbol tokens.  Many Isabelle theories have X Symbol syntax
-already defined and it's easy to add to your own theories.
-
-The script `interface' and file 'interface-setup.el' are used
-internally to start Isabelle Proof General via the 'isabelle' shell
-command.  This is the default way to invoke Proof General from the
-Isabelle perspective; it enables Isabelle to provide a consistent
-process and file-system environment, including the all-important
-isar-keywords.el file.
-
-========================================
-
-$Id$
-
diff --git a/isar/ex/Knaster_Tarski.thy b/isar/ex/Knaster_Tarski.thy
deleted file mode 100644
index ff7e77f..0000000
--- a/isar/ex/Knaster_Tarski.thy
+++ /dev/null
@@ -1,110 +0,0 @@
-(********** 
-  This file is copied from Isabelle2011.
- **********)
-
-(*  Title:      HOL/Isar_Examples/Knaster_Tarski.thy
-    Author:     Markus Wenzel, TU Muenchen
-
-Typical textbook proof example.
-*)
-
-header {* Textbook-style reasoning: the Knaster-Tarski Theorem *}
-
-theory Knaster_Tarski
-imports Main "~~/src/HOL/Library/Lattice_Syntax"
-begin
-
-
-subsection {* Prose version *}
-
-text {* According to the textbook \cite[pages
-  93--94]{davey-priestley}, the Knaster-Tarski fixpoint theorem is as
-  follows.\footnote{We have dualized the argument, and tuned the
-  notation a little bit.}
-
-  \textbf{The Knaster-Tarski Fixpoint Theorem.}  Let @{text L} be a
-  complete lattice and @{text "f: L \<rightarrow> L"} an order-preserving map.
-  Then @{text "\<Sqinter>{x \<in> L | f(x) \<le> x}"} is a fixpoint of @{text 
f}.
-
-  \textbf{Proof.} Let @{text "H = {x \<in> L | f(x) \<le> x}"} and @{text "a =
-  \<Sqinter>H"}.  For all @{text "x \<in> H"} we have @{text "a \<le> x"}, so 
@{text
-  "f(a) \<le> f(x) \<le> x"}.  Thus @{text "f(a)"} is a lower bound of @{text
-  H}, whence @{text "f(a) \<le> a"}.  We now use this inequality to prove
-  the reverse one (!) and thereby complete the proof that @{text a} is
-  a fixpoint.  Since @{text f} is order-preserving, @{text "f(f(a)) \<le>
-  f(a)"}.  This says @{text "f(a) \<in> H"}, so @{text "a \<le> f(a)"}. *}
-
-
-subsection {* Formal versions *}
-
-text {* The Isar proof below closely follows the original
-  presentation.  Virtually all of the prose narration has been
-  rephrased in terms of formal Isar language elements.  Just as many
-  textbook-style proofs, there is a strong bias towards forward proof,
-  and several bends in the course of reasoning. *}
-
-theorem Knaster_Tarski:
-  fixes f :: "'a::complete_lattice \<Rightarrow> 'a"
-  assumes "mono f"
-  shows "\<exists>a. f a = a"
-proof
-  let ?H = "{u. f u \<le> u}"
-  let ?a = "\<Sqinter>?H"
-  show "f ?a = ?a"
-  proof -
-    {
-      fix x
-      assume "x \<in> ?H"
-      then have "?a \<le> x" by (rule Inf_lower)
-      with `mono f` have "f ?a \<le> f x" ..
-      also from `x \<in> ?H` have "\<dots> \<le> x" ..
-      finally have "f ?a \<le> x" .
-    }
-    then have "f ?a \<le> ?a" by (rule Inf_greatest)
-    {
-      also presume "\<dots> \<le> f ?a"
-      finally (order_antisym) show ?thesis .
-    }
-    from `mono f` and `f ?a \<le> ?a` have "f (f ?a) \<le> f ?a" ..
-    then have "f ?a \<in> ?H" ..
-    then show "?a \<le> f ?a" by (rule Inf_lower)
-  qed
-qed
-
-text {* Above we have used several advanced Isar language elements,
-  such as explicit block structure and weak assumptions.  Thus we have
-  mimicked the particular way of reasoning of the original text.
-
-  In the subsequent version the order of reasoning is changed to
-  achieve structured top-down decomposition of the problem at the
-  outer level, while only the inner steps of reasoning are done in a
-  forward manner.  We are certainly more at ease here, requiring only
-  the most basic features of the Isar language. *}
-
-theorem Knaster_Tarski':
-  fixes f :: "'a::complete_lattice \<Rightarrow> 'a"
-  assumes "mono f"
-  shows "\<exists>a. f a = a"
-proof
-  let ?H = "{u. f u \<le> u}"
-  let ?a = "\<Sqinter>?H"
-  show "f ?a = ?a"
-  proof (rule order_antisym)
-    show "f ?a \<le> ?a"
-    proof (rule Inf_greatest)
-      fix x
-      assume "x \<in> ?H"
-      then have "?a \<le> x" by (rule Inf_lower)
-      with `mono f` have "f ?a \<le> f x" ..
-      also from `x \<in> ?H` have "\<dots> \<le> x" ..
-      finally show "f ?a \<le> x" .
-    qed
-    show "?a \<le> f ?a"
-    proof (rule Inf_lower)
-      from `mono f` and `f ?a \<le> ?a` have "f (f ?a) \<le> f ?a" ..
-      then show "f ?a \<in> ?H" ..
-    qed
-  qed
-qed
-
-end
diff --git a/isar/ex/PER.thy b/isar/ex/PER.thy
deleted file mode 100644
index 068885b..0000000
--- a/isar/ex/PER.thy
+++ /dev/null
@@ -1,269 +0,0 @@
-(********** 
-  This file is copied from Isabelle2011. 
-  It has been beautified with Tokens \<rightarrow> Replace Shortcuts
- **********)
-
-(*  Title:      HOL/ex/PER.thy
-    Author:     Oscar Slotosch and Markus Wenzel, TU Muenchen
-*)
-
-header {* Partial equivalence relations *}
-
-theory PER imports Main begin
-
-text {*
-  Higher-order quotients are defined over partial equivalence
-  relations (PERs) instead of total ones.  We provide axiomatic type
-  classes @{text "equiv < partial_equiv"} and a type constructor
-  @{text "'a quot"} with basic operations.  This development is based
-  on:
-
-  Oscar Slotosch: \emph{Higher Order Quotients and their
-  Implementation in Isabelle HOL.}  Elsa L. Gunter and Amy Felty,
-  editors, Theorem Proving in Higher Order Logics: TPHOLs '97,
-  Springer LNCS 1275, 1997.
-*}
-
-
-subsection {* Partial equivalence *}
-
-text {*
-  Type class @{text partial_equiv} models partial equivalence
-  relations (PERs) using the polymorphic @{text "\<sim> :: 'a \<Rightarrow> 'a 
\<Rightarrow>
-  bool"} relation, which is required to be symmetric and transitive,
-  but not necessarily reflexive.
-*}
-
-class partial_equiv =
-  fixes eqv :: "'a \<Rightarrow> 'a \<Rightarrow> bool"    (infixl "\<sim>" 50)
-  assumes partial_equiv_sym [elim?]: "x \<sim> y \<Longrightarrow> y \<sim> x"
-  assumes partial_equiv_trans [trans]: "x \<sim> y \<Longrightarrow> y \<sim> 
z \<Longrightarrow> x \<sim> z"
-
-text {*
-  \medskip The domain of a partial equivalence relation is the set of
-  reflexive elements.  Due to symmetry and transitivity this
-  characterizes exactly those elements that are connected with
-  \emph{any} other one.
-*}
-
-definition
-  "domain" :: "'a::partial_equiv set" where
-  "domain = {x. x \<sim> x}"
-
-lemma domainI [intro]: "x \<sim> x \<Longrightarrow> x \<in> domain"
-  unfolding domain_def by blast
-
-lemma domainD [dest]: "x \<in> domain \<Longrightarrow> x \<sim> x"
-  unfolding domain_def by blast
-
-theorem domainI' [elim?]: "x \<sim> y \<Longrightarrow> x \<in> domain"
-proof
-  assume xy: "x \<sim> y"
-  also from xy have "y \<sim> x" ..
-  finally show "x \<sim> x" .
-qed
-
-
-subsection {* Equivalence on function spaces *}
-
-text {*
-  The @{text \<sim>} relation is lifted to function spaces.  It is
-  important to note that this is \emph{not} the direct product, but a
-  structural one corresponding to the congruence property.
-*}
-
-instantiation "fun" :: (partial_equiv, partial_equiv) partial_equiv
-begin
-
-definition
-  eqv_fun_def: "f \<sim> g \<equiv> \<forall>x \<in> domain. \<forall>y \<in> 
domain. x \<sim> y \<longrightarrow> f x \<sim> g y"
-
-lemma partial_equiv_funI [intro?]:
-    "(\<And>x y. x \<in> domain \<Longrightarrow> y \<in> domain 
\<Longrightarrow> x \<sim> y \<Longrightarrow> f x \<sim> g y) 
\<Longrightarrow> f \<sim> g"
-  unfolding eqv_fun_def by blast
-
-lemma partial_equiv_funD [dest?]:
-    "f \<sim> g \<Longrightarrow> x \<in> domain \<Longrightarrow> y \<in> 
domain \<Longrightarrow> x \<sim> y \<Longrightarrow> f x \<sim> g y"
-  unfolding eqv_fun_def by blast
-
-text {*
-  The class of partial equivalence relations is closed under function
-  spaces (in \emph{both} argument positions).
-*}
-
-instance proof
-  fix f g h :: "'a::partial_equiv \<Rightarrow> 'b::partial_equiv"
-  assume fg: "f \<sim> g"
-  show "g \<sim> f"
-  proof
-    fix x y :: 'a
-    assume x: "x \<in> domain" and y: "y \<in> domain"
-    assume "x \<sim> y" then have "y \<sim> x" ..
-    with fg y x have "f y \<sim> g x" ..
-    then show "g x \<sim> f y" ..
-  qed
-  assume gh: "g \<sim> h"
-  show "f \<sim> h"
-  proof
-    fix x y :: 'a
-    assume x: "x \<in> domain" and y: "y \<in> domain" and "x \<sim> y"
-    with fg have "f x \<sim> g y" ..
-    also from y have "y \<sim> y" ..
-    with gh y y have "g y \<sim> h y" ..
-    finally show "f x \<sim> h y" .
-  qed
-qed
-
-end
-
-
-subsection {* Total equivalence *}
-
-text {*
-  The class of total equivalence relations on top of PERs.  It
-  coincides with the standard notion of equivalence, i.e.\ @{text "\<sim>
-  :: 'a \<Rightarrow> 'a \<Rightarrow> bool"} is required to be reflexive, 
transitive and
-  symmetric.
-*}
-
-class equiv =
-  assumes eqv_refl [intro]: "x \<sim> x"
-
-text {*
-  On total equivalences all elements are reflexive, and congruence
-  holds unconditionally.
-*}
-
-theorem equiv_domain [intro]: "(x::'a::equiv) \<in> domain"
-proof
-  show "x \<sim> x" ..
-qed
-
-theorem equiv_cong [dest?]: "f \<sim> g \<Longrightarrow> x \<sim> y 
\<Longrightarrow> f x \<sim> g (y::'a::equiv)"
-proof -
-  assume "f \<sim> g"
-  moreover have "x \<in> domain" ..
-  moreover have "y \<in> domain" ..
-  moreover assume "x \<sim> y"
-  ultimately show ?thesis ..
-qed
-
-
-subsection {* Quotient types *}
-
-text {*
-  The quotient type @{text "'a quot"} consists of all
-  \emph{equivalence classes} over elements of the base type @{typ 'a}.
-*}
-
-typedef 'a quot = "{{x. a \<sim> x}| a::'a::partial_equiv. True}"
-  by blast
-
-lemma quotI [intro]: "{x. a \<sim> x} \<in> quot"
-  unfolding quot_def by blast
-
-lemma quotE [elim]: "R \<in> quot \<Longrightarrow> (\<And>a. R = {x. a \<sim> 
x} \<Longrightarrow> C) \<Longrightarrow> C"
-  unfolding quot_def by blast
-
-text {*
-  \medskip Abstracted equivalence classes are the canonical
-  representation of elements of a quotient type.
-*}
-
-definition
-  eqv_class :: "('a::partial_equiv) \<Rightarrow> 'a quot"    
("\<lfloor>_\<rfloor>") where
-  "\<lfloor>a\<rfloor> = Abs_quot {x. a \<sim> x}"
-
-theorem quot_rep: "\<exists>a. A = \<lfloor>a\<rfloor>"
-proof (cases A)
-  fix R assume R: "A = Abs_quot R"
-  assume "R \<in> quot" then have "\<exists>a. R = {x. a \<sim> x}" by blast
-  with R have "\<exists>a. A = Abs_quot {x. a \<sim> x}" by blast
-  then show ?thesis by (unfold eqv_class_def)
-qed
-
-lemma quot_cases [cases type: quot]:
-  obtains (rep) a where "A = \<lfloor>a\<rfloor>"
-  using quot_rep by blast
-
-
-subsection {* Equality on quotients *}
-
-text {*
-  Equality of canonical quotient elements corresponds to the original
-  relation as follows.
-*}
-
-theorem eqv_class_eqI [intro]: "a \<sim> b \<Longrightarrow> 
\<lfloor>a\<rfloor> = \<lfloor>b\<rfloor>"
-proof -
-  assume ab: "a \<sim> b"
-  have "{x. a \<sim> x} = {x. b \<sim> x}"
-  proof (rule Collect_cong)
-    fix x show "(a \<sim> x) = (b \<sim> x)"
-    proof
-      from ab have "b \<sim> a" ..
-      also assume "a \<sim> x"
-      finally show "b \<sim> x" .
-    next
-      note ab
-      also assume "b \<sim> x"
-      finally show "a \<sim> x" .
-    qed
-  qed
-  then show ?thesis by (simp only: eqv_class_def)
-qed
-
-theorem eqv_class_eqD' [dest?]: "\<lfloor>a\<rfloor> = \<lfloor>b\<rfloor> 
\<Longrightarrow> a \<in> domain \<Longrightarrow> a \<sim> b"
-proof (unfold eqv_class_def)
-  assume "Abs_quot {x. a \<sim> x} = Abs_quot {x. b \<sim> x}"
-  then have "{x. a \<sim> x} = {x. b \<sim> x}" by (simp only: Abs_quot_inject 
quotI)
-  moreover assume "a \<in> domain" then have "a \<sim> a" ..
-  ultimately have "a \<in> {x. b \<sim> x}" by blast
-  then have "b \<sim> a" by blast
-  then show "a \<sim> b" ..
-qed
-
-theorem eqv_class_eqD [dest?]: "\<lfloor>a\<rfloor> = \<lfloor>b\<rfloor> 
\<Longrightarrow> a \<sim> (b::'a::equiv)"
-proof (rule eqv_class_eqD')
-  show "a \<in> domain" ..
-qed
-
-lemma eqv_class_eq' [simp]: "a \<in> domain \<Longrightarrow> 
(\<lfloor>a\<rfloor> = \<lfloor>b\<rfloor>) = (a \<sim> b)"
-  using eqv_class_eqI eqv_class_eqD' by (blast del: eqv_refl)
-
-lemma eqv_class_eq [simp]: "(\<lfloor>a\<rfloor> = \<lfloor>b\<rfloor>) = (a 
\<sim> (b::'a::equiv))"
-  using eqv_class_eqI eqv_class_eqD by blast
-
-
-subsection {* Picking representing elements *}
-
-definition
-  pick :: "'a::partial_equiv quot \<Rightarrow> 'a" where
-  "pick A = (SOME a. A = \<lfloor>a\<rfloor>)"
-
-theorem pick_eqv' [intro?, simp]: "a \<in> domain \<Longrightarrow> pick 
\<lfloor>a\<rfloor> \<sim> a"
-proof (unfold pick_def)
-  assume a: "a \<in> domain"
-  show "(SOME x. \<lfloor>a\<rfloor> = \<lfloor>x\<rfloor>) \<sim> a"
-  proof (rule someI2)
-    show "\<lfloor>a\<rfloor> = \<lfloor>a\<rfloor>" ..
-    fix x assume "\<lfloor>a\<rfloor> = \<lfloor>x\<rfloor>"
-    from this and a have "a \<sim> x" ..
-    then show "x \<sim> a" ..
-  qed
-qed
-
-theorem pick_eqv [intro, simp]: "pick \<lfloor>a\<rfloor> \<sim> 
(a::'a::equiv)"
-proof (rule pick_eqv')
-  show "a \<in> domain" ..
-qed
-
-theorem pick_inverse: "\<lfloor>pick A\<rfloor> = (A::'a::equiv quot)"
-proof (cases A)
-  fix a assume a: "A = \<lfloor>a\<rfloor>"
-  then have "pick A \<sim> a" by simp
-  then have "\<lfloor>pick A\<rfloor> = \<lfloor>a\<rfloor>" by simp
-  with a show ?thesis by simp
-qed
-
-end
diff --git a/isar/ex/README b/isar/ex/README
deleted file mode 100644
index c70f02f..0000000
--- a/isar/ex/README
+++ /dev/null
@@ -1,8 +0,0 @@
-This directory contains some example files copied from the Isabelle
-distribution.
-
-These are re-distributed with Proof General for convenience of trying
-out PG without needing a local installation of Isabelle.
-
-They can also be used as test cases.
-
diff --git a/isar/ex/Sqrt.thy b/isar/ex/Sqrt.thy
deleted file mode 100644
index 96164f9..0000000
--- a/isar/ex/Sqrt.thy
+++ /dev/null
@@ -1,90 +0,0 @@
-(*  Title:      HOL/ex/Sqrt.thy
-    Author:     Markus Wenzel, TU Muenchen
-*)
-
-header {*  Square roots of primes are irrational *}
-
-theory Sqrt
-imports Complex_Main "~~/src/HOL/Number_Theory/Primes"
-begin
-
-text {*
-  The square root of any prime number (including @{text 2}) is
-  irrational.
-*}
-
-theorem sqrt_prime_irrational:
-  assumes "prime (p::nat)"
-  shows "sqrt (real p) \<notin> \<rat>"
-proof
-  from `prime p` have p: "1 < p" by (simp add: prime_nat_def)
-  assume "sqrt (real p) \<in> \<rat>"
-  then obtain m n :: nat where
-      n: "n \<noteq> 0" and sqrt_rat: "\<bar>sqrt (real p)\<bar> = real m / 
real n"
-    and gcd: "gcd m n = 1" by (rule Rats_abs_nat_div_natE)
-  have eq: "m\<twosuperior> = p * n\<twosuperior>"
-  proof -
-    from n and sqrt_rat have "real m = \<bar>sqrt (real p)\<bar> * real n" by 
simp
-    then have "real (m\<twosuperior>) = (sqrt (real p))\<twosuperior> * real 
(n\<twosuperior>)"
-      by (auto simp add: power2_eq_square)
-    also have "(sqrt (real p))\<twosuperior> = real p" by simp
-    also have "\<dots> * real (n\<twosuperior>) = real (p * n\<twosuperior>)" 
by simp
-    finally show ?thesis ..
-  qed
-  have "p dvd m \<and> p dvd n"
-  proof
-    from eq have "p dvd m\<twosuperior>" ..
-    with `prime p` pos2 show "p dvd m" by (rule prime_dvd_power_nat)
-    then obtain k where "m = p * k" ..
-    with eq have "p * n\<twosuperior> = p\<twosuperior> * k\<twosuperior>" by 
(auto simp add: power2_eq_square mult_ac)
-    with p have "n\<twosuperior> = p * k\<twosuperior>" by (simp add: 
power2_eq_square)
-    then have "p dvd n\<twosuperior>" ..
-    with `prime p` pos2 show "p dvd n" by (rule prime_dvd_power_nat)
-  qed
-  then have "p dvd gcd m n" ..
-  with gcd have "p dvd 1" by simp
-  then have "p \<le> 1" by (simp add: dvd_imp_le)
-  with p show False by simp
-qed
-
-corollary "sqrt (real (2::nat)) \<notin> \<rat>"
-  by (rule sqrt_prime_irrational) (rule two_is_prime_nat)
-
-
-subsection {* Variations *}
-
-text {*
-  Here is an alternative version of the main proof, using mostly
-  linear forward-reasoning.  While this results in less top-down
-  structure, it is probably closer to proofs seen in mathematics.
-*}
-
-theorem
-  assumes "prime (p::nat)"
-  shows "sqrt (real p) \<notin> \<rat>"
-proof
-  from `prime p` have p: "1 < p" by (simp add: prime_nat_def)
-  assume "sqrt (real p) \<in> \<rat>"
-  then obtain m n :: nat where
-      n: "n \<noteq> 0" and sqrt_rat: "\<bar>sqrt (real p)\<bar> = real m / 
real n"
-    and gcd: "gcd m n = 1" by (rule Rats_abs_nat_div_natE)
-  from n and sqrt_rat have "real m = \<bar>sqrt (real p)\<bar> * real n" by 
simp
-  then have "real (m\<twosuperior>) = (sqrt (real p))\<twosuperior> * real 
(n\<twosuperior>)"
-    by (auto simp add: power2_eq_square)
-  also have "(sqrt (real p))\<twosuperior> = real p" by simp
-  also have "\<dots> * real (n\<twosuperior>) = real (p * n\<twosuperior>)" by 
simp
-  finally have eq: "m\<twosuperior> = p * n\<twosuperior>" ..
-  then have "p dvd m\<twosuperior>" ..
-  with `prime p` pos2 have dvd_m: "p dvd m" by (rule prime_dvd_power_nat)
-  then obtain k where "m = p * k" ..
-  with eq have "p * n\<twosuperior> = p\<twosuperior> * k\<twosuperior>" by 
(auto simp add: power2_eq_square mult_ac)
-  with p have "n\<twosuperior> = p * k\<twosuperior>" by (simp add: 
power2_eq_square)
-  then have "p dvd n\<twosuperior>" ..
-  with `prime p` pos2 have "p dvd n" by (rule prime_dvd_power_nat)
-  with dvd_m have "p dvd gcd m n" by (rule gcd_greatest_nat)
-  with gcd have "p dvd 1" by simp
-  then have "p \<le> 1" by (simp add: dvd_imp_le)
-  with p show False by simp
-qed
-
-end
diff --git a/isar/ex/Sqrt_Script.thy b/isar/ex/Sqrt_Script.thy
deleted file mode 100644
index 08634ea..0000000
--- a/isar/ex/Sqrt_Script.thy
+++ /dev/null
@@ -1,70 +0,0 @@
-(*  Title:      HOL/ex/Sqrt_Script.thy
-    Author:     Lawrence C Paulson, Cambridge University Computer Laboratory
-    Copyright   2001  University of Cambridge
-*)
-
-header {* Square roots of primes are irrational (script version) *}
-
-theory Sqrt_Script
-imports Complex_Main "~~/src/HOL/Number_Theory/Primes"
-begin
-
-text {*
-  \medskip Contrast this linear Isabelle/Isar script with Markus
-  Wenzel's more mathematical version.
-*}
-
-subsection {* Preliminaries *}
-
-lemma prime_nonzero:  "prime (p::nat) \<Longrightarrow> p \<noteq> 0"
-  by (force simp add: prime_nat_def)
-
-lemma prime_dvd_other_side:
-    "(n::nat) * n = p * (k * k) \<Longrightarrow> prime p \<Longrightarrow> p 
dvd n"
-  apply (subgoal_tac "p dvd n * n", blast dest: prime_dvd_mult_nat)
-  apply auto
-  done
-
-lemma reduction: "prime (p::nat) \<Longrightarrow>
-    0 < k \<Longrightarrow> k * k = p * (j * j) \<Longrightarrow> k < p * j 
\<and> 0 < j"
-  apply (rule ccontr)
-  apply (simp add: linorder_not_less)
-  apply (erule disjE)
-   apply (frule mult_le_mono, assumption)
-   apply auto
-  apply (force simp add: prime_nat_def)
-  done
-
-lemma rearrange: "(j::nat) * (p * j) = k * k \<Longrightarrow> k * k = p * (j 
* j)"
-  by (simp add: mult_ac)
-
-lemma prime_not_square:
-    "prime (p::nat) \<Longrightarrow> (\<And>k. 0 < k \<Longrightarrow> m * m 
\<noteq> p * (k * k))"
-  apply (induct m rule: nat_less_induct)
-  apply clarify
-  apply (frule prime_dvd_other_side, assumption)
-  apply (erule dvdE)
-  apply (simp add: nat_mult_eq_cancel_disj prime_nonzero)
-  apply (blast dest: rearrange reduction)
-  done
-
-
-subsection {* Main theorem *}
-
-text {*
-  The square root of any prime number (including @{text 2}) is
-  irrational.
-*}
-
-theorem prime_sqrt_irrational:
-    "prime (p::nat) \<Longrightarrow> x * x = real p \<Longrightarrow> 0 \<le> 
x \<Longrightarrow> x \<notin> \<rat>"
-  apply (rule notI)
-  apply (erule Rats_abs_nat_div_natE)
-  apply (simp del: real_of_nat_mult
-              add: abs_if divide_eq_eq prime_not_square real_of_nat_mult 
[symmetric])
-  done
-
-lemmas two_sqrt_irrational =
-  prime_sqrt_irrational [OF two_is_prime_nat]
-
-end
diff --git a/isar/ex/Tarski.thy b/isar/ex/Tarski.thy
deleted file mode 100644
index ec1247a..0000000
--- a/isar/ex/Tarski.thy
+++ /dev/null
@@ -1,927 +0,0 @@
-(********** 
-  This file is copied from Isabelle2011. 
-  It has been beautified with Tokens -> Replace Shortcuts
- **********)
-
-(*  Title:      HOL/ex/Tarski.thy
-    Author:     Florian Kammüller, Cambridge University Computer Laboratory
-*)
-
-header {* The Full Theorem of Tarski *}
-
-theory Tarski
-imports Main "~~/src/HOL/Library/FuncSet"
-begin
-
-text {*
-  Minimal version of lattice theory plus the full theorem of Tarski:
-  The fixedpoints of a complete lattice themselves form a complete
-  lattice.
-
-  Illustrates first-class theories, using the Sigma representation of
-  structures.  Tidied and converted to Isar by lcp.
-*}
-
-record 'a potype =
-  pset  :: "'a set"
-  order :: "('a * 'a) set"
-
-definition
-  monotone :: "['a \<Rightarrow> 'a, 'a set, ('a *'a)set] \<Rightarrow> bool" 
where
-  "monotone f A r = (\<forall>x\<in>A. \<forall>y\<in>A. (x, y): r 
\<longrightarrow> ((f x), (f y)) : r)"
-
-definition
-  least :: "['a \<Rightarrow> bool, 'a potype] \<Rightarrow> 'a" where
-  "least P po = (SOME x. x: pset po & P x &
-                       (\<forall>y \<in> pset po. P y \<longrightarrow> (x,y): 
order po))"
-
-definition
-  greatest :: "['a \<Rightarrow> bool, 'a potype] \<Rightarrow> 'a" where
-  "greatest P po = (SOME x. x: pset po & P x &
-                          (\<forall>y \<in> pset po. P y \<longrightarrow> 
(y,x): order po))"
-
-definition
-  lub  :: "['a set, 'a potype] \<Rightarrow> 'a" where
-  "lub S po = least (%x. \<forall>y\<in>S. (y,x): order po) po"
-
-definition
-  glb  :: "['a set, 'a potype] \<Rightarrow> 'a" where
-  "glb S po = greatest (%x. \<forall>y\<in>S. (x,y): order po) po"
-
-definition
-  isLub :: "['a set, 'a potype, 'a] \<Rightarrow> bool" where
-  "isLub S po = (%L. (L: pset po & (\<forall>y\<in>S. (y,L): order po) &
-                   (\<forall>z\<in>pset po. (\<forall>y\<in>S. (y,z): order 
po) \<longrightarrow> (L,z): order po)))"
-
-definition
-  isGlb :: "['a set, 'a potype, 'a] \<Rightarrow> bool" where
-  "isGlb S po = (%G. (G: pset po & (\<forall>y\<in>S. (G,y): order po) &
-                 (\<forall>z \<in> pset po. (\<forall>y\<in>S. (z,y): order 
po) \<longrightarrow> (z,G): order po)))"
-
-definition
-  "fix"    :: "[('a \<Rightarrow> 'a), 'a set] \<Rightarrow> 'a set" where
-  "fix f A  = {x. x: A & f x = x}"
-
-definition
-  interval :: "[('a*'a) set,'a, 'a ] \<Rightarrow> 'a set" where
-  "interval r a b = {x. (a,x): r & (x,b): r}"
-
-
-definition
-  Bot :: "'a potype \<Rightarrow> 'a" where
-  "Bot po = least (%x. True) po"
-
-definition
-  Top :: "'a potype \<Rightarrow> 'a" where
-  "Top po = greatest (%x. True) po"
-
-definition
-  PartialOrder :: "('a potype) set" where
-  "PartialOrder = {P. refl_on (pset P) (order P) & antisym (order P) &
-                       trans (order P)}"
-
-definition
-  CompleteLattice :: "('a potype) set" where
-  "CompleteLattice = {cl. cl: PartialOrder &
-                        (\<forall>S. S \<subseteq> pset cl \<longrightarrow> 
(\<exists>L. isLub S cl L)) &
-                        (\<forall>S. S \<subseteq> pset cl \<longrightarrow> 
(\<exists>G. isGlb S cl G))}"
-
-definition
-  CLF_set :: "('a potype * ('a \<Rightarrow> 'a)) set" where
-  "CLF_set = (SIGMA cl: CompleteLattice.
-            {f. f: pset cl \<rightarrow> pset cl & monotone f (pset cl) (order 
cl)})"
-
-definition
-  induced :: "['a set, ('a * 'a) set] \<Rightarrow> ('a *'a)set" where
-  "induced A r = {(a,b). a : A & b: A & (a,b): r}"
-
-
-definition
-  sublattice :: "('a potype * 'a set)set" where
-  "sublattice =
-      (SIGMA cl: CompleteLattice.
-          {S. S \<subseteq> pset cl &
-           \<lparr> pset = S, order = induced S (order cl) \<rparr>: 
CompleteLattice})"
-
-abbreviation
-  sublat :: "['a set, 'a potype] \<Rightarrow> bool"  ("_ \<guillemotleft>= _" 
[51,50]50) where
-  "S \<guillemotleft>= cl \<equiv> S : sublattice `` {cl}"
-
-definition
-  dual :: "'a potype \<Rightarrow> 'a potype" where
-  "dual po = \<lparr> pset = pset po, order = converse (order po) \<rparr>"
-
-locale S =
-  fixes cl :: "'a potype"
-    and A  :: "'a set"
-    and r  :: "('a * 'a) set"
-  defines A_def: "A \<equiv> pset cl"
-     and  r_def: "r \<equiv> order cl"
-
-locale PO = S +
-  assumes cl_po:  "cl : PartialOrder"
-
-locale CL = S +
-  assumes cl_co:  "cl : CompleteLattice"
-
-sublocale CL < PO
-apply (simp_all add: A_def r_def)
-apply unfold_locales
-using cl_co unfolding CompleteLattice_def by auto
-
-locale CLF = S +
-  fixes f :: "'a \<Rightarrow> 'a"
-    and P :: "'a set"
-  assumes f_cl:  "(cl,f) : CLF_set" (*was the equivalent "f : CLF_set``{cl}"*)
-  defines P_def: "P \<equiv> fix f A"
-
-sublocale CLF < CL
-apply (simp_all add: A_def r_def)
-apply unfold_locales
-using f_cl unfolding CLF_set_def by auto
-
-locale Tarski = CLF +
-  fixes Y     :: "'a set"
-    and intY1 :: "'a set"
-    and v     :: "'a"
-  assumes
-    Y_ss: "Y \<subseteq> P"
-  defines
-    intY1_def: "intY1 \<equiv> interval r (lub Y cl) (Top cl)"
-    and v_def: "v \<equiv> glb {x. ((%x: intY1. f x) x, x): induced intY1 r &
-                             x: intY1}
-                      \<lparr> pset=intY1, order=induced intY1 r\<rparr>"
-
-
-subsection {* Partial Order *}
-
-lemma (in PO) dual:
-  "PO (dual cl)"
-apply unfold_locales
-using cl_po
-unfolding PartialOrder_def dual_def
-by auto
-
-lemma (in PO) PO_imp_refl_on [simp]: "refl_on A r"
-apply (insert cl_po)
-apply (simp add: PartialOrder_def A_def r_def)
-done
-
-lemma (in PO) PO_imp_sym [simp]: "antisym r"
-apply (insert cl_po)
-apply (simp add: PartialOrder_def r_def)
-done
-
-lemma (in PO) PO_imp_trans [simp]: "trans r"
-apply (insert cl_po)
-apply (simp add: PartialOrder_def r_def)
-done
-
-lemma (in PO) reflE: "x \<in> A \<Longrightarrow> (x, x) \<in> r"
-apply (insert cl_po)
-apply (simp add: PartialOrder_def refl_on_def A_def r_def)
-done
-
-lemma (in PO) antisymE: "\<lbrakk> (a, b) \<in> r; (b, a) \<in> r \<rbrakk> 
\<Longrightarrow> a = b"
-apply (insert cl_po)
-apply (simp add: PartialOrder_def antisym_def r_def)
-done
-
-lemma (in PO) transE: "\<lbrakk> (a, b) \<in> r; (b, c) \<in> r\<rbrakk> 
\<Longrightarrow> (a,c) \<in> r"
-apply (insert cl_po)
-apply (simp add: PartialOrder_def r_def)
-apply (unfold trans_def, fast)
-done
-
-lemma (in PO) monotoneE:
-     "\<lbrakk> monotone f A r;  x \<in> A; y \<in> A; (x, y) \<in> r 
\<rbrakk> \<Longrightarrow> (f x, f y) \<in> r"
-by (simp add: monotone_def)
-
-lemma (in PO) po_subset_po:
-     "S \<subseteq> A \<Longrightarrow> \<lparr> pset = S, order = induced S r 
\<rparr> \<in> PartialOrder"
-apply (simp (no_asm) add: PartialOrder_def)
-apply auto
--- {* refl *}
-apply (simp add: refl_on_def induced_def)
-apply (blast intro: reflE)
--- {* antisym *}
-apply (simp add: antisym_def induced_def)
-apply (blast intro: antisymE)
--- {* trans *}
-apply (simp add: trans_def induced_def)
-apply (blast intro: transE)
-done
-
-lemma (in PO) indE: "\<lbrakk> (x, y) \<in> induced S r; S \<subseteq> A 
\<rbrakk> \<Longrightarrow> (x, y) \<in> r"
-by (simp add: add: induced_def)
-
-lemma (in PO) indI: "\<lbrakk> (x, y) \<in> r; x \<in> S; y \<in> S \<rbrakk> 
\<Longrightarrow> (x, y) \<in> induced S r"
-by (simp add: add: induced_def)
-
-lemma (in CL) CL_imp_ex_isLub: "S \<subseteq> A \<Longrightarrow> \<exists>L. 
isLub S cl L"
-apply (insert cl_co)
-apply (simp add: CompleteLattice_def A_def)
-done
-
-declare (in CL) cl_co [simp]
-
-lemma isLub_lub: "(\<exists>L. isLub S cl L) = isLub S cl (lub S cl)"
-by (simp add: lub_def least_def isLub_def some_eq_ex [symmetric])
-
-lemma isGlb_glb: "(\<exists>G. isGlb S cl G) = isGlb S cl (glb S cl)"
-by (simp add: glb_def greatest_def isGlb_def some_eq_ex [symmetric])
-
-lemma isGlb_dual_isLub: "isGlb S cl = isLub S (dual cl)"
-by (simp add: isLub_def isGlb_def dual_def converse_def)
-
-lemma isLub_dual_isGlb: "isLub S cl = isGlb S (dual cl)"
-by (simp add: isLub_def isGlb_def dual_def converse_def)
-
-lemma (in PO) dualPO: "dual cl \<in> PartialOrder"
-apply (insert cl_po)
-apply (simp add: PartialOrder_def dual_def refl_on_converse
-                 trans_converse antisym_converse)
-done
-
-lemma Rdual:
-     "\<forall>S. (S \<subseteq> A \<longrightarrow>( \<exists>L. isLub S 
\<lparr> pset = A, order = r\<rparr> L))
-      \<Longrightarrow> \<forall>S. (S \<subseteq> A \<longrightarrow> 
(\<exists>G. isGlb S \<lparr> pset = A, order = r\<rparr> G))"
-apply safe
-apply (rule_tac x = "lub {y. y \<in> A & (\<forall>k \<in> S. (y, k) \<in> r)}
-                      \<lparr>pset = A, order = r\<rparr> " in exI)
-apply (drule_tac x = "{y. y \<in> A & (\<forall>k \<in> S. (y,k) \<in> r) }" 
in spec)
-apply (drule mp, fast)
-apply (simp add: isLub_lub isGlb_def)
-apply (simp add: isLub_def, blast)
-done
-
-lemma lub_dual_glb: "lub S cl = glb S (dual cl)"
-by (simp add: lub_def glb_def least_def greatest_def dual_def converse_def)
-
-lemma glb_dual_lub: "glb S cl = lub S (dual cl)"
-by (simp add: lub_def glb_def least_def greatest_def dual_def converse_def)
-
-lemma CL_subset_PO: "CompleteLattice \<subseteq> PartialOrder"
-by (simp add: PartialOrder_def CompleteLattice_def, fast)
-
-lemmas CL_imp_PO = CL_subset_PO [THEN subsetD]
-
-(*declare CL_imp_PO [THEN PO.PO_imp_refl, simp]
-declare CL_imp_PO [THEN PO.PO_imp_sym, simp]
-declare CL_imp_PO [THEN PO.PO_imp_trans, simp]*)
-
-lemma (in CL) CO_refl_on: "refl_on A r"
-by (rule PO_imp_refl_on)
-
-lemma (in CL) CO_antisym: "antisym r"
-by (rule PO_imp_sym)
-
-lemma (in CL) CO_trans: "trans r"
-by (rule PO_imp_trans)
-
-lemma CompleteLatticeI:
-     "\<lbrakk> po \<in> PartialOrder; (\<forall>S. S \<subseteq> pset po 
\<longrightarrow> (\<exists>L. isLub S po L));
-         (\<forall>S. S \<subseteq> pset po \<longrightarrow> (\<exists>G. 
isGlb S po G))\<rbrakk>
-      \<Longrightarrow> po \<in> CompleteLattice"
-apply (unfold CompleteLattice_def, blast)
-done
-
-lemma (in CL) CL_dualCL: "dual cl \<in> CompleteLattice"
-apply (insert cl_co)
-apply (simp add: CompleteLattice_def dual_def)
-apply (fold dual_def)
-apply (simp add: isLub_dual_isGlb [symmetric] isGlb_dual_isLub [symmetric]
-                 dualPO)
-done
-
-lemma (in PO) dualA_iff: "pset (dual cl) = pset cl"
-by (simp add: dual_def)
-
-lemma (in PO) dualr_iff: "((x, y) \<in> (order(dual cl))) = ((y, x) \<in> 
order cl)"
-by (simp add: dual_def)
-
-lemma (in PO) monotone_dual:
-     "monotone f (pset cl) (order cl) 
-     \<Longrightarrow> monotone f (pset (dual cl)) (order(dual cl))"
-by (simp add: monotone_def dualA_iff dualr_iff)
-
-lemma (in PO) interval_dual:
-     "\<lbrakk> x \<in> A; y \<in> A\<rbrakk> \<Longrightarrow> interval r x y 
= interval (order(dual cl)) y x"
-apply (simp add: interval_def dualr_iff)
-apply (fold r_def, fast)
-done
-
-lemma (in PO) trans:
-  "(x, y) \<in> r \<Longrightarrow> (y, z) \<in> r \<Longrightarrow> (x, z) 
\<in> r"
-using cl_po apply (auto simp add: PartialOrder_def r_def)
-unfolding trans_def by blast 
-
-lemma (in PO) interval_not_empty:
-  "interval r a b \<noteq> {} \<Longrightarrow> (a, b) \<in> r"
-apply (simp add: interval_def)
-using trans by blast
-
-lemma (in PO) interval_imp_mem: "x \<in> interval r a b \<Longrightarrow> (a, 
x) \<in> r"
-by (simp add: interval_def)
-
-lemma (in PO) left_in_interval:
-     "\<lbrakk> a \<in> A; b \<in> A; interval r a b \<noteq> {} \<rbrakk> 
\<Longrightarrow> a \<in> interval r a b"
-apply (simp (no_asm_simp) add: interval_def)
-apply (simp add: PO_imp_trans interval_not_empty)
-apply (simp add: reflE)
-done
-
-lemma (in PO) right_in_interval:
-     "\<lbrakk> a \<in> A; b \<in> A; interval r a b \<noteq> {} \<rbrakk> 
\<Longrightarrow> b \<in> interval r a b"
-apply (simp (no_asm_simp) add: interval_def)
-apply (simp add: PO_imp_trans interval_not_empty)
-apply (simp add: reflE)
-done
-
-
-subsection {* sublattice *}
-
-lemma (in PO) sublattice_imp_CL:
-     "S \<guillemotleft>= cl  \<Longrightarrow> \<lparr> pset = S, order = 
induced S r \<rparr> \<in> CompleteLattice"
-by (simp add: sublattice_def CompleteLattice_def r_def)
-
-lemma (in CL) sublatticeI:
-     "\<lbrakk> S \<subseteq> A; \<lparr> pset = S, order = induced S r 
\<rparr> \<in> CompleteLattice \<rbrakk>
-      \<Longrightarrow> S \<guillemotleft>= cl"
-by (simp add: sublattice_def A_def r_def)
-
-lemma (in CL) dual:
-  "CL (dual cl)"
-apply unfold_locales
-using cl_co unfolding CompleteLattice_def
-apply (simp add: dualPO isGlb_dual_isLub [symmetric] isLub_dual_isGlb 
[symmetric] dualA_iff)
-done
-
-
-subsection {* lub *}
-
-lemma (in CL) lub_unique: "\<lbrakk> S \<subseteq> A; isLub S cl x; isLub S cl 
L\<rbrakk> \<Longrightarrow> x = L"
-apply (rule antisymE)
-apply (auto simp add: isLub_def r_def)
-done
-
-lemma (in CL) lub_upper: "\<lbrakk>S \<subseteq> A; x \<in> S\<rbrakk> 
\<Longrightarrow> (x, lub S cl) \<in> r"
-apply (rule CL_imp_ex_isLub [THEN exE], assumption)
-apply (unfold lub_def least_def)
-apply (rule some_equality [THEN ssubst])
-  apply (simp add: isLub_def)
- apply (simp add: lub_unique A_def isLub_def)
-apply (simp add: isLub_def r_def)
-done
-
-lemma (in CL) lub_least:
-     "\<lbrakk> S \<subseteq> A; L \<in> A; \<forall>x \<in> S. (x,L) \<in> r 
\<rbrakk> \<Longrightarrow> (lub S cl, L) \<in> r"
-apply (rule CL_imp_ex_isLub [THEN exE], assumption)
-apply (unfold lub_def least_def)
-apply (rule_tac s=x in some_equality [THEN ssubst])
-  apply (simp add: isLub_def)
- apply (simp add: lub_unique A_def isLub_def)
-apply (simp add: isLub_def r_def A_def)
-done
-
-lemma (in CL) lub_in_lattice: "S \<subseteq> A \<Longrightarrow> lub S cl 
\<in> A"
-apply (rule CL_imp_ex_isLub [THEN exE], assumption)
-apply (unfold lub_def least_def)
-apply (subst some_equality)
-apply (simp add: isLub_def)
-prefer 2 apply (simp add: isLub_def A_def)
-apply (simp add: lub_unique A_def isLub_def)
-done
-
-lemma (in CL) lubI:
-     "\<lbrakk> S \<subseteq> A; L \<in> A; \<forall>x \<in> S. (x,L) \<in> r;
-         \<forall>z \<in> A. (\<forall>y \<in> S. (y,z) \<in> r) 
\<longrightarrow> (L,z) \<in> r \<rbrakk> \<Longrightarrow> L = lub S cl"
-apply (rule lub_unique, assumption)
-apply (simp add: isLub_def A_def r_def)
-apply (unfold isLub_def)
-apply (rule conjI)
-apply (fold A_def r_def)
-apply (rule lub_in_lattice, assumption)
-apply (simp add: lub_upper lub_least)
-done
-
-lemma (in CL) lubIa: "\<lbrakk> S \<subseteq> A; isLub S cl L \<rbrakk> 
\<Longrightarrow> L = lub S cl"
-by (simp add: lubI isLub_def A_def r_def)
-
-lemma (in CL) isLub_in_lattice: "isLub S cl L \<Longrightarrow> L \<in> A"
-by (simp add: isLub_def  A_def)
-
-lemma (in CL) isLub_upper: "\<lbrakk>isLub S cl L; y \<in> S\<rbrakk> 
\<Longrightarrow> (y, L) \<in> r"
-by (simp add: isLub_def r_def)
-
-lemma (in CL) isLub_least:
-     "\<lbrakk> isLub S cl L; z \<in> A; \<forall>y \<in> S. (y, z) \<in> 
r\<rbrakk> \<Longrightarrow> (L, z) \<in> r"
-by (simp add: isLub_def A_def r_def)
-
-lemma (in CL) isLubI:
-     "\<lbrakk> L \<in> A; \<forall>y \<in> S. (y, L) \<in> r;
-         (\<forall>z \<in> A. (\<forall>y \<in> S. (y, z):r) \<longrightarrow> 
(L, z) \<in> r)\<rbrakk> \<Longrightarrow> isLub S cl L"
-by (simp add: isLub_def A_def r_def)
-
-
-subsection {* glb *}
-
-lemma (in CL) glb_in_lattice: "S \<subseteq> A \<Longrightarrow> glb S cl 
\<in> A"
-apply (subst glb_dual_lub)
-apply (simp add: A_def)
-apply (rule dualA_iff [THEN subst])
-apply (rule CL.lub_in_lattice)
-apply (rule dual)
-apply (simp add: dualA_iff)
-done
-
-lemma (in CL) glb_lower: "\<lbrakk>S \<subseteq> A; x \<in> S\<rbrakk> 
\<Longrightarrow> (glb S cl, x) \<in> r"
-apply (subst glb_dual_lub)
-apply (simp add: r_def)
-apply (rule dualr_iff [THEN subst])
-apply (rule CL.lub_upper)
-apply (rule dual)
-apply (simp add: dualA_iff A_def, assumption)
-done
-
-text {*
-  Reduce the sublattice property by using substructural properties;
-  abandoned see @{text "Tarski_4.ML"}.
-*}
-
-lemma (in CLF) [simp]:
-    "f: pset cl \<rightarrow> pset cl & monotone f (pset cl) (order cl)"
-apply (insert f_cl)
-apply (simp add: CLF_set_def)
-done
-
-declare (in CLF) f_cl [simp]
-
-
-lemma (in CLF) f_in_funcset: "f \<in> A \<rightarrow> A"
-by (simp add: A_def)
-
-lemma (in CLF) monotone_f: "monotone f A r"
-by (simp add: A_def r_def)
-
-lemma (in CLF) CLF_dual: "(dual cl, f) \<in> CLF_set"
-apply (simp add: CLF_set_def  CL_dualCL monotone_dual)
-apply (simp add: dualA_iff)
-done
-
-lemma (in CLF) dual:
-  "CLF (dual cl) f"
-apply (rule CLF.intro)
-apply (rule CLF_dual)
-done
-
-
-subsection {* fixed points *}
-
-lemma fix_subset: "fix f A \<subseteq> A"
-by (simp add: fix_def, fast)
-
-lemma fix_imp_eq: "x \<in> fix f A \<Longrightarrow> f x = x"
-by (simp add: fix_def)
-
-lemma fixf_subset:
-     "\<lbrakk> A \<subseteq> B; x \<in> fix (%y: A. f y) A \<rbrakk> 
\<Longrightarrow> x \<in> fix f B"
-by (simp add: fix_def, auto)
-
-
-subsection {* lemmas for Tarski, lub *}
-lemma (in CLF) lubH_le_flubH:
-     "H = {x. (x, f x) \<in> r & x \<in> A} \<Longrightarrow> (lub H cl, f 
(lub H cl)) \<in> r"
-apply (rule lub_least, fast)
-apply (rule f_in_funcset [THEN funcset_mem])
-apply (rule lub_in_lattice, fast)
--- {* @{text "\<forall>x:H. (x, f (lub H r)) \<in> r"} *}
-apply (rule ballI)
-apply (rule transE)
--- {* instantiates @{text "(x, ???z) \<in> order cl to (x, f x)"}, *}
--- {* because of the def of @{text H} *}
-apply fast
--- {* so it remains to show @{text "(f x, f (lub H cl)) \<in> r"} *}
-apply (rule_tac f = "f" in monotoneE)
-apply (rule monotone_f, fast)
-apply (rule lub_in_lattice, fast)
-apply (rule lub_upper, fast)
-apply assumption
-done
-
-lemma (in CLF) flubH_le_lubH:
-     "\<lbrakk>  H = {x. (x, f x) \<in> r & x \<in> A} \<rbrakk> 
\<Longrightarrow> (f (lub H cl), lub H cl) \<in> r"
-apply (rule lub_upper, fast)
-apply (rule_tac t = "H" in ssubst, assumption)
-apply (rule CollectI)
-apply (rule conjI)
-apply (rule_tac [2] f_in_funcset [THEN funcset_mem])
-apply (rule_tac [2] lub_in_lattice)
-prefer 2 apply fast
-apply (rule_tac f = "f" in monotoneE)
-apply (rule monotone_f)
-  apply (blast intro: lub_in_lattice)
- apply (blast intro: lub_in_lattice f_in_funcset [THEN funcset_mem])
-apply (simp add: lubH_le_flubH)
-done
-
-lemma (in CLF) lubH_is_fixp:
-     "H = {x. (x, f x) \<in> r & x \<in> A} \<Longrightarrow> lub H cl \<in> 
fix f A"
-apply (simp add: fix_def)
-apply (rule conjI)
-apply (rule lub_in_lattice, fast)
-apply (rule antisymE)
-apply (simp add: flubH_le_lubH)
-apply (simp add: lubH_le_flubH)
-done
-
-lemma (in CLF) fix_in_H:
-     "\<lbrakk> H = {x. (x, f x) \<in> r & x \<in> A};  x \<in> P \<rbrakk> 
\<Longrightarrow> x \<in> H"
-by (simp add: P_def fix_imp_eq [of _ f A] reflE CO_refl_on
-                    fix_subset [of f A, THEN subsetD])
-
-lemma (in CLF) fixf_le_lubH:
-     "H = {x. (x, f x) \<in> r & x \<in> A} \<Longrightarrow> \<forall>x \<in> 
fix f A. (x, lub H cl) \<in> r"
-apply (rule ballI)
-apply (rule lub_upper, fast)
-apply (rule fix_in_H)
-apply (simp_all add: P_def)
-done
-
-lemma (in CLF) lubH_least_fixf:
-     "H = {x. (x, f x) \<in> r & x \<in> A}
-      \<Longrightarrow> \<forall>L. (\<forall>y \<in> fix f A. (y,L) \<in> r) 
\<longrightarrow> (lub H cl, L) \<in> r"
-apply (rule allI)
-apply (rule impI)
-apply (erule bspec)
-apply (rule lubH_is_fixp, assumption)
-done
-
-subsection {* Tarski fixpoint theorem 1, first part *}
-lemma (in CLF) T_thm_1_lub: "lub P cl = lub {x. (x, f x) \<in> r & x \<in> A} 
cl"
-apply (rule sym)
-apply (simp add: P_def)
-apply (rule lubI)
-apply (rule fix_subset)
-apply (rule lub_in_lattice, fast)
-apply (simp add: fixf_le_lubH)
-apply (simp add: lubH_least_fixf)
-done
-
-lemma (in CLF) glbH_is_fixp: "H = {x. (f x, x) \<in> r & x \<in> A} 
\<Longrightarrow> glb H cl \<in> P"
-  -- {* Tarski for glb *}
-apply (simp add: glb_dual_lub P_def A_def r_def)
-apply (rule dualA_iff [THEN subst])
-apply (rule CLF.lubH_is_fixp)
-apply (rule dual)
-apply (simp add: dualr_iff dualA_iff)
-done
-
-lemma (in CLF) T_thm_1_glb: "glb P cl = glb {x. (f x, x) \<in> r & x \<in> A} 
cl"
-apply (simp add: glb_dual_lub P_def A_def r_def)
-apply (rule dualA_iff [THEN subst])
-apply (simp add: CLF.T_thm_1_lub [of _ f, OF dual]
-                 dualPO CL_dualCL CLF_dual dualr_iff)
-done
-
-subsection {* interval *}
-
-lemma (in CLF) rel_imp_elem: "(x, y) \<in> r \<Longrightarrow> x \<in> A"
-apply (insert CO_refl_on)
-apply (simp add: refl_on_def, blast)
-done
-
-lemma (in CLF) interval_subset: "\<lbrakk> a \<in> A; b \<in> A \<rbrakk> 
\<Longrightarrow> interval r a b \<subseteq> A"
-apply (simp add: interval_def)
-apply (blast intro: rel_imp_elem)
-done
-
-lemma (in CLF) intervalI:
-     "\<lbrakk> (a, x) \<in> r; (x, b) \<in> r \<rbrakk> \<Longrightarrow> x 
\<in> interval r a b"
-by (simp add: interval_def)
-
-lemma (in CLF) interval_lemma1:
-     "\<lbrakk> S \<subseteq> interval r a b; x \<in> S \<rbrakk> 
\<Longrightarrow> (a, x) \<in> r"
-by (unfold interval_def, fast)
-
-lemma (in CLF) interval_lemma2:
-     "\<lbrakk> S \<subseteq> interval r a b; x \<in> S \<rbrakk> 
\<Longrightarrow> (x, b) \<in> r"
-by (unfold interval_def, fast)
-
-lemma (in CLF) a_less_lub:
-     "\<lbrakk> S \<subseteq> A; S \<noteq> {};
-         \<forall>x \<in> S. (a,x) \<in> r; \<forall>y \<in> S. (y, L) \<in> r 
\<rbrakk> \<Longrightarrow> (a,L) \<in> r"
-by (blast intro: transE)
-
-lemma (in CLF) glb_less_b:
-     "\<lbrakk> S \<subseteq> A; S \<noteq> {};
-         \<forall>x \<in> S. (x,b) \<in> r; \<forall>y \<in> S. (G, y) \<in> r 
\<rbrakk> \<Longrightarrow> (G,b) \<in> r"
-by (blast intro: transE)
-
-lemma (in CLF) S_intv_cl:
-     "\<lbrakk> a \<in> A; b \<in> A; S \<subseteq> interval r a b 
\<rbrakk>\<Longrightarrow> S \<subseteq> A"
-by (simp add: subset_trans [OF _ interval_subset])
-
-lemma (in CLF) L_in_interval:
-     "\<lbrakk> a \<in> A; b \<in> A; S \<subseteq> interval r a b;
-         S \<noteq> {}; isLub S cl L; interval r a b \<noteq> {} \<rbrakk> 
\<Longrightarrow> L \<in> interval r a b"
-apply (rule intervalI)
-apply (rule a_less_lub)
-prefer 2 apply assumption
-apply (simp add: S_intv_cl)
-apply (rule ballI)
-apply (simp add: interval_lemma1)
-apply (simp add: isLub_upper)
--- {* @{text "(L, b) \<in> r"} *}
-apply (simp add: isLub_least interval_lemma2)
-done
-
-lemma (in CLF) G_in_interval:
-     "\<lbrakk> a \<in> A; b \<in> A; interval r a b \<noteq> {}; S 
\<subseteq> interval r a b; isGlb S cl G;
-         S \<noteq> {} \<rbrakk> \<Longrightarrow> G \<in> interval r a b"
-apply (simp add: interval_dual)
-apply (simp add: CLF.L_in_interval [of _ f, OF dual]
-                 dualA_iff A_def isGlb_dual_isLub)
-done
-
-lemma (in CLF) intervalPO:
-     "\<lbrakk> a \<in> A; b \<in> A; interval r a b \<noteq> {} \<rbrakk>
-      \<Longrightarrow> \<lparr> pset = interval r a b, order = induced 
(interval r a b) r \<rparr>
-          \<in> PartialOrder"
-apply (rule po_subset_po)
-apply (simp add: interval_subset)
-done
-
-lemma (in CLF) intv_CL_lub:
- "\<lbrakk> a \<in> A; b \<in> A; interval r a b \<noteq> {} \<rbrakk>
-  \<Longrightarrow> \<forall>S. S \<subseteq> interval r a b \<longrightarrow>
-          (\<exists>L. isLub S \<lparr> pset = interval r a b,
-                          order = induced (interval r a b) r \<rparr>  L)"
-apply (intro strip)
-apply (frule S_intv_cl [THEN CL_imp_ex_isLub])
-prefer 2 apply assumption
-apply assumption
-apply (erule exE)
--- {* define the lub for the interval as *}
-apply (rule_tac x = "if S = {} then a else L" in exI)
-apply (simp (no_asm_simp) add: isLub_def split del: split_if)
-apply (intro impI conjI)
--- {* @{text "(if S = {} then a else L) \<in> interval r a b"} *}
-apply (simp add: CL_imp_PO L_in_interval)
-apply (simp add: left_in_interval)
--- {* lub prop 1 *}
-apply (case_tac "S = {}")
--- {* @{text "S = {}, y \<in> S = False \<Rightarrow> everything"} *}
-apply fast
--- {* @{text "S \<noteq> {}"} *}
-apply simp
--- {* @{text "\<forall>y:S. (y, L) \<in> induced (interval r a b) r"} *}
-apply (rule ballI)
-apply (simp add: induced_def  L_in_interval)
-apply (rule conjI)
-apply (rule subsetD)
-apply (simp add: S_intv_cl, assumption)
-apply (simp add: isLub_upper)
--- {* @{text "\<forall>z:interval r a b. (\<forall>y:S. (y, z) \<in> induced 
(interval r a b) r \<longrightarrow> (if S = {} then a else L, z) \<in> induced 
(interval r a b) r"} *}
-apply (rule ballI)
-apply (rule impI)
-apply (case_tac "S = {}")
--- {* @{text "S = {}"} *}
-apply simp
-apply (simp add: induced_def  interval_def)
-apply (rule conjI)
-apply (rule reflE, assumption)
-apply (rule interval_not_empty)
-apply (simp add: interval_def)
--- {* @{text "S \<noteq> {}"} *}
-apply simp
-apply (simp add: induced_def  L_in_interval)
-apply (rule isLub_least, assumption)
-apply (rule subsetD)
-prefer 2 apply assumption
-apply (simp add: S_intv_cl, fast)
-done
-
-lemmas (in CLF) intv_CL_glb = intv_CL_lub [THEN Rdual]
-
-lemma (in CLF) interval_is_sublattice:
-     "\<lbrakk> a \<in> A; b \<in> A; interval r a b \<noteq> {} \<rbrakk>
-        \<Longrightarrow> interval r a b \<guillemotleft>= cl"
-apply (rule sublatticeI)
-apply (simp add: interval_subset)
-apply (rule CompleteLatticeI)
-apply (simp add: intervalPO)
- apply (simp add: intv_CL_lub)
-apply (simp add: intv_CL_glb)
-done
-
-lemmas (in CLF) interv_is_compl_latt =
-    interval_is_sublattice [THEN sublattice_imp_CL]
-
-
-subsection {* Top and Bottom *}
-lemma (in CLF) Top_dual_Bot: "Top cl = Bot (dual cl)"
-by (simp add: Top_def Bot_def least_def greatest_def dualA_iff dualr_iff)
-
-lemma (in CLF) Bot_dual_Top: "Bot cl = Top (dual cl)"
-by (simp add: Top_def Bot_def least_def greatest_def dualA_iff dualr_iff)
-
-lemma (in CLF) Bot_in_lattice: "Bot cl \<in> A"
-apply (simp add: Bot_def least_def)
-apply (rule_tac a="glb A cl" in someI2)
-apply (simp_all add: glb_in_lattice glb_lower 
-                     r_def [symmetric] A_def [symmetric])
-done
-
-lemma (in CLF) Top_in_lattice: "Top cl \<in> A"
-apply (simp add: Top_dual_Bot A_def)
-apply (rule dualA_iff [THEN subst])
-apply (rule CLF.Bot_in_lattice [OF dual])
-done
-
-lemma (in CLF) Top_prop: "x \<in> A \<Longrightarrow> (x, Top cl) \<in> r"
-apply (simp add: Top_def greatest_def)
-apply (rule_tac a="lub A cl" in someI2)
-apply (rule someI2)
-apply (simp_all add: lub_in_lattice lub_upper 
-                     r_def [symmetric] A_def [symmetric])
-done
-
-lemma (in CLF) Bot_prop: "x \<in> A \<Longrightarrow> (Bot cl, x) \<in> r"
-apply (simp add: Bot_dual_Top r_def)
-apply (rule dualr_iff [THEN subst])
-apply (rule CLF.Top_prop [OF dual])
-apply (simp add: dualA_iff A_def)
-done
-
-lemma (in CLF) Top_intv_not_empty: "x \<in> A  \<Longrightarrow> interval r x 
(Top cl) \<noteq> {}"
-apply (rule notI)
-apply (drule_tac a = "Top cl" in equals0D)
-apply (simp add: interval_def)
-apply (simp add: refl_on_def Top_in_lattice Top_prop)
-done
-
-lemma (in CLF) Bot_intv_not_empty: "x \<in> A \<Longrightarrow> interval r 
(Bot cl) x \<noteq> {}"
-apply (simp add: Bot_dual_Top)
-apply (subst interval_dual)
-prefer 2 apply assumption
-apply (simp add: A_def)
-apply (rule dualA_iff [THEN subst])
-apply (rule CLF.Top_in_lattice [OF dual])
-apply (rule CLF.Top_intv_not_empty [OF dual])
-apply (simp add: dualA_iff A_def)
-done
-
-subsection {* fixed points form a partial order *}
-
-lemma (in CLF) fixf_po: "\<lparr> pset = P, order = induced P r\<rparr> \<in> 
PartialOrder"
-by (simp add: P_def fix_subset po_subset_po)
-
-lemma (in Tarski) Y_subset_A: "Y \<subseteq> A"
-apply (rule subset_trans [OF _ fix_subset])
-apply (rule Y_ss [simplified P_def])
-done
-
-lemma (in Tarski) lubY_in_A: "lub Y cl \<in> A"
-  by (rule Y_subset_A [THEN lub_in_lattice])
-
-lemma (in Tarski) lubY_le_flubY: "(lub Y cl, f (lub Y cl)) \<in> r"
-apply (rule lub_least)
-apply (rule Y_subset_A)
-apply (rule f_in_funcset [THEN funcset_mem])
-apply (rule lubY_in_A)
--- {* @{text "Y \<subseteq> P \<Longrightarrow> f x = x"} *}
-apply (rule ballI)
-apply (rule_tac t = "x" in fix_imp_eq [THEN subst])
-apply (erule Y_ss [simplified P_def, THEN subsetD])
--- {* @{text "reduce (f x, f (lub Y cl)) \<in> r to (x, lub Y cl) \<in> r"} by 
monotonicity *}
-apply (rule_tac f = "f" in monotoneE)
-apply (rule monotone_f)
-apply (simp add: Y_subset_A [THEN subsetD])
-apply (rule lubY_in_A)
-apply (simp add: lub_upper Y_subset_A)
-done
-
-lemma (in Tarski) intY1_subset: "intY1 \<subseteq> A"
-apply (unfold intY1_def)
-apply (rule interval_subset)
-apply (rule lubY_in_A)
-apply (rule Top_in_lattice)
-done
-
-lemmas (in Tarski) intY1_elem = intY1_subset [THEN subsetD]
-
-lemma (in Tarski) intY1_f_closed: "x \<in> intY1 \<Longrightarrow> f x \<in> 
intY1"
-apply (simp add: intY1_def  interval_def)
-apply (rule conjI)
-apply (rule transE)
-apply (rule lubY_le_flubY)
--- {* @{text "(f (lub Y cl), f x) \<in> r"} *}
-apply (rule_tac f=f in monotoneE)
-apply (rule monotone_f)
-apply (rule lubY_in_A)
-apply (simp add: intY1_def interval_def  intY1_elem)
-apply (simp add: intY1_def  interval_def)
--- {* @{text "(f x, Top cl) \<in> r"} *}
-apply (rule Top_prop)
-apply (rule f_in_funcset [THEN funcset_mem])
-apply (simp add: intY1_def interval_def  intY1_elem)
-done
-
-lemma (in Tarski) intY1_mono:
-     "monotone (%x: intY1. f x) intY1 (induced intY1 r)"
-apply (auto simp add: monotone_def induced_def intY1_f_closed)
-apply (blast intro: intY1_elem monotone_f [THEN monotoneE])
-done
-
-lemma (in Tarski) intY1_is_cl:
-    "\<lparr> pset = intY1, order = induced intY1 r \<rparr> \<in> 
CompleteLattice"
-apply (unfold intY1_def)
-apply (rule interv_is_compl_latt)
-apply (rule lubY_in_A)
-apply (rule Top_in_lattice)
-apply (rule Top_intv_not_empty)
-apply (rule lubY_in_A)
-done
-
-lemma (in Tarski) v_in_P: "v \<in> P"
-apply (unfold P_def)
-apply (rule_tac A = "intY1" in fixf_subset)
-apply (rule intY1_subset)
-unfolding v_def
-apply (rule CLF.glbH_is_fixp [OF CLF.intro, unfolded CLF_set_def, of 
"\<lparr>pset = intY1, order = induced intY1 r\<rparr>", simplified])
-apply auto
-apply (rule intY1_is_cl)
-apply (erule intY1_f_closed)
-apply (rule intY1_mono)
-done
-
-lemma (in Tarski) z_in_interval:
-     "\<lbrakk> z \<in> P; \<forall>y\<in>Y. (y, z) \<in> induced P r 
\<rbrakk> \<Longrightarrow> z \<in> intY1"
-apply (unfold intY1_def P_def)
-apply (rule intervalI)
-prefer 2
- apply (erule fix_subset [THEN subsetD, THEN Top_prop])
-apply (rule lub_least)
-apply (rule Y_subset_A)
-apply (fast elim!: fix_subset [THEN subsetD])
-apply (simp add: induced_def)
-done
-
-lemma (in Tarski) f'z_in_int_rel: "\<lbrakk> z \<in> P; \<forall>y\<in>Y. (y, 
z) \<in> induced P r \<rbrakk>
-      \<Longrightarrow> ((%x: intY1. f x) z, z) \<in> induced intY1 r"
-apply (simp add: induced_def  intY1_f_closed z_in_interval P_def)
-apply (simp add: fix_imp_eq [of _ f A] fix_subset [of f A, THEN subsetD]
-                 reflE)
-done
-
-lemma (in Tarski) tarski_full_lemma:
-     "\<exists>L. isLub Y \<lparr> pset = P, order = induced P r \<rparr> L"
-apply (rule_tac x = "v" in exI)
-apply (simp add: isLub_def)
--- {* @{text "v \<in> P"} *}
-apply (simp add: v_in_P)
-apply (rule conjI)
--- {* @{text v} is lub *}
--- {* @{text "1. \<forall>y:Y. (y, v) \<in> induced P r"} *}
-apply (rule ballI)
-apply (simp add: induced_def subsetD v_in_P)
-apply (rule conjI)
-apply (erule Y_ss [THEN subsetD])
-apply (rule_tac b = "lub Y cl" in transE)
-apply (rule lub_upper)
-apply (rule Y_subset_A, assumption)
-apply (rule_tac b = "Top cl" in interval_imp_mem)
-apply (simp add: v_def)
-apply (fold intY1_def)
-apply (rule CL.glb_in_lattice [OF CL.intro [OF intY1_is_cl], simplified])
-apply auto
-apply (rule indI)
-  prefer 3 apply assumption
- prefer 2 apply (simp add: v_in_P)
-apply (unfold v_def)
-apply (rule indE)
-apply (rule_tac [2] intY1_subset)
-apply (rule CL.glb_lower [OF CL.intro [OF intY1_is_cl], simplified])
-  apply (simp add: CL_imp_PO intY1_is_cl)
- apply force
-apply (simp add: induced_def intY1_f_closed z_in_interval)
-apply (simp add: P_def fix_imp_eq [of _ f A] reflE
-                 fix_subset [of f A, THEN subsetD])
-done
-
-lemma CompleteLatticeI_simp:
-     "\<lbrakk> \<lparr> pset = A, order = r \<rparr> \<in> PartialOrder;
-         \<forall>S. S \<subseteq> A \<longrightarrow> (\<exists>L. isLub S 
\<lparr> pset = A, order = r \<rparr>  L) \<rbrakk>
-    \<Longrightarrow> \<lparr> pset = A, order = r \<rparr> \<in> 
CompleteLattice"
-by (simp add: CompleteLatticeI Rdual)
-
-theorem (in CLF) Tarski_full:
-     "\<lparr> pset = P, order = induced P r\<rparr> \<in> CompleteLattice"
-apply (rule CompleteLatticeI_simp)
-apply (rule fixf_po, clarify)
-apply (simp add: P_def A_def r_def)
-apply (rule Tarski.tarski_full_lemma [OF Tarski.intro [OF _ 
Tarski_axioms.intro]])
-proof - show "CLF cl f" .. qed
-
-end
diff --git a/isar/interface b/isar/interface
deleted file mode 100755
index 16d7d56..0000000
--- a/isar/interface
+++ /dev/null
@@ -1,205 +0,0 @@
-#!/usr/bin/env bash
-#
-# $Id$
-#
-# Proof General interface wrapper for Isabelle.
-
-
-## self references
-
-THIS="$(cd "$(dirname "$0")"; pwd)"
-SUPER="$(cd "$THIS/.."; pwd)"
-
-
-## diagnostics
-
-usage()
-{
-  echo
-  echo "Usage: isabelle emacs [OPTIONS] [FILES ...]"
-  echo
-  echo "  Options are:"
-  echo "    -L NAME      abbreviates -l NAME -k NAME"
-  echo "    -U BOOL      enable UTF-8 communication (default true)"
-  echo "    -f FONT      specify Emacs font"
-  echo "    -g GEOMETRY  specify Emacs geometry"
-  echo "    -k NAME      use specific isar-keywords for named logic"
-  echo "    -l NAME      logic image name (default 
\$ISABELLE_LOGIC=$ISABELLE_LOGIC)"
-  echo "    -m MODE      add print mode for output"
-  echo "    -p NAME      Emacs program name (default emacs)"
-  echo "    -u BOOL      use personal .emacs file (default true)"
-  echo "    -w BOOL      use window system (default true)"
-  echo "    -x BOOL      render Isabelle symbols via Unicode (default false)"
-  echo
-  echo "Starts Proof General for Isabelle with theory and proof FILES"
-  echo "(default Scratch.thy)."
-  echo
-  echo "  PROOFGENERAL_OPTIONS=$PROOFGENERAL_OPTIONS"
-  echo
-  exit 1
-}
-
-fail()
-{
-  echo "$1" >&2
-  exit 2
-}
-
-
-## process command line
-
-# options
-
-ISABELLE_OPTIONS=""
-
-KEYWORDS=""
-LOGIC="$ISABELLE_LOGIC"
-UNICODE=""
-FONT=""
-GEOMETRY=""
-PROGNAME="emacs"
-INITFILE="true"
-WINDOWSYSTEM="true"
-UNICODE_SYMBOLS=""
-
-getoptions()
-{
-  OPTIND=1
-  while getopts "L:U:f:g:k:l:m:p:u:w:x:" OPT
-  do
-    case "$OPT" in
-      L)
-        KEYWORDS="$OPTARG"
-        LOGIC="$OPTARG"
-        ;;
-      U)
-        UNICODE="$OPTARG"
-        ;;
-      f)
-        FONT="$OPTARG"
-        ;;
-      g)
-        GEOMETRY="$OPTARG"
-        ;;
-      k)
-        KEYWORDS="$OPTARG"
-        ;;
-      l)
-        LOGIC="$OPTARG"
-        ;;
-      m)
-        if [ -z "$ISABELLE_OPTIONS" ]; then
-          ISABELLE_OPTIONS="-m $OPTARG"
-        else
-          ISABELLE_OPTIONS="$ISABELLE_OPTIONS -m $OPTARG"
-        fi
-        ;;
-      p)
-        PROGNAME="$OPTARG"
-        ;;
-      u)
-        INITFILE="$OPTARG"
-        ;;
-      w)
-        WINDOWSYSTEM="$OPTARG"
-        ;;
-      x)
-        UNICODE_SYMBOLS="$OPTARG"
-        ;;
-      \?)
-        usage
-        ;;
-    esac
-  done
-}
-
-eval "OPTIONS=($PROOFGENERAL_OPTIONS)"
-getoptions "${OPTIONS[@]}"
-
-getoptions "$@"
-shift $(($OPTIND - 1))
-
-
-# args
-
-declare -a FILES=()
-
-if [ "$#" -eq 0 ]; then
-  FILES["${#FILES[@]}"]="Scratch.thy"
-else
-  while [ "$#" -gt 0 ]; do
-    FILES["${#FILES[@]}"]="$1"
-    shift
-  done
-fi
-
-
-## main
-
-declare -a ARGS=()
-
-if [ -n "$FONT" ]; then
-  ARGS["${#ARGS[@]}"]="-fn"
-  ARGS["${#ARGS[@]}"]="$FONT"
-fi
-
-if [ -n "$GEOMETRY" ]; then
-  ARGS["${#ARGS[@]}"]="-geometry"
-  ARGS["${#ARGS[@]}"]="$GEOMETRY"
-fi
-
-[ "$INITFILE" = false ] && ARGS["${#ARGS[@]}"]="-q"
-[ "$WINDOWSYSTEM" = false ] && ARGS["${#ARGS[@]}"]="-nw"
-
-ARGS["${#ARGS[@]}"]="-l"
-ARGS["${#ARGS[@]}"]="$SUPER/isar/interface-setup.el"
-
-if [ -n "$KEYWORDS" ]; then
-  if [ -f "$ISABELLE_HOME_USER/etc/isar-keywords-$KEYWORDS.el" ]; then
-    ARGS["${#ARGS[@]}"]="-l"
-    ARGS["${#ARGS[@]}"]="$ISABELLE_HOME_USER/etc/isar-keywords-$KEYWORDS.el"
-  elif [ -f "$ISABELLE_HOME/etc/isar-keywords-$KEYWORDS.el" ]; then
-    ARGS["${#ARGS[@]}"]="-l"
-    ARGS["${#ARGS[@]}"]="$ISABELLE_HOME/etc/isar-keywords-$KEYWORDS.el"
-  else
-    fail "No isar-keywords file for '$KEYWORDS'"
-  fi
-elif [ -f "$ISABELLE_HOME_USER/etc/isar-keywords.el" ]; then
-  ARGS["${#ARGS[@]}"]="-l"
-  ARGS["${#ARGS[@]}"]="$ISABELLE_HOME_USER/etc/isar-keywords.el"
-elif [ -f "$ISABELLE_HOME/etc/isar-keywords.el" ]; then
-  ARGS["${#ARGS[@]}"]="-l"
-  ARGS["${#ARGS[@]}"]="$ISABELLE_HOME/etc/isar-keywords.el"
-fi
-
-for FILE in "$ISABELLE_HOME/etc/proofgeneral-settings.el" \
-    "$ISABELLE_HOME_USER/etc/proofgeneral-settings.el"
-do
-  if [ -f "$FILE" ]; then
-    ARGS["${#ARGS[@]}"]="-l"
-    ARGS["${#ARGS[@]}"]="$FILE"
-  fi
-done
-
-case "$LOGIC" in
-  /*)
-    ;;
-  */*)
-    LOGIC="$(pwd -P)/$LOGIC"
-    ;;
-esac
-
-export PROOFGENERAL_HOME="$SUPER"
-export PROOFGENERAL_ASSISTANTS="isar"
-export PROOFGENERAL_LOGIC="$LOGIC"
-export PROOFGENERAL_UNICODE="$UNICODE"
-export PROOFGENERAL_UNICODE_SYMBOLS="$UNICODE_SYMBOLS"
-
-export ISABELLE_OPTIONS
-
-# Isabelle2008 compatibility
-[ -z "$ISABELLE_PROCESS" ] && export ISABELLE_PROCESS="$ISABELLE"
-[ -z "$ISABELLE_TOOL" ] && export ISABELLE_TOOL="$ISATOOL"
-
-exec "$PROGNAME" "${ARGS[@]}" "${FILES[@]}"
-
diff --git a/isar/interface-setup.el b/isar/interface-setup.el
deleted file mode 100644
index 4cf12aa..0000000
--- a/isar/interface-setup.el
+++ /dev/null
@@ -1,40 +0,0 @@
-;; interface-setup.el Interface wrapper for Isabelle Proof General
-;;
-;; This file is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-;;
-;; Author: Markus Wenzel <wenzelm@in.tum.de>
-;;
-;; interface-setup.el,v 7.0 2002/08/29 09:14:03 da Exp
-;;
-
-;;
-;; Tool bar
-;;
-
-(if (and window-system (fboundp 'tool-bar-mode)) (tool-bar-mode t))
-
-;;
-;; Unicode
-;;
-
-(let ((unicode (getenv "PROOFGENERAL_UNICODE")))
-  (if (and unicode (not (equal unicode "")))
-      (customize-set-variable 'proof-shell-unicode (equal unicode "true"))))
-
-;;
-;; Unicode symbols
-;;
-
-(let ((symbols (getenv "PROOFGENERAL_UNICODE_SYMBOLS")))
-  (if (and symbols (not (equal symbols "")))
-      (customize-set-variable 'isar-unicode-tokens-enable (equal symbols 
"true"))))
-
-;;
-;; Proof General startup
-;;
-
-(if (not (featurep 'proof-site))
-    (load (concat (getenv "PROOFGENERAL_HOME") "/generic/proof-site.el")))
diff --git a/isar/isabelle-system.el b/isar/isabelle-system.el
deleted file mode 100644
index 4fb2bcd..0000000
--- a/isar/isabelle-system.el
+++ /dev/null
@@ -1,375 +0,0 @@
-;; isabelle-system.el --- Interface with Isabelle system
-;;
-;; Copyright (C) 2000 LFCS Edinburgh, David Aspinall.
-;; Copyright (C) 2018  Free Software Foundation, Inc.
-;;
-;; Author:      David Aspinall <da@dcs.ed.ac.uk>
-;; Maintainer:  Proof General maintainer <proofgen@dcs.ed.ac.uk>
-;;
-;; $Id$
-;;
-;; Most of this code is taken from the final version of Isamode.
-;; --------------------------------------------------------------
-;;
-
-;;; Code:
-
-(require 'cl-lib)                       ;cl-mapcan
-(eval-when-compile
-  (require 'span)
-  (require 'scomint)
-  (require 'proof-site)
-  (require 'proof-menu)
-  (require 'proof-syntax))
-(defvar proof-assistant-menu)
-
-(declare-function mapcan "cl-extra")   ; spurious bytecomp warning
-
-
-;; The isabelle custom group won't have been defined yet.
-(defgroup isabelle nil
-  "Customization of user options for Isabelle and Isabelle/Isar Proof General"
-  :group 'proof-general)
-
-(defcustom isabelle-web-page
-  "http://www.cl.cam.ac.uk/Research/HVG/Isabelle/";
-  "URL of web page for Isabelle."
-  :type 'string
-  :group 'isabelle)
-
-
-;;; ================ Extract Isabelle settings ================
-
-(defcustom isa-isabelle-command
-  (or (if proof-rsh-command
-         ;; not much hope to locate executable remotely
-         (concat proof-rsh-command " isabelle"))
-      (getenv "ISABELLE_TOOL")
-      (proof-locate-executable "isabelle" nil
-                              (list
-                               ;; support default unpack in home dir situation
-                               (concat (getenv "HOME") "/Isabelle/bin/")
-                               ;; or Mac Package for Isabelle2014
-                               "/Applications/Isabelle2014.app/Isabelle/bin/"
-                               ))
-      "path_to_isabelle_is_unknown")
-  "Command to invoke the main Isabelle wrapper 'isabelle'.
-Emacs should be able to find `isabelle' if it is on the PATH when
-started.  Then several standard locations are attempted.
-Otherwise you should set this, using a full path name here for reliable
-working."
-  :type 'file
-  :group 'isabelle)
-
-(defvar isabelle-not-found nil
-  "Non-nil if user has been prompted for `isabelle' already and it wasn't 
found.")
-
-(defun isa-set-isabelle-command (&optional force)
-  "Make sure `isa-isabelle-command' points to a valid executable.
-If it does not, or if prefix arg supplied, prompt the user for
-the proper setting.  If `proof-rsh-command' is set, leave this
-unverified.  Otherwise, returns non-nil if isa-isabelle-command
-is surely an executable with full path."
-  (interactive "p")
-  (when (and (not noninteractive)
-             (not (bound-and-true-p byte-compile-current-file))
-            (not proof-rsh-command)
-            (or force
-                isabelle-not-found
-                (not (file-executable-p isa-isabelle-command))))
-    (setq isa-isabelle-command
-         (read-file-name
-          "Full path to `isabelle' command (anything non-executable if you 
don't have it): "
-          nil nil nil))
-    (unless (file-executable-p isa-isabelle-command)
-      (setq isabelle-not-found t)
-      (beep)
-      (warn "Proof General: isabelle command not found; some menus will be 
incomplete and Isabelle may not run correctly.  Please check your Isabelle 
installation.")))
-  (or proof-rsh-command
-      (file-executable-p isa-isabelle-command)))
-
-(defun isa-shell-command-to-string (command)
-  "Like shell-command-to-string except the last character is stripped."
-  (let ((s (shell-command-to-string command)))
-    (if (equal (length s) 0) s
-      (substring s 0 -1))))
-
-(defun isa-getenv (envvar &optional default)
-  "Extract environment variable ENVVAR setting using the `isabelle' program.
-If the isabelle command is not available, try using elisp's getenv
-to extract the value from Emacs' environment.
-If there is no setting for the variable, DEFAULT will be returned"
-  (isa-set-isabelle-command)
-  (if (or proof-rsh-command
-         (file-executable-p isa-isabelle-command))
-      (let ((setting (isa-shell-command-to-string
-                     (concat "\"" isa-isabelle-command
-                             "\" getenv -b " envvar))))
-       (if (string-equal setting "")
-           default
-         setting))
-    (or (getenv envvar) default)))
-
-;;;
-;;; ======= Interaction with System using Isabelle tools =======
-;;;
-
-(defcustom isabelle-program-name-override nil
-  "*Name of executable program to run Isabelle.
-
-You can set customize this in case the automatic settings
-mechanism does not work for you, perhaps because isabelle
-is not on your path, or you are running it remotely.
-
-The logic image name is tagged onto the end."
-  :type 'file
-  :group 'isabelle)
-
-(defun isa-tool-list-logics ()
-  "Generate a list of available object logics."
-  (if (isa-set-isabelle-command)
-      (delete "" (split-string
-                 (isa-shell-command-to-string
-                  (concat "\"" isa-isabelle-command "\" findlogics")) "[ 
\t]"))))
-
-(defcustom isabelle-logics-available nil
-  "*List of logics available to use with Isabelle.
-If the `isabelle' program is available, this is automatically
-generated with the Lisp form `(isa-tool-list-logics)'."
-  :type (list 'string)
-  :group 'isabelle)
-
-(unless (or noninteractive (bound-and-true-p byte-compile-current-file))
-  (setq isabelle-logics-available (isa-tool-list-logics)))
-
-(defcustom isabelle-chosen-logic nil
-  "*Choice of logic to use with Isabelle.
-If non-nil, added onto the Isabelle command line for invoking Isabelle.
-
-You can set this as a file local variable, using a special comment
-at the top of your theory file, like this:
-
-   (* -*- isabelle-chosen-logic: \"ZF\" -*- *)"
-  :type (append
-        (list 'choice)
-        (mapcar (lambda (str) (list 'const str)) isabelle-logics-available)
-        (list '(string :tag "Choose another")
-              '(const :tag "Unset (use default)" nil)))
-  :group 'isabelle)
-(put 'isabelle-chosen-logic 'safe-local-variable 'stringp)
-
-(defvar isabelle-chosen-logic-prev nil
-  "Value of `isabelle-chosen-logic' on last call of `isabelle-set-prog-name'.")
-
-(defun isabelle-hack-local-variables-function ()
-  "Hook function for `hack-local-variables-hook'."
-  (if (and isabelle-chosen-logic
-          (not (equal isabelle-chosen-logic
-                      isabelle-chosen-logic-prev))
-          (proof-shell-live-buffer))
-      (message "Warning: chosen logic %s does not match running Isabelle 
instance"
-              isabelle-chosen-logic)))
-
-(add-hook 'hack-local-variables-hook
-         'isabelle-hack-local-variables-function)
-
-(defun isabelle-set-prog-name (&optional filename)
-  "Make proper command line for running Isabelle.
-This function sets `proof-prog-name' and `isar-prog-args'."
-  (let*
-      ;; The ISABELLE_PROCESS and PROOFGENERAL_LOGIC values (set when
-      ;; run under the interface wrapper script) indicate command line
-      ;; is set in current Isabelle settings environment.
-      ((isabelle (or
-                 isabelle-program-name-override  ; override in Emacs
-                 (getenv "ISABELLE_PROCESS")     ; command line override
-                 (isa-getenv "ISABELLE_PROCESS") ; choose to match isabelle
-                 "isabelle-process"))            ; to
-       (isabelle-opts (split-string (or (getenv "ISABELLE_OPTIONS") "")))
-       (opts (append (list "-PI")  ;; Proof General + Isar
-                    (if proof-shell-unicode (list "-m" "PGASCII") nil)
-                    isabelle-opts))
-       (logic (or isabelle-chosen-logic
-                 (getenv "PROOFGENERAL_LOGIC")))
-       (logicarg (if (and logic (not (equal logic "")))
-                    (list logic) nil)))
-    (setq isabelle-chosen-logic-prev isabelle-chosen-logic)
-    (setq isar-prog-args (append opts logicarg))
-    (setq proof-prog-name isabelle)))
-
-(defun isabelle-choose-logic (logic)
-  "Adjust isabelle-prog-name and proof-prog-name for running LOGIC."
-  (interactive
-   (list (completing-read
-         "Use logic: "
-         (mapcar 'list (cons "Default"
-                             isabelle-logics-available)))))
-  (if (proof-shell-live-buffer)
-      (error "Can't change logic while Isabelle is running, please exit 
process first!"))
-  (customize-set-variable 'isabelle-chosen-logic
-                         (unless (string-equal logic "Default") logic))
-  (isabelle-set-prog-name)
-  ;; Settings are potentially different between logics, and
-  ;; so are Isar keywords.  Set these to nil so they get
-  ;; automatically re-initialised.
-  ;; FIXME: Isar keywords change not handled yet.
-  (setq proof-assistant-settings nil)
-  (setq proof-menu-settings nil))
-
-(defun isa-view-doc (docname)
-  "View Isabelle document DOCNAME, using Isabelle tools."
-  (if (isa-set-isabelle-command)
-      (apply 'start-process
-            "isa-view-doc" nil
-            (list isa-isabelle-command "doc" docname))))
-
-(defun isa-tool-list-docs ()
-  "Generate a list of documentation files available, with descriptions.
-This function returns a list of lists of the form
- ((DOCNAME DESCRIPTION) ....)
-of Isabelle document names and descriptions.  When DOCNAME is
-passed to isa-tool-doc-command, DOCNAME will be viewed."
-  (if (isa-set-isabelle-command)
-      (let ((docs (isa-shell-command-to-string
-                  (concat "\"" isa-isabelle-command "\" doc"))))
-       (unless (string-equal docs "")
-         (cl-mapcan
-          (function (lambda (docdes)
-                      (if (proof-string-match "^[ \t]+\\(\\S-+\\)[ \t]+" 
docdes)
-                          (list (list
-                                 (substring docdes (match-beginning 1) 
(match-end 1))
-                                 (substring docdes (match-end 0)))))))
-          (split-string docs "\n"))))))
-
-(defconst isabelle-verbatim-regexp "\\`\^VERBATIM: \\(\\(.\\|\n\\)*\\)\\'"
-  "Regexp matching internal marker for verbatim command output.")
-
-(defun isabelle-verbatim (str)
-  "Mark internal command STR for verbatim output."
-  (concat "\^VERBATIM: " str))
-
-
-;;; ==========  Utility functions ==========
-
-(defcustom isabelle-refresh-logics t
-  "*Whether to refresh the list of logics during an interactive session.
-If non-nil, then `isabelle findlogics' will be used to regenerate
-the `isabelle-logics-available' setting.  If this tool does not work
-for you, you should disable this behaviour."
-  :type 'boolean
-  :group 'isabelle)
-
-(defvar isabelle-docs-menu
-  (let ((vc (lambda (docdes)
-              (vector (car (cdr docdes))
-                      (list 'isa-view-doc (car docdes)) t))))
-    (list (cons "Isabelle Documentation" (mapcar vc (isa-tool-list-docs)))))
-  "Isabelle documentation menu.  Constructed when PG is loaded.")
-
-(defvar isabelle-logics-menu-entries nil
-  "Menu of logics available.")
-
-(defun isabelle-logics-menu-calculate ()
-  (setq isabelle-logics-menu-entries
-       (cons "Logics"
-             (append
-              '(["Default"
-                 (isabelle-choose-logic nil)
-                 :active (not (proof-shell-live-buffer))
-                 :style radio
-                 :selected (not isabelle-chosen-logic)
-                 :help "Switch to default logic"])
-              (mapcar (lambda (l)
-                        (vector l (list 'isabelle-choose-logic l)
-                                :active '(not (proof-shell-live-buffer))
-                                :style 'radio
-                                :selected (list 'equal 'isabelle-chosen-logic 
l)
-                                :help (format "Switch to %s logic" l)))
-                      isabelle-logics-available)))))
-
-(unless (or noninteractive (bound-and-true-p byte-compile-current-file))
-  (isabelle-logics-menu-calculate))
-
-(defvar isabelle-time-to-refresh-logics t
-  "Non-nil if we should refresh the logics list.")
-
-
-(defun isabelle-logics-menu-refresh ()
-  "Refresh isabelle-logics-menu-entries, returning new entries."
-  (interactive)
-  (if (and isabelle-refresh-logics
-          (or isabelle-time-to-refresh-logics (called-interactively-p 'any)))
-      (progn
-       (setq isabelle-logics-available (isa-tool-list-logics))
-       (isabelle-logics-menu-calculate)
-       ;; update the menu manually
-       (easy-menu-add-item proof-assistant-menu nil
-                           isabelle-logics-menu-entries)
-       (setq isabelle-time-to-refresh-logics nil) ;; just done it, don't 
repeat!
-       (run-with-timer 4 nil ;; short delay to avoid doing this too often
-                       (lambda () (setq isabelle-time-to-refresh-logics t))))))
-
-(defun isabelle-menu-bar-update-logics ()
-  "Update logics menu."
-  (and (current-local-map)
-       (keymapp (lookup-key (current-local-map)
-                           (vector 'menu-bar (intern proof-assistant))))
-       (isabelle-logics-menu-refresh)))
-
-(add-hook 'menu-bar-update-hook 'isabelle-menu-bar-update-logics)
-
-
-;; Added in PG 3.4: load isar-keywords file.
-;; This roughly follows the method given in the interface script.
-;; It could be used to add an elisp command at the bottom of
-;; a theory file, if we sorted out the load order a bit, or
-;; added a facility to reconfigure.
-;; TODO: also add something to spill out a keywords file?
-(defun isabelle-load-isar-keywords (&optional kw)
-  (interactive "sLoad isar keywords: ")
-  (let ((userhome  (isa-getenv "ISABELLE_HOME_USER"))
-       (isahome   (isa-getenv "ISABELLE_HOME"))
-       (isarkwel  "%s/etc/isar-keywords-%s.el")
-       (isarel    "%s/etc/isar-keywords.el")
-       (ifrdble   (lambda (f) (if (file-readable-p f) f))))
-    (load-file
-     (or
-      (and kw (funcall ifrdble (format isarkwel userhome kw)))
-      (and kw (funcall ifrdble (format isarkwel isahome kw)))
-      (funcall ifrdble (format isarel userhome))
-      (funcall ifrdble (format isarel isahome))
-      (locate-library "isar-keywords")))))
-
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; Context-senstive in-span menu additions
-;;
-
-(defun isabelle-create-span-menu (span idiom name)
-  (if (eq idiom 'proof)
-      (let ((thm (span-property span 'name)))
-       (list (vector
-              "Visualise dependencies"
-              `(proof-shell-invisible-command
-                ,(format "thm_deps %s;" thm))
-              (not (string-equal thm proof-unnamed-theorem-name)))))))
-
-
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; XML as an SML string: add escapes for quotes
-;;
-
-(defun isabelle-xml-sml-escapes (xmlstring)
-  (replace-regexp-in-string "\"" "\\\"" xmlstring t t))
-
-(defun isabelle-process-pgip (xmlstring)
-  "Return an Isabelle or Isabelle/Isar command to process PGIP in XMLSTRING."
-  (format "ProofGeneral.process_pgip \"%s\";"
-         (isabelle-xml-sml-escapes xmlstring)))
-
-
-(provide 'isabelle-system)
-;;; isabelle-system.el ends here
diff --git a/isar/isar-autotest.el b/isar/isar-autotest.el
deleted file mode 100644
index 8e098a2..0000000
--- a/isar/isar-autotest.el
+++ /dev/null
@@ -1,117 +0,0 @@
-;; isar-autotest.el: tests of Isar Proof General.
-;;
-;; You can run these by issuing "make test.isar" in PG home dir.
-;;
-;; $Id$
-;;
-
-(defvar isar-long-tests nil
-  "Whether or not to perform lengthy tests")
-
-(require 'pg-autotest)
-
-(require 'proof-site)
-(proof-ready-for-assistant 'isar)
-
-(declare-function isar-tracing:auto-quickcheck-toggle "isar.el")
-(declare-function isar-tracing:auto-solve-direct-toggle "isar.el")
-(declare-function isar-proof:parallel-proofs-toggle "isar.el")
-
-(unless (bound-and-true-p byte-compile-current-file)
-
-  (pg-autotest start) ; can add 'debug flag for debug-on-error
-
-  (pg-autotest log ".autotest.log")  ; convention
-
-  (pg-autotest timestart 'total)
-
-  (pg-autotest remark "Testing standard Example.thy, Example-Xsym.thy")
-  (pg-autotest script-wholefile "isar/Example.thy")
-
-  ;; Test Trac#344 (nested spans bug with old-style undo)
-  ;; TODO: should test with both undo styles
-  (pg-autotest eval (proof-retract-buffer))
-  (proof-shell-wait)
-  (goto-char 135) ; first line
-  (pg-autotest eval (proof-goto-point))
-  (proof-shell-wait)
-  (pg-autotest eval (proof-retract-buffer))
-  (proof-shell-wait)
-  (goto-char 135) ; first line
-  (pg-autotest eval (proof-goto-point))
-  (proof-shell-wait)
-  (pg-autotest eval (proof-process-buffer))
-  (pg-autotest assert-full)
-  
-
-  ;; Speed up prover
-  (pg-autotest eval (isar-tracing:auto-quickcheck-toggle 0))
-  (pg-autotest eval (isar-tracing:auto-solve-direct-toggle 0)) ; autosolve 
hammers this!
-  (pg-autotest eval (proof-full-annotation-toggle 0))
-  (pg-autotest eval (isar-proof:parallel-proofs-toggle 0))
-  (proof-shell-wait)
-
-  (pg-autotest script-wholefile "isar/Example-Tokens.thy")
-
-  (pg-autotest remark "Testing prove-as-you-go (not replay)")
-  (find-file ".autotest.thy")
-  (erase-buffer) ; just in case exists
-  (setq buffer-file-name nil)
-  (pg-autotest eval (proof-electric-terminator-toggle 1))
-  (pg-autotest eval (insert "theory Example imports Main begin ")) ; no \n
-  (proof-electric-terminator)
-  (pg-autotest eval (insert "theorem and_comms: \"A & B --> B & A\"\n"))
-  (proof-electric-terminator)
-  (pg-autotest eval (insert "apply auto done\n"))
-  (pg-autotest eval (insert "end"))
-  (proof-electric-terminator)
-  (pg-autotest assert-full)
-  ;; Test Trac#138
-  (pg-autotest eval (proof-undo-last-successful-command))
-  (proof-shell-wait)
-  (pg-autotest eval (proof-goto-end-of-locked))
-  (pg-autotest eval (insert "(* this is a comment *)"))
-  (pg-autotest eval (proof-goto-point))
-  (proof-shell-wait)
-  (pg-autotest eval (skip-chars-backward " \n\t"))
-  (pg-autotest eval (insert " ")) ;; shouldn't give read-only error!
-  (set-buffer-modified-p nil)
-  (kill-buffer ".autotest.thy")
-
-  (pg-autotest remark "Now in tokens mode")
-  (pg-autotest eval (proof-unicode-tokens-toggle))
-  (pg-autotest script-wholefile "isar/Example-Tokens.thy")
-
-  (pg-autotest remark "Testing random jumps and edits")
-  (pg-autotest script-randomjumps "isar/Example.thy" 8)
-
-  (when isar-long-tests
-    (pg-autotest remark "Larger files...")
-    (pg-autotest script-wholefile "etc/isar/AHundredTheorems.thy")
-    (pg-autotest script-wholefile "isar/ex/Tarski.thy")
-    (pg-autotest script-randomjumps "isar/ex/Tarski.thy" 10)) ; better test?
-
-
-  (pg-autotest remark "Testing restarting the prover")
-  (pg-autotest quit-prover)
-
-
-  (pg-autotest remark           "Simple test of multiple file behaviour:")
-  (pg-autotest script-wholefile  "etc/isar/multiple/C.thy")
-  (pg-autotest assert-processed   "etc/isar/multiple/C.thy")
-  (pg-autotest assert-processed   "etc/isar/multiple/A.thy")
-  (pg-autotest assert-processed   "etc/isar/multiple/B.thy")
-  (pg-autotest retract-file       "etc/isar/multiple/B.thy")
-  (pg-autotest assert-unprocessed "etc/isar/multiple/B.thy")
-  (pg-autotest assert-unprocessed "etc/isar/multiple/C.thy")
-  (pg-autotest assert-processed   "etc/isar/multiple/A.thy")
-
-
-  (pg-autotest quit-prover)
-  
-  (pg-autotest remark  "Complete")
-  (pg-autotest timetaken 'total)
-
-  (pg-autotest exit)
-
-  )
diff --git a/isar/isar-find-theorems.el b/isar/isar-find-theorems.el
deleted file mode 100644
index 15da9f6..0000000
--- a/isar/isar-find-theorems.el
+++ /dev/null
@@ -1,489 +0,0 @@
-;; isar-find-theorems.el    A search form for Isabelle's find_theorems command.
-;;
-;; Copyright (C) 2007 Tjark Weber <tjark.weber@gmx.de>
-;;
-;; This program is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU General Public License
-;; as published by the Free Software Foundation; either version 2
-;; of the License, or (at your option) any later version.
-;;
-;; $Id$
-;;
-
-(require 'pg-vars)
-(declare-function proof-find-theorems "pg-user")
-
-
-;; search form field values
-
-(defvar isar-find-theorems-data (list
-  ""      ;; num
-  ""      ;; pattern
-  "none"  ;; intro
-  "none"  ;; elim
-  "none"  ;; dest
-  ""      ;; name
-  ""      ;; simp
-  )
-  "Values of the Find Theorems search form's fields.")
-
-;; make the original (minibuffer based) "Find theorems" command (from
-;; ../generic/pg-user.el) available as isar-find-theorems-minibuffer;
-;; return '(nil) so that isar-find-theorems-minibuffer works as a
-;; value for isar-find-theorems-command
-
-(defun isar-find-theorems-minibuffer ()
-  "Search for items containing given constants (using the minibuffer)."
-  (interactive)
-  (let ((proof-find-theorems-command "find_theorems %s"))
-    (call-interactively 'proof-find-theorems))
-  '(nil))
-
-;; isar-find-theorems-form (just like isar-find-theorems-minibuffer) can be
-;; called interactively, and can be used as a value for
-;; proof-find-theorems-command (returning '(nil) means that the actual
-;; "find_theorems" command will NOT be issued to Isabelle by
-;; proof-find-theorems in this case, but only later on by a handler function
-;; for the form's "Find" button)
-
-(defun isar-find-theorems-form ()
-  "Search for items containing given constants (using a search form)."
-  (interactive)
-  (apply 'isar-find-theorems-create-searchform isar-find-theorems-data)
-  '(nil))
-
-;; update the universal key bindings (see ../generic/pg-vars.el)
-;;
-;; C-c C-a C-m is bound to isar-find-theorems-minibuffer
-;; C-c C-a C-f is bound to isar-find-theorems-form
-;;
-;; Note that C-c C-a C-f, although C-c C-a usually invokes the prover
-;; assistant specific keymap, is defined as a universal key binding here.
-;; This way it will be available in the same buffers as C-c C-f.
-
-(setq proof-universal-keys
-  (cons
-    '([(control c) (control a) (control m)] . isar-find-theorems-minibuffer)
-    (cons
-      '([(control c) (control a) (control f)] . isar-find-theorems-form)
-      proof-universal-keys)))
-
-;; Documentation, taken from isabelle/NEWS:
-;;
-;; * Command 'find_theorems' searches for a list of criteria instead of a
-;; list of constants. Known criteria are: intro, elim, dest, name:string,
-;; simp:term, and any term. Criteria can be preceded by '-' to select
-;; theorems that do not match. Intro, elim, dest select theorems that
-;; match the current goal, name:s selects theorems whose fully qualified
-;; name contain s, and simp:term selects all simplification rules whose
-;; lhs match term.  Any other term is interpreted as pattern and selects
-;; all theorems matching the pattern. Available in ProofGeneral under
-;; 'ProofGeneral -> Find Theorems' or C-c C-f.  Example:
-;;
-;;   C-c C-f (100) "(_::nat) + _ + _" intro -name: "HOL."
-;;
-;; prints the last 100 theorems matching the pattern "(_::nat) + _ + _",
-;; matching the current goal as introduction rule and not having "HOL."
-;; in their name (i.e. not being defined in theory HOL).
-
-;; search form widgets (set in isar-find-theorems-create-searchform
-;; and accessed in the "Find" handler)
-
-(defvar isar-find-theorems-widget-number nil
-  "Search form widget for the number of theorems.")
-
-(defvar isar-find-theorems-widget-pattern nil
-  "Search form widget for search patterns.")
-
-(defvar isar-find-theorems-widget-intro nil
-  "Search form widget for intro rules.")
-
-(defvar isar-find-theorems-widget-elim nil
-  "Search form widget for elim rules.")
-
-(defvar isar-find-theorems-widget-dest nil
-  "Search form widget for dest rules.")
-
-(defvar isar-find-theorems-widget-name nil
-  "Search form widget for theorem names.")
-
-(defvar isar-find-theorems-widget-simp nil
-  "Search form widget for simplification rules.")
-
-;; creates (or switches to) the search form buffer
-
-(defun isar-find-theorems-create-searchform
-    (num pattern intro elim dest name simp &optional errmsg)
-  "Create (or switch to) the Find Theorems search form buffer."
-
-  (if (get-buffer "*Find Theorems*")
-    (switch-to-buffer "*Find Theorems*")
-
-  ;; create a new search form
-
-  (switch-to-buffer "*Find Theorems*")
-
-  (widget-insert
-    (concat "\n  "
-      (if (fboundp 'propertize)
-       (propertize "Find Theorems" 'face 'bold)
-      "Find Theorems")
-      "\n\n"))
-
-  ;; pattern
-  (widget-insert "  Search pattern: ")
-  (setq isar-find-theorems-widget-pattern (widget-create 'editable-field
-    :size 50
-    :help-echo "A pattern to match in the theorem."
-    pattern))
-  (widget-insert " ")
-  (widget-create 'push-button
-    :help-echo "Click <mouse-2> for help."
-    :notify (lambda (&rest ignore) (isar-find-theorems-create-help))
-    "?")
-
-  ;; name
-  (widget-insert "\n\n  Theorem name:   ")
-  (setq isar-find-theorems-widget-name (widget-create 'editable-field
-    :size 50
-    :help-echo "Part of the theorem's name."
-    name))
-  (widget-insert " ")
-  (widget-create 'push-button
-    :help-echo "Click <mouse-2> for help."
-    :notify (lambda (&rest ignore) (isar-find-theorems-create-help))
-    "?")
-
-  ;; intro
-  (widget-insert "\n\n  Rules matching the current goal: ")
-  (widget-create 'push-button
-    :help-echo "Click <mouse-2> for help."
-    :notify (lambda (&rest ignore) (isar-find-theorems-create-help))
-    "?")
-  (widget-insert "\n\n    INTRO:\n      ")
-    (setq isar-find-theorems-widget-intro (widget-create 'radio-button-choice
-    :value intro
-    :indent 6
-    :button-args (list :help-echo "Click <mouse-2> to select one option.")
-    '(item "none") '(item "intro") '(item "-intro")))
-
-  ;; elim
-  (widget-insert "\n    ELIM:\n      ")
-  (setq isar-find-theorems-widget-elim (widget-create 'radio-button-choice
-    :value elim
-    :indent 6
-    :button-args (list :help-echo "Click <mouse-2> to select one option.")
-    '(item "none") '(item "elim") '(item "-elim")))
-
-  ;; dest
-  (widget-insert "\n    DEST:\n      ")
-  (setq isar-find-theorems-widget-dest (widget-create 'radio-button-choice
-    :value dest
-    :indent 6
-    :button-args (list :help-echo "Click <mouse-2> to select one option.")
-    '(item "none") '(item "dest") '(item "-dest")))
-
-  ;; simp
-  (widget-insert "\n  Simplification pattern: ")
-  (setq isar-find-theorems-widget-simp (widget-create 'editable-field
-    :size 42
-    :help-echo
-      "A pattern to match in the left-hand side of a simplification rule."
-    simp))
-  (widget-insert " ")
-  (widget-create 'push-button
-    :help-echo "Click <mouse-2> for help."
-    :notify (lambda (&rest ignore) (isar-find-theorems-create-help))
-    "?")
-
-  ;; num
-  (widget-insert "\n\n  Number of results:      ")
-  (setq isar-find-theorems-widget-number (widget-create 'editable-field
-    :size 10
-    :help-echo "Maximum number of results to be displayed."
-    num))
-  (widget-insert " ")
-  (widget-create 'push-button
-    :help-echo "Click <mouse-2> for help."
-    :notify (lambda (&rest ignore) (isar-find-theorems-create-help))
-    "?")
-
-  ;; Find
-  (widget-insert "\n\n  ")
-    (widget-create 'push-button
-    :help-echo "Click <mouse-2> to submit this form."
-    :notify (lambda (&rest ignore)
-      (let ((num     (widget-value isar-find-theorems-widget-number))
-           (pattern (widget-value isar-find-theorems-widget-pattern))
-           (intro   (widget-value isar-find-theorems-widget-intro))
-           (elim    (widget-value isar-find-theorems-widget-elim))
-           (dest    (widget-value isar-find-theorems-widget-dest))
-           (name    (widget-value isar-find-theorems-widget-name))
-           (simp    (widget-value isar-find-theorems-widget-simp)))
-      (kill-buffer "*Find Theorems*")
-      (isar-find-theorems-submit-searchform
-       num pattern intro elim dest name simp)))
-    "Find")
-
-  ;; Reset form
-    (widget-insert "    ")
-    (widget-create 'push-button
-    :help-echo "Click <mouse-2> to reset this form."
-    :notify (lambda (&rest ignore)
-      (kill-buffer "*Find Theorems*")
-      (isar-find-theorems-create-searchform
-       "" "" "none" "none" "none" "" ""))
-    "Reset Form")
-    (widget-insert "\n")
-
-  ;; errmsg
-  (if errmsg
-    (widget-insert (concat "\n    "
-      (if (fboundp 'propertize)
-       (propertize (concat errmsg "\n    See help for details.") 'face 'bold)
-      (concat errmsg "\n    See help for details."))
-      "\n")))
-
-  (use-local-map widget-keymap)
-  (widget-setup)
-
-  (goto-char 37))  ;; beginning of the "Search pattern" text field
-)
-
-;; creates the search form help buffer
-
-(defun isar-find-theorems-create-help ()
-  "Create a help text buffer for the Find Theorems search form."
-
-  (with-output-to-temp-buffer "*Find Theorems - Help*"
-    (princ (concat
-      "\n"
-      "*** Find Theorems - Help ***\n"
-      "\n"
-      "Command \"Find Theorems\" (C-c C-f) searches for theorems that satisfy 
a list of\n"
-      "user-supplied criteria. Known criteria are:\n"
-      "\n"
-      "* Search pattern: a pattern that occurs in the theorem, e.g. \"(_::nat) 
+ _\".\n"
-      "\n"
-      "* Theorem name: a substring of the theorem's fully qualified name. 
(Treats \"*\"\n"
-      "                as a wildcard character.)\n"
-      "\n"
-      "* Intro, Elim, Dest: select theorems that match the current goal as\n"
-      "                     introduction/elimination/destruction rule.\n"
-      "\n"
-      "* Simplification pattern: selects simplification rules whose left-hand 
side\n"
-      "                          matches the given pattern.\n"
-      "\n"
-      "* Number of results: an upper bound on the number of theorems that 
are\n"
-      "                     displayed. (Leave empty to use Isabelle's default 
value.)\n"
-      "\n"
-      "Multiple search patterns, theorem names and simplification patterns can 
be\n"
-      "given, separated by spaces. (Patterns containing a space must be 
enclosed in\n"
-      "double-quotes.) Criteria can be preceded by \"-\" to select theorems 
that do not.\n"
-      "match. (Patterns that begin with a \"-\" must be enclosed in 
double-quotes.)\n"
-      "\n"
-      "A minibuffer based \"Find Theorems\" command is available via (C-c C-a 
C-m). See\n"
-      "the Isabelle NEWS file for up-to-date documentation. A search form is 
available\n"
-      "via (C-c C-a C-f). Variable proof-find-theorems-command (customizable 
via\n"
-      "Proof-General > Advanced > Internals > Prover Config) controls the 
default\n"
-      "behavior of the \"Find Theorems\" command: set to 
isar-find-theorems-form or\n"
-      "isar-find-theorems-minibuffer.\n"
-  )))
-)
-
-;; parses the search form's data and calls isar-find-theorems
-;; with an appropriate argument string, or displays the search
-;; form again, but with an error message
-
-(defun isar-find-theorems-submit-searchform
-    (num pattern intro elim dest name simp)
-  "Parse the Find Theorems search form's data."
-
-  (let (num_ pattern_ intro_ elim_ dest_ name_ simp_ searchstring)
-
-  ;; pattern
-  (setq pattern_ (isar-find-theorems-parse-criteria "" pattern))
-
-  (if (not (pop pattern_))
-    (isar-find-theorems-create-searchform
-      num pattern intro elim dest name simp
-      (concat "Invalid search pattern: " (car pattern_)))
-
-  (setq pattern_ (car pattern_))
-
-  ;; name
-  (setq name_ (isar-find-theorems-parse-criteria "name: " name))
-
-  (if (not (pop name_))
-    (isar-find-theorems-create-searchform
-      num pattern intro elim dest name simp
-      (concat "Invalid theorem name: " (car name_)))
-
-  (setq name_ (car name_))
-
-  ;; simp
-  (setq simp_ (isar-find-theorems-parse-criteria "simp: " simp))
-
-  (if (not (pop simp_))
-    (isar-find-theorems-create-searchform
-      num pattern intro elim dest name simp
-      (concat "Invalid simplification pattern: " (car simp_)))
-
-  (setq simp_ (car simp_))
-
-  ;; num
-  (setq num_ (isar-find-theorems-parse-number num))
-
-  (if (not num_)
-    (isar-find-theorems-create-searchform
-      num pattern intro elim dest name simp
-      "Number of results must be a positive integer.")
-
-  ;; intro
-  (setq intro_ (if (equal intro "none") "" intro))
-
-  ;; elim
-  (setq elim_ (if (equal elim "none") "" elim))
-
-  ;; dest
-  (setq dest_ (if (equal dest "none") "" dest))
-
-  ;; success: save data, call isar-find-theorems
-  (setq isar-find-theorems-data
-    (list num pattern intro elim dest name simp))
-
-  (setq searchstring (format "find_theorems %s"
-    (mapconcat 'identity
-      (isar-find-theorems-filter-empty
-       (list num_ pattern_ intro_ elim_ dest_ name_ simp_))
-      " ")))
-
-  ;; note that proof-find-theorems with an argument provided
-  ;; will merely pass this on to Isabelle, and NOT display
-  ;; the search form again
-  (proof-find-theorems searchstring))))))
-)
-
-;; "Multiple search patterns, theorem names and simplification terms can be
-;; given, separated by spaces. (Patterns containing a space must be enclosed
-;; in double-quotes.) Criteria can be preceded by "-" to select theorems that
-;; do not match. (Patterns that begin with a "-" must be enclosed in double-
-;; quotes.)"
-;;
-;; returns (t parsed-string) (where parsed-string may be empty) or
-;; (nil errmsg) in case of an error
-
-(defun isar-find-theorems-parse-criteria (option-string criteria-string)
-  "Parse search patterns/theorem names/simplification terms,
-separated by \" \", possibly preceded by \"-\", and possibly
-escaped by double-quotes."
-
-  ;; This code might benefit greatly from the use of regexps.
-
-  (let ((tokens nil) (errmsg nil))
-
-  ;; turn criteria-string into a list of (string) tokens
-  (while (and (not (equal criteria-string "")) (not errmsg))
-
-    ;; ignore space
-    (if (equal (elt criteria-string 0) ?\ )
-      (setq criteria-string (substring criteria-string 1))
-
-    ;; - is a token
-    ;; Note: This is still a bit weird, as it treats a - following a -
-    ;;       just like the first -, i.e. not as part of a pattern. Oh
-    ;;       well.
-    (if (equal (elt criteria-string 0) ?-)
-      (progn
-       (setq tokens (cons "-" tokens))
-       (setq criteria-string (substring criteria-string 1)))
-
-    ;; " starts a token: search for the next ", regard as one token
-    ;; Note: This is still a bit weird, as it does not require the
-    ;;       closing double-quotes to be followed by a space. Oh well.
-    (if (equal (elt criteria-string 0) ?\")
-      (let ((i 1))
-       (while (and (< i (length criteria-string))
-                   (not (equal (elt criteria-string i) ?\")))
-         (setq i (1+ i)))
-       (if (equal i (length criteria-string))
-         (setq errmsg "missing closing double-quotes.")
-       (setq i (1+ i))
-       (setq tokens (cons (substring criteria-string 0 i) tokens))
-       (setq criteria-string (substring criteria-string i))))
-
-    ;; everything else: search for the next space, regard as one token
-    ;; Note: This is still a bit weird, as it scans over double-quotes.
-    ;;       Oh well.
-    (let ((i 1))
-      (while (and (< i (length criteria-string))
-                 (not (equal (elt criteria-string i) ?\ )))
-       (setq i (1+ i)))
-      (setq tokens (cons (substring criteria-string 0 i) tokens))
-      (setq criteria-string (substring criteria-string i)))
-    )))
-  )
-
-  (if errmsg
-    (list nil errmsg)
-
-  (setq tokens (nreverse tokens))
-
-  ;; convert the tokens into argument strings; make sure every "-" is
-  ;; followed by a pattern/name (i.e. not by another "-")
-  (let ((strings nil) (negated nil))
-
-  (while (and tokens (not errmsg))
-    (let ((token (car tokens)))
-    (if (equal token "-")
-      (if negated
-       (setq errmsg "- may not be followed by another -.")
-      (setq negated t)
-      (setq tokens (cdr tokens)))
-    (setq strings (cons
-      (concat (if negated "-" "") option-string
-       ;; wrap token in double-quotes if necessary
-       (if (equal (elt token 0) ?\") token (concat "\"" token "\"")))
-      strings))
-    (setq negated nil)
-    (setq tokens (cdr tokens))))
-  )
-
-  (if errmsg
-    (list nil errmsg)
-
-  (if negated
-    (list nil "- must be followed by a search criterion.")
-
-  (setq strings (nreverse strings))
-
-  (list t (mapconcat 'identity strings " "))
-  )))))
-)
-
-;; auxiliary functions
-
-;; returns "" if num is "", "(num)" if num is a string encoding a positive
-;; integer, and nil otherwise
-
-(defun isar-find-theorems-parse-number (num)
-  "Parse the number of theorems to be displayed."
-  (if (equal num "")
-    ""
-  (let ((numval (string-to-number num)))
-  (if (and (wholenump numval) (not (equal numval 0)))
-    (concat "(" (number-to-string numval) ")")
-  nil)))
-)
-
-(defun isar-find-theorems-filter-empty (strings)
-  "Build a new list by removing empty strings from a (non-circular) list."
-  (if (not strings)
-    nil
-  (if (equal (car strings) "")
-    (isar-find-theorems-filter-empty (cdr strings))
-  (cons (car strings)
-    (isar-find-theorems-filter-empty (cdr strings)))))
-)
-
-(provide 'isar-find-theorems)
diff --git a/isar/isar-keywords.el b/isar/isar-keywords.el
deleted file mode 100644
index 07f9861..0000000
--- a/isar/isar-keywords.el
+++ /dev/null
@@ -1,655 +0,0 @@
-;;
-;; Keyword classification tables for Isabelle/Isar.
-;; Generated from Pure + Pure-ProofGeneral + HOL + HOLCF + IOA + HOL-Boogie + 
HOL-Nominal + HOL-Statespace.
-;; *** DO NOT EDIT *** DO NOT EDIT *** DO NOT EDIT ***
-;;
-
-(defconst isar-keywords-major
-  '("\\."
-    "\\.\\."
-    "Isabelle\\.command"
-    "Isar\\.begin_document"
-    "Isar\\.define_command"
-    "Isar\\.edit_document"
-    "Isar\\.end_document"
-    "ML"
-    "ML_command"
-    "ML_prf"
-    "ML_val"
-    "ProofGeneral\\.inform_file_processed"
-    "ProofGeneral\\.inform_file_retracted"
-    "ProofGeneral\\.kill_proof"
-    "ProofGeneral\\.pr"
-    "ProofGeneral\\.process_pgip"
-    "ProofGeneral\\.restart"
-    "ProofGeneral\\.undo"
-    "abbreviation"
-    "also"
-    "apply"
-    "apply_end"
-    "arities"
-    "assume"
-    "atom_decl"
-    "attribute_setup"
-    "automaton"
-    "ax_specification"
-    "axiomatization"
-    "axioms"
-    "back"
-    "boogie_end"
-    "boogie_open"
-    "boogie_status"
-    "boogie_vc"
-    "by"
-    "cannot_undo"
-    "case"
-    "cd"
-    "chapter"
-    "class"
-    "class_deps"
-    "classes"
-    "classrel"
-    "code_abort"
-    "code_class"
-    "code_const"
-    "code_datatype"
-    "code_deps"
-    "code_include"
-    "code_instance"
-    "code_library"
-    "code_module"
-    "code_modulename"
-    "code_monad"
-    "code_pred"
-    "code_reflect"
-    "code_reserved"
-    "code_thms"
-    "code_type"
-    "coinductive"
-    "coinductive_set"
-    "commit"
-    "constdefs"
-    "consts"
-    "consts_code"
-    "context"
-    "corollary"
-    "cpodef"
-    "datatype"
-    "declaration"
-    "declare"
-    "def"
-    "default_sort"
-    "defer"
-    "defer_recdef"
-    "definition"
-    "defs"
-    "disable_pr"
-    "display_drafts"
-    "domain"
-    "domain_isomorphism"
-    "done"
-    "enable_pr"
-    "end"
-    "equivariance"
-    "example_proof"
-    "exit"
-    "export_code"
-    "extract"
-    "extract_type"
-    "finalconsts"
-    "finally"
-    "find_consts"
-    "find_theorems"
-    "fix"
-    "fixpat"
-    "fixrec"
-    "from"
-    "full_prf"
-    "fun"
-    "function"
-    "global"
-    "guess"
-    "have"
-    "header"
-    "help"
-    "hence"
-    "hide_class"
-    "hide_const"
-    "hide_fact"
-    "hide_type"
-    "inductive"
-    "inductive_cases"
-    "inductive_set"
-    "init_toplevel"
-    "instance"
-    "instantiation"
-    "interpret"
-    "interpretation"
-    "judgment"
-    "kill"
-    "kill_thy"
-    "lemma"
-    "lemmas"
-    "let"
-    "linear_undo"
-    "local"
-    "local_setup"
-    "locale"
-    "method_setup"
-    "moreover"
-    "new_domain"
-    "next"
-    "nitpick"
-    "nitpick_params"
-    "no_notation"
-    "no_syntax"
-    "no_translations"
-    "no_type_notation"
-    "nominal_datatype"
-    "nominal_inductive"
-    "nominal_inductive2"
-    "nominal_primrec"
-    "nonterminals"
-    "normal_form"
-    "notation"
-    "note"
-    "obtain"
-    "oops"
-    "oracle"
-    "overloading"
-    "parse_ast_translation"
-    "parse_translation"
-    "pcpodef"
-    "pr"
-    "prefer"
-    "presume"
-    "pretty_setmargin"
-    "prf"
-    "primrec"
-    "print_abbrevs"
-    "print_antiquotations"
-    "print_ast_translation"
-    "print_attributes"
-    "print_binds"
-    "print_cases"
-    "print_claset"
-    "print_classes"
-    "print_codeproc"
-    "print_codesetup"
-    "print_commands"
-    "print_configs"
-    "print_context"
-    "print_drafts"
-    "print_facts"
-    "print_induct_rules"
-    "print_interps"
-    "print_locale"
-    "print_locales"
-    "print_methods"
-    "print_orders"
-    "print_quotconsts"
-    "print_quotients"
-    "print_quotmaps"
-    "print_rules"
-    "print_simpset"
-    "print_statement"
-    "print_syntax"
-    "print_theorems"
-    "print_theory"
-    "print_trans_rules"
-    "print_translation"
-    "proof"
-    "prop"
-    "pwd"
-    "qed"
-    "quickcheck"
-    "quickcheck_params"
-    "quit"
-    "quotient_definition"
-    "quotient_type"
-    "realizability"
-    "realizers"
-    "recdef"
-    "recdef_tc"
-    "record"
-    "refute"
-    "refute_params"
-    "remove_thy"
-    "rep_datatype"
-    "repdef"
-    "schematic_corollary"
-    "schematic_lemma"
-    "schematic_theorem"
-    "sect"
-    "section"
-    "setup"
-    "show"
-    "simproc_setup"
-    "sledgehammer"
-    "sledgehammer_params"
-    "smt_status"
-    "sorry"
-    "specification"
-    "statespace"
-    "subclass"
-    "sublocale"
-    "subsect"
-    "subsection"
-    "subsubsect"
-    "subsubsection"
-    "syntax"
-    "term"
-    "termination"
-    "text"
-    "text_raw"
-    "then"
-    "theorem"
-    "theorems"
-    "theory"
-    "thm"
-    "thm_deps"
-    "thus"
-    "thy_deps"
-    "touch_thy"
-    "translations"
-    "txt"
-    "txt_raw"
-    "typ"
-    "type_notation"
-    "typed_print_translation"
-    "typedecl"
-    "typedef"
-    "types"
-    "types_code"
-    "ultimately"
-    "undo"
-    "undos_proof"
-    "unfolding"
-    "unused_thms"
-    "use"
-    "use_thy"
-    "using"
-    "value"
-    "values"
-    "welcome"
-    "with"
-    "write"
-    "{"
-    "}"))
-
-(defconst isar-keywords-minor
-  '("actions"
-    "advanced"
-    "and"
-    "assumes"
-    "attach"
-    "avoids"
-    "begin"
-    "binder"
-    "compose"
-    "congs"
-    "constrains"
-    "contains"
-    "datatypes"
-    "defines"
-    "file"
-    "fixes"
-    "for"
-    "functions"
-    "hide_action"
-    "hints"
-    "identifier"
-    "if"
-    "imports"
-    "in"
-    "infix"
-    "infixl"
-    "infixr"
-    "initially"
-    "inputs"
-    "internals"
-    "is"
-    "lazy"
-    "module_name"
-    "monos"
-    "morphisms"
-    "notes"
-    "obtains"
-    "open"
-    "output"
-    "outputs"
-    "overloaded"
-    "permissive"
-    "pervasive"
-    "post"
-    "pre"
-    "rename"
-    "restrict"
-    "shows"
-    "signature"
-    "states"
-    "structure"
-    "to"
-    "transitions"
-    "transrel"
-    "unchecked"
-    "uses"
-    "where"))
-
-(defconst isar-keywords-control
-  '("Isabelle\\.command"
-    "Isar\\.begin_document"
-    "Isar\\.define_command"
-    "Isar\\.edit_document"
-    "Isar\\.end_document"
-    "ProofGeneral\\.inform_file_processed"
-    "ProofGeneral\\.inform_file_retracted"
-    "ProofGeneral\\.kill_proof"
-    "ProofGeneral\\.process_pgip"
-    "ProofGeneral\\.restart"
-    "ProofGeneral\\.undo"
-    "cannot_undo"
-    "exit"
-    "init_toplevel"
-    "kill"
-    "linear_undo"
-    "quit"
-    "undo"
-    "undos_proof"))
-
-(defconst isar-keywords-diag
-  '("ML_command"
-    "ML_val"
-    "ProofGeneral\\.pr"
-    "boogie_status"
-    "cd"
-    "class_deps"
-    "code_deps"
-    "code_thms"
-    "commit"
-    "disable_pr"
-    "display_drafts"
-    "enable_pr"
-    "export_code"
-    "find_consts"
-    "find_theorems"
-    "full_prf"
-    "header"
-    "help"
-    "kill_thy"
-    "nitpick"
-    "normal_form"
-    "pr"
-    "pretty_setmargin"
-    "prf"
-    "print_abbrevs"
-    "print_antiquotations"
-    "print_attributes"
-    "print_binds"
-    "print_cases"
-    "print_claset"
-    "print_classes"
-    "print_codeproc"
-    "print_codesetup"
-    "print_commands"
-    "print_configs"
-    "print_context"
-    "print_drafts"
-    "print_facts"
-    "print_induct_rules"
-    "print_interps"
-    "print_locale"
-    "print_locales"
-    "print_methods"
-    "print_orders"
-    "print_quotconsts"
-    "print_quotients"
-    "print_quotmaps"
-    "print_rules"
-    "print_simpset"
-    "print_statement"
-    "print_syntax"
-    "print_theorems"
-    "print_theory"
-    "print_trans_rules"
-    "prop"
-    "pwd"
-    "quickcheck"
-    "refute"
-    "remove_thy"
-    "sledgehammer"
-    "smt_status"
-    "term"
-    "thm"
-    "thm_deps"
-    "thy_deps"
-    "touch_thy"
-    "typ"
-    "unused_thms"
-    "use_thy"
-    "value"
-    "values"
-    "welcome"))
-
-(defconst isar-keywords-theory-begin
-  '("theory"))
-
-(defconst isar-keywords-theory-switch
-  '())
-
-(defconst isar-keywords-theory-end
-  '("end"))
-
-(defconst isar-keywords-theory-heading
-  '("chapter"
-    "section"
-    "subsection"
-    "subsubsection"))
-
-(defconst isar-keywords-theory-decl
-  '("ML"
-    "abbreviation"
-    "arities"
-    "atom_decl"
-    "attribute_setup"
-    "automaton"
-    "axiomatization"
-    "axioms"
-    "boogie_end"
-    "boogie_open"
-    "class"
-    "classes"
-    "classrel"
-    "code_abort"
-    "code_class"
-    "code_const"
-    "code_datatype"
-    "code_include"
-    "code_instance"
-    "code_library"
-    "code_module"
-    "code_modulename"
-    "code_monad"
-    "code_reflect"
-    "code_reserved"
-    "code_type"
-    "coinductive"
-    "coinductive_set"
-    "constdefs"
-    "consts"
-    "consts_code"
-    "context"
-    "datatype"
-    "declaration"
-    "declare"
-    "default_sort"
-    "defer_recdef"
-    "definition"
-    "defs"
-    "domain"
-    "domain_isomorphism"
-    "equivariance"
-    "extract"
-    "extract_type"
-    "finalconsts"
-    "fixpat"
-    "fixrec"
-    "fun"
-    "global"
-    "hide_class"
-    "hide_const"
-    "hide_fact"
-    "hide_type"
-    "inductive"
-    "inductive_set"
-    "instantiation"
-    "judgment"
-    "lemmas"
-    "local"
-    "local_setup"
-    "locale"
-    "method_setup"
-    "new_domain"
-    "nitpick_params"
-    "no_notation"
-    "no_syntax"
-    "no_translations"
-    "no_type_notation"
-    "nominal_datatype"
-    "nonterminals"
-    "notation"
-    "oracle"
-    "overloading"
-    "parse_ast_translation"
-    "parse_translation"
-    "primrec"
-    "print_ast_translation"
-    "print_translation"
-    "quickcheck_params"
-    "quotient_definition"
-    "realizability"
-    "realizers"
-    "recdef"
-    "record"
-    "refute_params"
-    "repdef"
-    "setup"
-    "simproc_setup"
-    "sledgehammer_params"
-    "statespace"
-    "syntax"
-    "text"
-    "text_raw"
-    "theorems"
-    "translations"
-    "type_notation"
-    "typed_print_translation"
-    "typedecl"
-    "types"
-    "types_code"
-    "use"))
-
-(defconst isar-keywords-theory-script
-  '("inductive_cases"))
-
-(defconst isar-keywords-theory-goal
-  '("ax_specification"
-    "boogie_vc"
-    "code_pred"
-    "corollary"
-    "cpodef"
-    "example_proof"
-    "function"
-    "instance"
-    "interpretation"
-    "lemma"
-    "nominal_inductive"
-    "nominal_inductive2"
-    "nominal_primrec"
-    "pcpodef"
-    "quotient_type"
-    "recdef_tc"
-    "rep_datatype"
-    "schematic_corollary"
-    "schematic_lemma"
-    "schematic_theorem"
-    "specification"
-    "subclass"
-    "sublocale"
-    "termination"
-    "theorem"
-    "typedef"))
-
-(defconst isar-keywords-qed
-  '("\\."
-    "\\.\\."
-    "by"
-    "done"
-    "sorry"))
-
-(defconst isar-keywords-qed-block
-  '("qed"))
-
-(defconst isar-keywords-qed-global
-  '("oops"))
-
-(defconst isar-keywords-proof-heading
-  '("sect"
-    "subsect"
-    "subsubsect"))
-
-(defconst isar-keywords-proof-goal
-  '("have"
-    "hence"
-    "interpret"))
-
-(defconst isar-keywords-proof-block
-  '("next"
-    "proof"))
-
-(defconst isar-keywords-proof-open
-  '("{"))
-
-(defconst isar-keywords-proof-close
-  '("}"))
-
-(defconst isar-keywords-proof-chain
-  '("finally"
-    "from"
-    "then"
-    "ultimately"
-    "with"))
-
-(defconst isar-keywords-proof-decl
-  '("ML_prf"
-    "also"
-    "let"
-    "moreover"
-    "note"
-    "txt"
-    "txt_raw"
-    "unfolding"
-    "using"
-    "write"))
-
-(defconst isar-keywords-proof-asm
-  '("assume"
-    "case"
-    "def"
-    "fix"
-    "presume"))
-
-(defconst isar-keywords-proof-asm-goal
-  '("guess"
-    "obtain"
-    "show"
-    "thus"))
-
-(defconst isar-keywords-proof-script
-  '("apply"
-    "apply_end"
-    "back"
-    "defer"
-    "prefer"))
-
-(provide 'isar-keywords)
diff --git a/isar/isar-profiling.el b/isar/isar-profiling.el
deleted file mode 100644
index ae8a8f8..0000000
--- a/isar/isar-profiling.el
+++ /dev/null
@@ -1,58 +0,0 @@
-;; isar-profiling.el: simple profiling Isar Proof General.
-;;
-;; You can run these tests by issuing "make profile.isar" in PG home dir.
-;;
-;; $Id$
-;;
-
-(require 'proof-site)
-(proof-ready-for-assistant 'isar)
-
-(declare-function isar-tracing:auto-solve-toggle "isar.el")
-(declare-function isar-tracing:auto-quickcheck-toggle "isar.el")
-(declare-function isar-proof:parallel-proofs-toggle "isar.el")
-
-(require 'pg-autotest)
-(require 'pg-dev)
-
-(unless (bound-and-true-p byte-compile-current-file)
-
-  (pg-autotest log ".profile.log")  ; convention
-
-  (pg-autotest timestart 'total)
-
-  (pg-autotest-find-file "etc/isar/AHundredTheorems.thy")
-  (pg-autotest eval (proof-shell-ready-prover))
-  (pg-autotest eval (isar-tracing:auto-solve-toggle 0)) ; autosolve hammers 
this!
-  (pg-autotest eval (isar-tracing:auto-quickcheck-toggle 0))
-  (pg-autotest eval (isar-proof:parallel-proofs-toggle 0))
-  (pg-autotest eval (proof-full-annotation-toggle 0))
-  (proof-shell-wait)
-
-  ;; Simple profiling test.  Cf TRAC #324
-  (pg-autotest timestart)
-  (pg-autotest process-wholefile "etc/isar/AHundredTheorems.thy")
-  (pg-autotest timetaken)
-
-  ;; Same again with profiling
-  (profile-pg)
-  (pg-autotest timestart)
-  (pg-autotest process-wholefile "etc/isar/AHundredTheorems.thy")
-  (pg-autotest timetaken)
-  (pg-autotest timestart)
-  (pg-autotest process-wholefile "etc/isar/AHundredTheorems.thy")
-  (pg-autotest timetaken)
-  (pg-autotest timestart)
-  (pg-autotest process-wholefile "etc/isar/AHundredProofs.thy")
-  (pg-autotest timetaken)
-  (elp-results)
-  (let ((results 
-        (with-current-buffer "*ELP Profiling Results*"
-          (buffer-string))))
-    (with-current-buffer pg-autotest-log
-      (goto-char (point-min))
-      (insert "ELP Profiling Results: \n" results "\n\n")))
-
-  (pg-autotest exit)
-
-  )
diff --git a/isar/isar-syntax.el b/isar/isar-syntax.el
deleted file mode 100644
index 4b5f2e4..0000000
--- a/isar/isar-syntax.el
+++ /dev/null
@@ -1,612 +0,0 @@
-;; isar-syntax.el Syntax expressions for Isabelle/Isar  -*- lexical-binding:t 
-*-
-;; Copyright (C) 1994-2004, 2009, 2010 LFCS Edinburgh.
-;; License:   GPL (GNU GENERAL PUBLIC LICENSE)
-;;
-;; Authors:     David Aspinall <David.Aspinall@ed.ac.uk>
-;;              Markus Wenzel
-;;
-;; $Id$
-;;
-
-(eval-when-compile (require 'cl-lib))
-
-(require 'proof-syntax)
-(require 'isar-keywords)               ; NB: we want to load isar-keywords at 
runtime
-
-;; ----- character syntax
-
-(defconst isar-script-syntax-table-entries
-  '(?\$ "."
-    ?\/ "."
-    ?\\ "\\"
-    ?+  "."
-    ?-  "."
-    ?=  "."
-    ?%  "."
-    ?<  "w"
-    ?>  "w"
-    ?\& "."
-    ?.  "w"
-    ?_  "w"
-    ?\' "w"
-    ??  "w"
-    ?`  "\""
-    ?\( "()1"
-    ?\) ")(4"
-    ?\{ "(}1b"
-    ?\} "){4b"
-    ?\* ". 23n")
-   "Syntax table entries for Isar scripts.
-This list is in the right format for proof-easy-config.")
-
-(defconst isar-script-syntax-table-alist
-  ;; NB: this is used for imenu.  Probably only need word syntax
-  (let ((syn isar-script-syntax-table-entries)
-       al)
-    (while syn
-      (setq al (cons (cons (char-to-string (car syn)) (cadr syn)) al))
-      (setq syn (cddr syn)))
-    al))
-
-(defun isar-init-syntax-table ()
-  "Set appropriate values for syntax table in current buffer."
-  (let ((syn isar-script-syntax-table-entries))
-    (while syn
-      (modify-syntax-entry
-       (car syn) (cadr syn))
-      (setq syn (cddr syn)))))
-
-(defun isar-init-output-syntax-table ()
-  "Set appropriate values for syntax table for Isabelle output."
-  (isar-init-syntax-table)
-  ;; ignore strings so font-locking works inside them
-  (modify-syntax-entry ?\" " ")
-  (modify-syntax-entry ?`  " ")
-  (modify-syntax-entry ?\* ".")
-  (modify-syntax-entry ?\( "()")
-  (modify-syntax-entry ?\) ")(")
-  (modify-syntax-entry ?\{ "(}")
-  (modify-syntax-entry ?\} "){"))
-
-
-;; ----- keyword groups
-
-(defconst isar-keyword-begin "begin")
-(defconst isar-keyword-end "end")
-
-(defconst isar-keywords-theory-enclose
-  (append isar-keywords-theory-begin
-         isar-keywords-theory-switch
-         isar-keywords-theory-end))
-
-(defconst isar-keywords-theory
-  (append isar-keywords-theory-heading
-         isar-keywords-theory-decl
-         isar-keywords-theory-goal))
-
-(defconst isar-keywords-save
-  (append isar-keywords-qed
-         isar-keywords-qed-block
-         isar-keywords-qed-global))
-
-(defconst isar-keywords-proof-enclose
-  (append isar-keywords-proof-block
-         isar-keywords-proof-open
-         isar-keywords-proof-close
-         isar-keywords-qed-block))
-
-(defconst isar-keywords-proof
-  (append isar-keywords-proof-heading
-         isar-keywords-proof-goal
-         isar-keywords-proof-chain
-         isar-keywords-proof-decl
-         isar-keywords-qed))
-
-(defconst isar-keywords-proof-context
-  (append isar-keywords-proof-asm
-         isar-keywords-proof-asm-goal))
-
-(defconst isar-keywords-local-goal
-  (append isar-keywords-proof-goal
-         isar-keywords-proof-asm-goal))
-
-(defconst isar-keywords-proper
-  (append isar-keywords-theory
-         isar-keywords-proof-enclose
-         isar-keywords-proof))
-
-(defconst isar-keywords-improper
-  (append isar-keywords-theory-script
-         isar-keywords-proof-script
-         isar-keywords-qed-global))
-
-(defconst isar-keyword-level-alist
-  (append 
-   (mapcar (lambda (w) (cons w 1))
-          (append isar-keywords-theory-heading
-                  isar-keywords-theory-begin
-                  isar-keywords-theory-end))
-   (mapcar (lambda (w) (cons w 2))
-          (append isar-keywords-theory-script
-                  isar-keywords-theory-goal))
-   (mapcar (lambda (w) (cons w 3))
-          (append isar-keywords-proof-heading
-                  isar-keywords-theory-goal))
-   (mapcar (lambda (w) (cons w 4))
-          isar-keywords-proof-block)))
-
-(defconst isar-keywords-outline 
-  (mapcar 'car isar-keyword-level-alist))
-
-(defconst isar-keywords-indent-open
-  (append isar-keywords-theory-goal
-         isar-keywords-proof-goal
-         isar-keywords-proof-asm-goal
-         isar-keywords-proof-open
-          '("notepad")))
-
-(defconst isar-keywords-indent-close
-  (append isar-keywords-save
-         isar-keywords-proof-close
-          isar-keywords-theory-end))
-
-(defconst isar-keywords-indent-enclose
-  (append isar-keywords-proof-block
-         isar-keywords-proof-close
-         isar-keywords-qed-block
-          isar-keywords-theory-end
-         (list isar-keyword-begin)))
-
-
-;; ----- regular expressions
-
-(defconst isar-ext-first "\\(?:\\\\<\\^?[A-Za-z]+>\\|[A-Za-z]\\)")
-(defconst isar-ext-rest "\\(?:\\\\<\\^?[A-Za-z]+>\\|[A-Za-z0-9'_]\\)")
-
-(defconst isar-text "[^\^A- ]*")
-(defconst isar-long-id-stuff (concat "\\(?:" isar-ext-rest "\\|\\.\\)+"))
-(defconst isar-id (concat "\\(" isar-ext-first isar-ext-rest "*\\)"))
-(defconst isar-idx (concat isar-id "\\(?:\\.[0-9]+\\)?"))
-
-(defconst isar-string "\"\\(\\(?:[^\"]\\|\\\\\"\\)*\\)\"")
-
-(defun isar-ids-to-regexp (ids)
-  "Hack list IDS of keywords IDS to make a regexp matching any of them.
-Note: IDS may have full-stops already regexp quoted." ; a nuisance!
-  (let* ((unquoted     (mapcar (lambda (s)
-                        (replace-regexp-in-string (regexp-quote "\\.") "." s))
-                              ids))
-        (cleaned      (remove "{" (remove "}" unquoted)))
-        (words        (if cleaned (list (regexp-opt cleaned 'words))))
-        ;; } is not a word constituent, so \_<}\_> fails
-        (rbrace       (if (member "}" ids) '("}")))
-        ;; { similarly, must also prevent {* matching
-        (lbrace       (if (member "{" ids)
-                          '("\\(?:{\\(?:\\b\\|[^\\*]\\)\\)"))))
-    (mapconcat 'identity (append words lbrace rbrace) "\\|")))
-
-;; tests
-; (isar-ids-to-regexp '("bla" "blubber"))
-; (isar-ids-to-regexp '("bla" "\\." "blubber"))
-; (isar-ids-to-regexp '("bla" "\\." "blubber" "{"))
-; NB: string-match not entirely accurate, syntax table affects \_< \_> 
behaviour
-; (string-match (isar-ids-to-regexp '("bla" "}" "blubber" "{")) "}")  ; 0
-; (string-match (isar-ids-to-regexp '("bla" "}" "blubber" "{")) "*}") ; 1 [OK]
-; (string-match (isar-ids-to-regexp '("bla" "}" "blubber" "{")) "*}bla") ; 1 
[OK]
-; (string-match (isar-ids-to-regexp '("bla" "}" "blubber" "{")) "ug{*") ; nil
-; (string-match (isar-ids-to-regexp '("bla" "}" "blubber" "{")) "ug{") ; 2
-; (string-match (isar-ids-to-regexp '("bla" "}" "blubber" "{")) "}ug") ; 0
-; (string-match (isar-ids-to-regexp '("bla" "}" "blubber" "{")) "}\n ug") ; 0
-; (string-match (isar-ids-to-regexp '("foo" "\\." "Foo\\.bar")) "boo.foo") ; 
nil/4
-; (string-match (isar-ids-to-regexp '("foo" "\\." "Foo\\.bar")) "Foo.bar") ; 0
-; (string-match (isar-ids-to-regexp '("foo" "\\." "Foo\\.bar")) "bar.foo") ; 4
-; (string-match (isar-ids-to-regexp '("foo" "\\." "Foo\\.bar")) "bar. foo") ; 5
-
-(defconst isar-any-command-regexp
-  ;; allow terminator to be considered as command start: 
-  ;; FIXME: really needs change in generic function to take account of this,
-  ;; since the end character of a command is not the start 
-  (concat ";\\|" (isar-ids-to-regexp isar-keywords-major))
-  "Regexp matching any Isabelle/Isar command keyword or the terminator 
character.")
-
-(defconst isar-name-regexp
-  (concat "\\s-*\\(" isar-string "\\|" isar-id "\\)\\s-*")
-  "Regexp matching Isabelle/Isar names; surrounding space and contents grouped.
-Group number 1 matches the identifier possibly with quotes; group number 2
-matches contents of quotes for quoted identifiers.")
-
-(defconst isar-improper-regexp
-  "\\(\\<[A-Za-z][A-Za-z0-9'_]*_tac\\>\\|\\<goal[0-9]+\\>\\)"
-  "Regexp matching low-level features")
-
-(defconst isar-save-command-regexp
-  (proof-anchor-regexp (isar-ids-to-regexp isar-keywords-save)))
-
-(defconst isar-global-save-command-regexp
-  (proof-anchor-regexp (isar-ids-to-regexp isar-keywords-qed-global)))
-
-(defconst isar-goal-command-regexp
-  (proof-anchor-regexp (isar-ids-to-regexp isar-keywords-theory-goal)))
-
-(defconst isar-local-goal-command-regexp
-  (proof-anchor-regexp (isar-ids-to-regexp isar-keywords-local-goal)))
-
-(defconst isar-comment-start "(*")
-(defconst isar-comment-end "*)")
-(defconst isar-comment-start-regexp (regexp-quote isar-comment-start))
-(defconst isar-comment-end-regexp (regexp-quote isar-comment-end))
-
-(defconst isar-string-start-regexp "\"\\|`\\|{\\*")
-(defconst isar-string-end-regexp "\"\\|`\\|\\*}")
-
-(defun isar-syntactic-context ()
-  (let ((sc (proof-looking-at-syntactic-context-default)))
-    (or (if (eq sc 'string)
-           (save-excursion
-             (save-match-data
-               (and (or (looking-at isar-string-start-regexp)
-                        (re-search-backward isar-string-start-regexp nil t))
-                    (skip-chars-backward " \t\n-")
-                    (looking-at "[ \t\n]*--")
-                    'comment))))
-      sc)))
-
-
-;; antiquotations
-
-(defconst isar-antiq-regexp
-  (concat "@{\\(?:[^\"{}]\\|" isar-string "\\)*}")
-  "Regexp matching Isabelle/Isar antiquotations.")
-
-;; keyword nesting
-
-(defconst isar-nesting-regexp
-  (isar-ids-to-regexp (list isar-keyword-begin isar-keyword-end)))
-
-(defun isar-nesting ()
-  "Determine keyword nesting"
-  (let ((nesting 0) (limit (point)))
-    (save-excursion
-      (goto-char (point-min))
-      (while (proof-re-search-forward isar-nesting-regexp limit t)
-       (cond
-        ((proof-buffer-syntactic-context))
-        ((equal (match-string 0) isar-keyword-begin) (cl-incf nesting))
-        ((equal (match-string 0) isar-keyword-end) (cl-decf nesting)))))
-    nesting))
-
-(defun isar-match-nesting (limit)
-  (cl-block nil
-    (while (proof-re-search-forward isar-nesting-regexp limit t)
-      (and (not (proof-buffer-syntactic-context))
-          (if (equal (match-string 0) isar-keyword-begin)
-              (> (isar-nesting) 1)
-            (> (isar-nesting) 0))
-          (cl-return t)))))
-
-
-;; ----- Isabelle inner syntax highlight
-
-(defface isabelle-string-face 
-  (proof-face-specs
-   (:foreground "springgreen4")
-   (:foreground "springgreen1")
-   ())
-  "*Face for fontifying string contents in Isabelle."
-  :group 'proof-faces)
-
-(defface isabelle-quote-face 
-  (proof-face-specs
-   (:foreground "Gray80")
-   (:foreground "Gray30")
-   (:italic t))
-  "*Face for quotes (string delimiters) in Isabelle."
-  :group 'proof-faces)
-
-(defface isabelle-class-name-face
-  (proof-face-specs
-   (:foreground "red")
-   (:foreground "red3")
-   (:bold t))
-  "*Face for Isabelle term / type highlighting"
-  :group 'proof-faces)
-
-(defface isabelle-tfree-name-face
-  (proof-face-specs
-   (:foreground "purple")
-   (:foreground "purple3")
-   (:bold t))
-  "*Face for Isabelle term / type highlighting"
-  :group 'proof-faces)
-
-(defface isabelle-tvar-name-face
-  (proof-face-specs
-   (:foreground "purple")
-   (:foreground "purple3")
-   (:bold t))
-  "*Face for Isabelle term / type highlighting"
-  :group 'proof-faces)
-
-(defface isabelle-free-name-face
-  (proof-face-specs
-   (:foreground "blue")
-   (:foreground "lightblue")
-   (:bold t))
-  "*Face for Isabelle term / type highlighting"
-  :group 'proof-faces)
-
-(defface isabelle-bound-name-face
-  (proof-face-specs
-   (:foreground "green4")
-   (:foreground "green")
-   (:bold t))
-  "*Face for Isabelle term / type highlighting"
-  :group 'proof-faces)
-
-(defface isabelle-var-name-face
-  (proof-face-specs
-   (:foreground "darkblue")
-   (:foreground "blue3")
-   (:bold t))
-  "*Face for Isabelle term / type highlighting"
-  :group 'proof-faces)
-
-(defconst isabelle-string-face 'isabelle-string-face)
-(defconst isabelle-quote-face  'isabelle-quote-face)
-(defconst isabelle-class-name-face 'isabelle-class-name-face)
-(defconst isabelle-tfree-name-face 'isabelle-tfree-name-face)
-(defconst isabelle-tvar-name-face  'isabelle-tvar-name-face)
-(defconst isabelle-free-name-face  'isabelle-free-name-face)
-(defconst isabelle-bound-name-face 'isabelle-bound-name-face)
-(defconst isabelle-var-name-face   'isabelle-var-name-face)
-
-
-;; font-lock syntactic fontification
-
-;; adapted from font-lock.el in GNU Emacs 23.1.1
-;; FIXME: Why not use the built-in syntactic fontification?
-(defun isar-font-lock-fontify-syntactically-region
-  (end) ;; (start end &optional loudly ppss)
-  "Put proper face on each string and comment between point and END."
-  (let (;; (comment-end-regexp
-       ;;  (replace-regexp-in-string "^ *" "" comment-end))
-        (start (point))
-        ;; Find the start state.
-        (state (syntax-ppss))
-        beg)
-    (if font-lock-verbose ;; loudly
-        (message "Fontifying %s... (syntactically...)" (buffer-name)))
-    ;;
-    ;; Find each interesting place between here and `end'.
-    (while
-       (let ((instring     (nth 3 state))
-             (incomment    (nth 4 state)))
-         (when (or instring incomment)
-           (setq beg (max (nth 8 state) start))
-           (setq state (parse-partial-sexp (point) end nil nil state
-                                           'syntax-table))
-           (cond
-            (instring
-             (put-text-property (1+ beg)
-                                (1- (point)) 'face isabelle-string-face)
-             (put-text-property beg (1+ beg) 'face isabelle-quote-face)
-             (put-text-property (1- (point)) (point) 'face 
isabelle-quote-face))
-            (t
-             (put-text-property beg (point) 'face font-lock-comment-face))))
-         (< (point) end))
-      (setq state (parse-partial-sexp (point) end nil nil state
-                                     'syntax-table))))
-  ;; Job is done, return to font-lock-keywords that there's no match.
-  nil)
-
-;; font-lock keywords fontification
-
-(defvar isar-font-lock-keywords-1
-  (list
-   (list #'isar-font-lock-fontify-syntactically-region)
-   (cons #'isar-match-nesting                               
'font-lock-preprocessor-face)
-   (cons (isar-ids-to-regexp isar-keywords-minor)          
'font-lock-type-face)
-   (cons (isar-ids-to-regexp isar-keywords-control)        'proof-error-face)
-   (cons (isar-ids-to-regexp isar-keywords-diag)           
'proof-tacticals-name-face)
-   (cons (isar-ids-to-regexp isar-keywords-theory-enclose) 
'font-lock-type-face)
-   (cons (isar-ids-to-regexp isar-keywords-proper)         
'font-lock-keyword-face)
-   (cons (isar-ids-to-regexp isar-keywords-proof-context)  
'proof-declaration-name-face)
-   (cons (isar-ids-to-regexp isar-keywords-improper)       
'font-lock-reference-face)
-   (cons isar-improper-regexp 'font-lock-reference-face)
-   (cons isar-antiq-regexp '(0 'font-lock-variable-name-face t))))
-
-(put 'isar-goals-mode
-     'font-lock-extra-managed-props '(invisible sendback))
-(put 'isar-response-mode
-     'font-lock-extra-managed-props '(invisible sendback))
-
-(defun isar-output-flkprops (start regexp end props)
-  `(,(concat "\\(" start "\\)\\(" regexp "\\)\\(" end "\\)")
-    (1 '(face nil invisible t) prepend)
-    (2 ',props prepend)
-    (,(+ 3 (regexp-opt-depth regexp)) '(face nil invisible t) prepend)))
-
-(defun isar-output-flk (start regexp end face)
-  (isar-output-flkprops start regexp end (list 'face face)))
-
-(defvar isar-output-font-lock-keywords-1
-  (list
-   '("\^A[IJKLMNOPV]" (0 '(face nil invisible t) t))
-   (isar-output-flkprops
-    "\^AW" "\\(?:[^\^A]\\|\^A[^X]\\)*" "\^AX"
-    '(face (:underline t) mouse-face 'highlight sendback t))
-
-   (isar-output-flk "\^A0"
-                   "\\(?:[^\^A]\\|\^A[^1]\\)*" "\^A1"
-                   'proof-warning-face)
-
-;; done generically at the moment:
-;; (isar-output-flk "\^AM" "\\(?:[^\^A]\\|\^A[^N]\\)*" "\^AN" 
'proof-error-face)
-
-   (isar-output-flk "\^AB" isar-text "\^AA" 'isabelle-class-name-face)
-   (isar-output-flk "\^AC" isar-text "\^AA" 'isabelle-tfree-name-face)
-   (isar-output-flk "\^AD" isar-text "\^AA" 'isabelle-tvar-name-face)
-   (isar-output-flk "\^AE" isar-text "\^AA" 'isabelle-free-name-face)
-   (isar-output-flk "\^AF" isar-text "\^AA" 'isabelle-bound-name-face)
-   (isar-output-flk "\^AG" isar-text "\^AA" 'isabelle-var-name-face)
-   (isar-output-flk "\^AH" isar-text "\^AA" 'proof-declaration-name-face)
-   )
-  "*Font-lock table for Isabelle output terms.")
-
-(defun isar-strip-output-markup (string)
-  "Remove invisible output markup from STRING"
-  (replace-regexp-in-string "\^A." "" string))
-
-(defconst isar-shell-font-lock-keywords
-  '(("\^A." (0 '(face nil invisible t)))))
-
-(defvar isar-goals-font-lock-keywords
-  (append
-   (list
-    "^theory:"
-    "^proof (prove):"
-    "^proof (state):"
-    "^proof (chain):"
-    "^goal.*:"
-    "^picking.*:"
-    "^using.*:"
-    "^calculation:"
-    "^this:"
-    "^abbreviations:"
-    "^term bindings:"
-    "^facts:"
-    "^cases:"
-    "^prems:"
-    "^fixed variables:"
-    "^structures:"
-    "^abbreviations:"
-    "^type constraints:"
-    "^default sorts:"
-    "^used type variable names:"
-    "^flex-flex pairs:"
-    "^constants:"
-    "^variables:"
-    "^type variables:"
-    "^\\s-*[0-9][0-9]?\\. ")
-   isar-output-font-lock-keywords-1)
-  "*Font-lock table for Isabelle/Isar output.")
-
-
-;; ----- variations on undo
-
-(defconst isar-linear-undo "linear_undo")
-
-(defconst isar-undo "ProofGeneral.undo;")
-
-(defconst isar-pr
-  (if (member "ProofGeneral\\.pr" 
-             isar-keywords-major)
-      "ProofGeneral.pr" ; does right thing
-    "pr" ; See Trac #292 
-    ))
-
-(defun isar-remove (name)
-  (concat "init_toplevel; kill_thy " name ";"))
-
-(defun isar-undos (linearp i)
-  (if (> i 0) (concat (if linearp "linear_undo " "undos_proof ")
-                     (int-to-string i) ";"
-                     (if linearp 
-                         (concat " "
-                                 isar-pr
-                                 ";"))
-                     )
-    nil))  ; was proof-no-command
-
-(defun isar-cannot-undo (cmd)
-  (concat "cannot_undo \"" cmd "\";"))
-
-(defconst isar-undo-commands
-  (list
-   isar-linear-undo
-   isar-undo
-   "init_toplevel" "kill_thy"
-   "undos_proof"
-   "cannot_undo"))
-
-(defconst isar-theory-start-regexp
-  (proof-anchor-regexp
-   (isar-ids-to-regexp
-    (append isar-keywords-theory-begin
-           isar-keywords-theory-switch))))
-
-(defconst isar-end-regexp
-  (proof-anchor-regexp
-   (isar-ids-to-regexp isar-keywords-theory-end)))
-
-(defconst isar-undo-fail-regexp
-  (proof-anchor-regexp
-   (isar-ids-to-regexp isar-keywords-control)))
-
-(defconst isar-undo-skip-regexp
-  (proof-anchor-regexp (proof-regexp-alt (isar-ids-to-regexp 
isar-keywords-diag) ";")))
-
-(defconst isar-undo-ignore-regexp
-  (proof-anchor-regexp "--"))
-
-(defconst isar-undo-remove-regexp
-  (concat
-   (proof-anchor-regexp (isar-ids-to-regexp isar-keywords-theory-begin))
-   isar-name-regexp))
-
-
-;; ----- imenu
-
-(defconst isar-keywords-imenu
-  (append isar-keywords-theory-begin
-         isar-keywords-theory-heading
-         isar-keywords-theory-decl
-         isar-keywords-theory-script
-         isar-keywords-theory-goal))
-
-(defconst isar-entity-regexp 
-  (concat "\\(" (isar-ids-to-regexp isar-keywords-imenu) "\\)"))
-
-(defconst isar-named-entity-regexp
-  (concat isar-entity-regexp
-         "\\(?:\\s-*(\\s-*in[^)]+)\\)?"
-         isar-name-regexp "[[:=]" ))
-
-(defconst isar-named-entity-name-match-number
-          (1+ (regexp-opt-depth isar-entity-regexp)))
-
-(defconst isar-generic-expression
-  (mapcar (lambda (kw)
-           (list (capitalize kw)
-                 (concat "\\<" kw "\\>"
-                         "\\(?:\\s-*(\\s-*in[^)]+)\\)?"
-                         isar-name-regexp "[[:=]")
-                 1))
-         isar-keywords-imenu))
-
-;; ----- indentation
-
-(defconst isar-indent-any-regexp
-  (proof-regexp-alt isar-any-command-regexp "\\s(" "\\s)"))
-(defconst isar-indent-inner-regexp
-  (proof-regexp-alt "[[]()]"))
-(defconst isar-indent-enclose-regexp
-  (proof-regexp-alt (isar-ids-to-regexp isar-keywords-indent-enclose) "\\s)"))
-(defconst isar-indent-open-regexp
-  (proof-regexp-alt (isar-ids-to-regexp isar-keywords-indent-open) "\\s("))
-(defconst isar-indent-close-regexp
-  (proof-regexp-alt (isar-ids-to-regexp isar-keywords-indent-close) "\\s)"))
-
-
-;; ----- outline mode
-
-(defconst isar-outline-regexp
-  (concat "[ \t]*\\(?:" (isar-ids-to-regexp isar-keywords-outline) "\\)")
-  "Outline regexp for Isabelle/Isar documents")
-
-(defconst isar-outline-heading-end-regexp "\n")
-
-(defconst isar-outline-heading-alist isar-keyword-level-alist)
-
-
-(provide 'isar-syntax)
diff --git a/isar/isar-unicode-tokens.el b/isar/isar-unicode-tokens.el
deleted file mode 100644
index 725bc54..0000000
--- a/isar/isar-unicode-tokens.el
+++ /dev/null
@@ -1,691 +0,0 @@
-;;; -*- coding: utf-8; -*-
-;; isar-unicode-tokens.el --- Tokens for Unicode Tokens package
-;;
-;; Copyright(C) 2008, 2009 David Aspinall / LFCS Edinburgh
-;; Author:    David Aspinall <David.Aspinall@ed.ac.uk>
-;;
-;; This file is loaded by proof-auxmodes.el for proof-unicode-tokens.el.
-;;
-;; It sets the variables defined at the top of unicode-tokens.el,
-;; unicode-tokens-<foo> is set from isar-<foo>.  See the corresponding
-;; variable for documentation.
-;;
-
-
-(eval-when-compile (require 'cl-lib))   ; cl-loop
-
-(eval-when-compile
-  (require 'unicode-tokens)        ; it's loaded dynamically at runtime
-  (require 'proof-unicode-tokens))  ; that file loads us at runtime
-
-(declare-function isar-markup-ml "isar")
-
-;;
-;; Customization
-;;
-
-(defgroup isabelle-tokens nil
-  "Variables which configure Isabelle tokens for Unicode Tokens mode."
-  :group 'isabelle
-  :prefix "isar-")
-
-(defun isar-set-and-restart-tokens (sym val)
-  "Function to restart Unicode Tokens when a token value is adjusted."
-  (set-default sym val)
-  (when (featurep 'isar-unicode-tokens) ; not during loading
-    (isar-init-token-symbol-map)
-    (isar-init-shortcut-alists)
-    (if (featurep 'unicode-tokens)
-       (unicode-tokens-initialise))))
-
-;;
-;; Controls
-;;
-
-(defconst isar-control-region-format-regexp
-  "\\(\\\\<\\^%s>\\)\\(.*?\\)\\(\\\\<\\^%s>\\)")
-
-(defconst isar-control-char-format-regexp
-  (concat
-   "\\(\\\\<\\^%s>\\)\\("
-   "\\(?:\\\\<[A-Za-z]+>\\|[^\\]\\)" ; cf isar-ext-first
-   "\\)"))
-
-(defconst isar-control-char-format        "\\<^%s>")
-(defconst isar-control-region-format-start "\\<^%s>")
-(defconst isar-control-region-format-end   "\\<^%s>")
-
-
-(defcustom isar-control-characters
-  '(("Subscript" "sub" sub)
-    ("Id subscript" "isub" sub)
-    ("Superscript" "sup" sup)
-    ("Id superscript" "isup" sup)
-    ("Loc" "loc" keyword)
-    ("Constant" "const" keyword)
-    ("Bold" "bold" bold)
-    ;; unofficial/unsupported:
-    ("Italic" "italic" italic))
-  "Control character tokens for Isabelle."
-  :group 'isabelle-tokens
-  :set 'isar-set-and-restart-tokens)
-
-(defcustom isar-control-regions
-  '(("Subscript" "bsub" "esub" sub)
-    ("Superscript" "bsup" "esup" sup)
-    ;; unofficial/unsupported:
-    ("Id subscript" "bisub" "eisub" sub)
-    ("Id superscript" "bisup" "eisup" sup)
-    ("Bold" "bbold" "ebold" bold)
-    ("Italic" "bitalic" "eitalic" italic)
-    ("Script" "bscript" "escript" script)
-    ("Frakt" "bfrakt" "efrakt" frakt)
-    ("Roman" "bserif" "eserif" serif)
-    ("Sans" "bsans" "esans" sans)
-    ("Overline" "boverline" "eoverline" overline)
-    ("Underline" "bunderline" "eunderline" underline)
-    ("Big"   "bbig" "ebig" big)
-    ("Small" "bsmall" "esmall" small)
-;    ("Large symbols" "bbigsyms" "ebigsyms" large-symbols)
-    )
-  "Control sequence tokens for Isabelle."
-  :group 'isabelle-tokens
-  :set 'isar-set-and-restart-tokens)
-
-;;
-;; Symbols
-;;
-
-(defconst isar-token-format "\\<%s>")
-
-;(defconst isar-token-variant-format-regexp
-;  "\\\\<\\(%s\\)\\([:][a-zA-Z0-9]+\\)?>") ; syntax change required
-(defconst isar-token-variant-format-regexp
-  "\\\\<\\(%s\\)[0-9]*>") ; unofficial interpretation of usual syntax
-
-(defcustom isar-greek-letters-tokens
-  '(("alpha" "α")
-    ("beta" "β")
-    ("gamma" "γ")
-    ("delta" "δ")
-    ("epsilon" "ε") ; varepsilon (some is epsilon), although PG can use dups
-    ("zeta" "ζ")
-    ("eta" "η")
-    ("theta" "θ")
-    ("iota" "ι")
-    ("kappa" "κ")
-    ("lambda" "λ")
-    ("mu" "μ")
-    ("nu" "ν")
-    ("xi" "ξ")
-    ("pi" "π")
-    ("rho" "ρ")
-    ("sigma" "σ")
-    ("tau" "τ")
-    ("upsilon" "υ")
-    ("phi" "φ")
-    ("chi" "χ")
-    ("psi" "ψ")
-    ("omega" "ω")
-    ("Gamma" "Γ")
-    ("Delta" "Δ")
-    ("Theta" "Θ")
-    ("Lambda" "Λ")
-    ("Xi" "Ξ")
-    ("Pi" "Π")
-    ("Sigma" "Σ")
-    ("Upsilon" "Υ")
-    ("Phi" "Φ")
-    ("Psi" "Ψ")
-    ("Omega" "Ω"))
-  "Greek letter token map for Isabelle."
-  :type 'unicode-tokens-token-symbol-map
-  :group 'isabelle-tokens
-  :set 'isar-set-and-restart-tokens)
-
-(defcustom isar-misc-letters-tokens
-  '(("bool" "B" bold underline)
-    ("complex" "ℂ")
-    ("nat" "ℕ")
-    ("rat" "ℚ")
-    ("real" "ℝ")
-    ("int" "ℤ"))
-  "Miscellaneous letter token map for Isabelle."
-  :type 'unicode-tokens-token-symbol-map
-  :group 'isabelle-tokens
-  :set 'isar-set-and-restart-tokens)
-
-(defcustom isar-symbols-tokens
-  '(("leftarrow" "←")
-    ("rightarrow" "→")
-    ("Leftarrow" "⇐")
-    ("Rightarrow" "⇒")
-    ("leftrightarrow" "↔")
-    ("Leftrightarrow" "⇔")
-    ("mapsto" "↦")
-    ("longleftarrow" "⟵")
-    ("Longleftarrow" "⟸")
-    ("longrightarrow" "⟶")
-    ("Longrightarrow" "⟹")
-    ("longleftrightarrow" "⟷")
-    ("Longleftrightarrow" "⟺")
-    ("longmapsto" "⟼")
-    ("midarrow" "–") ; #x002013 en dash
-    ("Midarrow" "‗") ; #x002017 double low line (not mid)
-    ("hookleftarrow" "↩")
-    ("hookrightarrow" "↪")
-    ("leftharpoondown" "↽")
-    ("rightharpoondown" "⇁")
-    ("leftharpoonup" "↼")
-    ("rightharpoonup" "⇀")
-    ("rightleftharpoons" "⇌")
-    ("leadsto" "↝")
-    ("downharpoonleft" "⇃")
-    ("downharpoonright" "⇂")
-    ("upharpoonleft" "↿")  ;;
-    ("upharpoonright" "↾") ;; overlaps restriction
-    ("restriction" "↾")    ;; same as above
-    ("Colon" "∷")
-    ("up" "↑")
-    ("Up" "⇑")
-    ("down" "↓")
-    ("Down" "⇓")
-    ("updown" "↕")
-    ("Updown" "⇕")
-    ("langle" "⟨")
-    ("rangle" "⟩")
-    ("lceil" "⌈")
-    ("rceil" "⌉")
-    ("lfloor" "⌊")
-    ("rfloor" "⌋")
-    ("lparr" "⦇")
-    ("rparr" "⦈")
-    ("lbrakk" "⟦")
-    ("rbrakk" "⟧")
-    ("lbrace" "⦃")
-    ("rbrace" "⦄")
-    ("guillemotleft" "«")
-    ("guillemotright" "»")
-    ("bottom" "⊥")
-    ("top" "⊤")
-    ("and" "∧")
-    ("And" "⋀")
-    ("or" "∨")
-    ("Or" "⋁")
-    ("forall" "∀")
-    ("exists" "∃")
-    ("nexists" "∄")
-    ("not" "¬")
-    ("box" "□")
-    ("diamond" "◇")
-    ("turnstile" "⊢")
-    ("Turnstile" "⊨")
-    ("tturnstile" "⊩")
-    ("TTurnstile" "⊫")
-    ("stileturn" "⊣")
-    ("surd" "√")
-    ("le" "≤")
-    ("ge" "≥")
-    ("lless" "≪")
-    ("ggreater" "≫")
-    ("lesssim" "⪍")
-    ("greatersim" "⪎")
-    ("lessapprox" "⪅")
-    ("greaterapprox" "⪆")
-    ("in" "∈")
-    ("notin" "∉")
-    ("subset" "⊂")
-    ("supset" "⊃")
-    ("subseteq" "⊆")
-    ("supseteq" "⊇")
-    ("sqsubset" "⊏")
-    ("sqsupset" "⊐")
-    ("sqsubseteq" "⊑")
-    ("sqsupseteq" "⊒")
-    ("inter" "∩")
-    ("Inter" "⋂")
-    ("union" "∪")
-    ("Union" "⋃")
-    ("squnion" "⊔")
-    ("Squnion" "⨆")
-    ("sqinter" "⊓")
-    ("Sqinter" "⨅")
-    ("setminus" "∖")
-    ("propto" "∝")
-    ("uplus" "⊎")
-    ("Uplus" "⨄")
-    ("noteq" "≠")
-    ("sim" "∼")
-    ("doteq" "≐")
-    ("simeq" "≃")
-    ("approx" "≈")
-    ("asymp" "≍")
-    ("cong" "≅")
-    ("smile" "⌣")
-    ("equiv" "≡")
-    ("frown" "⌢")
-    ("Join" "⨝")
-    ("bowtie" "⋈")
-    ("prec" "≺")
-    ("succ" "≻")
-    ("preceq" "≼")
-    ("succeq" "≽")
-    ("parallel" "∥")
-    ("bar" "¦")
-    ("plusminus" "±")
-    ("minusplus" "∓")
-    ("times" "×")
-    ("div" "÷")
-    ("cdot" "⋅")
-    ("star" "⋆")
-    ("bullet" "∙")
-    ("circ" "∘")
-    ("dagger" "†")
-    ("ddagger" "‡")
-    ("lhd" "⊲")
-    ("rhd" "⊳")
-    ("unlhd" "⊴")
-    ("unrhd" "⊵")
-    ("triangleleft" "◁")
-    ("triangleright" "▷")
-    ("triangle" "▵") ; or △
-    ("triangleq" "≜")
-    ("oplus" "⊕")
-    ("Oplus" "⨁")
-    ("otimes" "⊗")
-    ("Otimes" "⨂")
-    ("odot" "⊙")
-    ("Odot" "⨀")
-    ("ominus" "⊖")
-    ("oslash" "⊘")
-    ("dots" "…")
-    ("cdots" "⋯")
-    ("Sum" "∑")
-    ("Prod" "∏")
-    ("Coprod" "∐")
-    ("infinity" "∞")
-    ("integral" "∫")
-    ("ointegral" "∮")
-    ("clubsuit" "♣")
-    ("diamondsuit" "♢")
-    ("heartsuit" "♡")
-    ("spadesuit" "♠")
-    ("aleph" "ℵ")
-    ("emptyset" "∅")
-    ("nabla" "∇")
-    ("partial" "∂")
-    ("Re" "ℜ")
-    ("Im" "ℑ")
-    ("flat" "♭")
-    ("natural" "♮")
-    ("sharp" "♯")
-    ("angle" "∠")
-    ("copyright" "©")
-    ("registered" "®")
-    ("hyphen" "‐")
-    ("inverse" "¯¹") ; X-Symb: just "¯"
-    ("onesuperior" "¹")
-    ("twosuperior" "²")
-    ("threesuperior" "³")
-    ("onequarter" "¼")
-    ("onehalf" "½")
-    ("threequarters" "¾")
-    ("ordmasculine" "º")
-    ("ordfeminine" "ª")
-    ("section" "§")
-    ("paragraph" "¶")
-    ("exclamdown" "¡")
-    ("questiondown" "¿")
-    ("euro" "€")
-    ("pounds" "£")
-    ("yen" "¥")
-    ("cent" "¢")
-    ("currency" "¤")
-    ("degree" "°")
-    ("amalg" "⨿")
-    ("mho" "℧")
-    ("lozenge" "◊")
-    ("wp" "℘")
-    ("wrong" "≀")  ;; #x002307
-    ("struct" "⋄") ;; #x0022c4
-    ("acute" "´")
-    ("index" "ı")
-    ("dieresis" "¨")
-    ("cedilla" "¸")
-    ("hungarumlaut" "ʺ")
-    ("spacespace" " ")  ;; #x002001
-    ("module" "⟨module⟩" bold)
-    ("some" "ϵ")
-    ("open" "‹")
-    ("close" "›")
-    ("newline" "⏎"))
-  "Symbol token map for Isabelle.  The standard set of Isabelle symbols."
-  :type 'unicode-tokens-token-symbol-map
-  :group 'isabelle-tokens
-  :set 'isar-set-and-restart-tokens)
-
-(defcustom isar-extended-symbols-tokens
-  '(("stareq" "≛")
-    ("defeq" "≝")
-    ("questioneq" "≟")
-    ("vartheta" "ϑ")
-    ; ("o" "ø")
-    ("varpi" "ϖ")
-    ("varrho" "ϱ")
-    ("varsigma" "ς")
-    ("varphi" "ϕ")
-    ("hbar" "ℏ")
-    ("ell" "ℓ")
-    ("ast" "∗")
-
-    ("bigcirc" "◯")
-    ("bigtriangleup" "△")
-    ("bigtriangledown" "▽")
-    ("ni" "∋")
-    ("mid" "∣")
-    ("notlt" "≮")
-    ("notle" "≰")
-    ("notprec" "⊀")
-    ("notpreceq" "⋠")
-    ("notsubset" "⊄")
-    ("notsubseteq" "⊈")
-    ("notsqsubseteq" "⋢")
-    ("notgt" "≯")
-    ("notge" "≱")
-    ("notsucc" "⊁")
-    ("notsucceq" "⋡")
-    ("notsupset" "⊅")
-    ("notsupseteq" "⊉")
-    ("notsqsupseteq" "⋣")
-    ("notequiv" "≢")
-    ("notsim" "≁")
-    ("notsimeq" "≄")
-    ("notapprox" "≉")
-    ("notcong" "≇")
-    ("notasymp" "≭")
-    ("nearrow" "↗")
-    ("searrow" "↘")
-    ("swarrow" "↙")
-    ("nwarrow" "↖")
-    ("vdots" "⋮")
-    ("ddots" "⋱")
-    ("closequote" "’")
-    ("openquote" "‘")
-    ("opendblquote" "”")
-    ("closedblquote" "“")
-    ("emdash" "—")
-    ("prime" "′")
-    ("doubleprime" "″")
-    ("tripleprime" "‴")
-    ("quadrupleprime" "⁗")
-    ("nbspace" " ")
-    ("thinspace" " ")
-    ("notni" "∌")
-    ("colonequals" "≔")
-    ("foursuperior" "⁴")
-    ("fivesuperior" "⁵")
-    ("sixsuperior" "⁶")
-    ("sevensuperior" "⁷")
-    ("eightsuperior" "⁸")
-    ("ninesuperior" "⁹"))
-  "Extended symbols token map for Isabelle.  These are not defined standardly."
-  :type 'unicode-tokens-token-symbol-map
-  :group 'isabelle-tokens
-  :set 'isar-set-and-restart-tokens)
-
-(defun isar-try-char (charset code1 code2)
-  (and (charsetp charset) ; prevent error
-       (char-to-string (make-char charset code1 code2))))
-
-(defcustom isar-symbols-tokens-fallbacks
-  `(;; Faked long symbols
-    ("longleftarrow" "←-")
-    ("Longleftarrow" "⇐–")
-    ("longrightarrow" "–→")
-    ("Longrightarrow" "–⇒")
-    ("longleftrightarrow" "←→")
-    ("Longleftrightarrow" "⇐⇒")
-    ("longmapsto" "❘→")
-    ;; bracket composition alternatives
-    ("lparr" "(|")
-    ("rparr" "|)")
-    ;; an example of using characters from another charset.
-    ;; to expand this table, see output of M-x list-charset-chars
-    ("lbrakk" ,(isar-try-char 'japanese-jisx0208 #x22 #x5A))
-    ("rbrakk" ,(isar-try-char 'japanese-jisx0208 #x22 #x5A))
-    ("lbrakk" "[|")
-    ("rbrakk" "|]")
-    ("lbrace" "{|")
-    ("rbrace" "|}"))
-  "Fallback alternatives to `isar-symbols-tokens'.
-The first displayable composition will be displayed to replace the
-tokens."
-  :type 'unicode-tokens-token-symbol-map
-  :group 'isabelle-tokens
-  :set 'isar-set-and-restart-tokens)
-
-(defcustom isar-bold-nums-tokens
-  '(("zero" "0" bold)
-    ("one" "1" bold)
-    ("two" "2" bold)
-    ("three" "3" bold)
-    ("four" "4" bold)
-    ("five" "5" bold)
-    ("six" "6" bold)
-    ("seven" "7" bold)
-    ("eight" "8" bold)
-    ("nine" "9" bold))
-  "Tokens for bold numerals."
-  :type 'unicode-tokens-token-symbol-map
-  :group 'isabelle-tokens
-  :set 'isar-set-and-restart-tokens)
-
-(defun isar-map-letters (f1 f2 &rest symbs)
-  (cl-loop for x below 26
-          for c = (+ 65 x)
-          collect
-          (cons (funcall f1 c) (cons (funcall f2 c) symbs))))
-
-(defconst isar-script-letters-tokens ; \<A> \<B> ...
-  (isar-map-letters (lambda (x) (format "%c" x))
-                   (lambda (x) (format "%c" x))
-                   'script))
-
-(defconst isar-roman-letters-tokens ; \<a> \<b> ...
-  (isar-map-letters (lambda (x) (downcase (format "%c" x)))
-                   (lambda (x) (downcase (format "%c" x)))
-                   'serif))
-
-(defconst isar-fraktur-uppercase-letters-tokens ; \<AA> \<BB> ..
-  (isar-map-letters (lambda (x) (format "%c%c" x x))
-                   (lambda (x) (format "%c" x))
-                   'frakt))
-
-(defconst isar-fraktur-lowercase-letters-tokens ; \<AA> \<BB> ..
-  (isar-map-letters (lambda (x) (downcase (format "%c%c" x x)))
-                   (lambda (x) (downcase (format "%c" x)))
-                   'frakt))
-
-(defcustom isar-token-symbol-map nil
-  "Table mapping Isabelle symbol token names to Unicode strings.
-See `unicode-tokens-token-symbol-map'.
-
-You can adjust this table to change the default entries.
-
-Each element is a list
-
-  (TOKNAME COMPOSITION FONTSYMB ...)
-
-COMPOSITION is usually a string, perhaps containing Unicode characters.
-For Isabelle, the token TOKNAME is made into the token \\<TOKNAME>."
-  :type 'unicode-tokens-token-symbol-map
-  :group 'isabelle
-  :set 'isar-set-and-restart-tokens
-  :tag "Isabelle Unicode Token Mapping")
-
-(defcustom isar-user-tokens nil
-  "User-defined additions to `isar-token-symbol-map'.
-
-Each element is a list
-
-  (TOKNAME COMPOSITION FONTSYMB ...)
-
-COMPOSITION is usually a string, perhaps containing Unicode characters.
-For Isabelle, the token TOKNAME is made into the token \\<TOKNAME>."
-  :type 'unicode-tokens-token-symbol-map
-  :group 'isabelle
-  :set 'isar-set-and-restart-tokens
-  :tag "User extensions for Isabelle Token Mapping")
-
-(defun isar-init-token-symbol-map ()
-  "Initialise the default value for `unicode-tokens-token-symbol-map'."
-  (custom-set-default 'isar-token-symbol-map
-                     (append
-                      isar-symbols-tokens
-                      isar-extended-symbols-tokens
-                      isar-user-tokens
-                      isar-misc-letters-tokens
-                      isar-greek-letters-tokens
-                      isar-bold-nums-tokens
-                      isar-script-letters-tokens
-                      isar-roman-letters-tokens
-                      isar-fraktur-uppercase-letters-tokens
-                      isar-fraktur-lowercase-letters-tokens
-                      isar-user-tokens
-                      isar-symbols-tokens-fallbacks)))
-
-(isar-init-token-symbol-map)
-
-
-
-;;
-;; Shortcuts
-;;
-
-(defcustom isar-symbol-shortcuts
-  '(("\\/" . "\\<or>")
-    ("/\\" . "\\<and>")
-    ("+O" . "\\<oplus>")
-    ("-O" . "\\<ominus>")
-    ("xO" . "\\<otimes>")
-    ("/O" . "\\<oslash>")
-    (".O" . "\\<odot>")
-    ("|+" . "\\<dagger>")
-    ("|++" . "\\<ddagger>")
-    ("<=" . "\\<le>")
-    ("|-" . "\\<turnstile>")
-    (">=" . "\\<ge>")
-    ("-|" . "\\<stileturn>")
-    ("||" . "\\<parallel>")
-    ("==" . "\\<equiv>")
-    ("~=" . "\\<noteq>")
-    ("~:" . "\\<notin>")
-    ("~~~" . "\\<notapprox>")
-    ("~~" . "\\<approx>")
-    ("~==" . "\\<cong>")
-    ("|<>|" . "\\<bowtie>")
-    ("|=" . "\\<Turnstile>")
-    ("=." . "\\<doteq>")
-    ("_|_" . "\\<bottom>")
-    ("</" . "\\<notle>")
-    ("~>=" . "\\<notge>")
-    ("==/" . "\\<notequiv>")
-    ("~/" . "\\<notsim>")
-    ("~=/" . "\\<notsimeq>")
-    ("~~/" . "\\<notsimeq>")
-    ("<-" . "\\<leftarrow>")
-    ("<=" . "\\<Leftarrow>")
-    ("->" . "\\<rightarrow>")
-    ("=>" . "\\<Rightarrow>")
-    ("<->" . "\\<leftrightarrow>")
-    ("<=>" . "\\<Leftrightarrow>")
-    ("|->" . "\\<mapsto>")
-    ("<--" . "\\<longleftarrow>")
-    ("<==" . "\\<Longleftarrow>")
-    ("-->" . "\\<longrightarrow>")
-    ("==>" . "\\<Longrightarrow>")
-    ("<==>" . "\\<Longleftrightarrow>")
-    ("|-->" . "\\<longmapsto>")
-    ("<->" . "\\<longleftrightarrow>")
-    ("<<" . "\\<guillemotleft>")
-    (">>" . "\\<guillemotright>")
-    ("<>" . "\\<diamond>")
-    ("[|" . "\\<lbrakk>")
-    ("|]" . "\\<rbrakk>")
-    ("{|" . "\\<lbrace>")
-    ("|}" . "\\<rbrace>")
-    ("(|" . "\\<lparr>")
-    ("|)" . "\\<rparr>")
-    ;; useful for unicode-tokens-replace-shortcuts
-    ("ALL" . "\\<forall>")
-    ("EX"  . "\\<exists>")
-    ("!!"  . "\\<And>")
-    ;; TODO: put these into replacement shortcuts, perhaps
-    ;; ("~"  . "\\<not>")
-    ;; ("!"  . "\\<forall>")
-    ;; ("?"  . "\\<exists>")
-    ;; extra misc, switch them off if you don't like them
-    ;("|>" . "\\<triangleright>") ; clashes with ML parsing combinator
-    ("<|" . "\\<triangleleft>"))
-  "Shortcut key sequence table for symbol tokens input.
-See `unicode-tokens-shortcut-alist'."
-    :type 'unicode-tokens-shortcut-alist
-    :set 'isar-set-and-restart-tokens
-    :group 'isabelle
-    :tag "Isabelle symbol shortcuts")
-
-(defcustom isar-shortcut-alist nil
-  "Shortcut key sequence table for token input.
-See `unicode-tokens-shortcut-alist'."
-  :type 'unicode-tokens-shortcut-alist
-  :set 'isar-set-and-restart-tokens
-  :group 'isabelle
-  :tag "Isabelle Unicode Input Shortcuts")
-
-(defun isar-init-shortcut-alists ()
-  "Set defaults for `isar-shortcut-alist' and 
`isar-shortcut-replacement-alist'."
-  (custom-set-default 'isar-shortcut-alist
-                     (append
-                      isar-symbol-shortcuts
-                      ;; LaTeX-like syntax for symbol names, easier to type
-                      (mapcar
-                       (lambda (tokentry)
-                         (cons (concat "\\" (car tokentry))
-                               (format isar-token-format (car tokentry))))
-                       (append isar-greek-letters-tokens
-                               isar-symbols-tokens)))))
-  ;; todo: allow shortcuts for replacements to be a different list
-  ;; (setq unicode-tokens-shortcut-replacement-alist nil))
-
-(isar-init-shortcut-alists)
-
-;;
-;; To generate special menu entries
-;;
-
-(defconst isar-tokens-customizable-variables
-  '(("Symbols" isar-symbols-tokens)
-    ("Extended Symbols" isar-extended-symbols-tokens)
-    ("User Tokens" isar-user-tokens)
-    ("Misc Letters" isar-misc-letters-tokens)
-    ("Greek Letters" isar-greek-letters-tokens)
-    ("Fallbacks" isar-symbols-tokens-fallbacks)
-    ("Shortcuts" isar-symbol-shortcuts)))
-
-
-;;
-;; prover symbol support
-;;
-
-(eval-after-load "isar"
-  '(setq
-    proof-tokens-activate-command
-    (isar-markup-ml "change print_mode (insert (op =) \"xsymbols\")")
-    proof-tokens-deactivate-command
-    (isar-markup-ml "change print_mode (remove (op =) \"xsymbols\")")))
-
-
-
-(provide 'isar-unicode-tokens)
-
-;;; isar-unicode-tokens.el ends here
diff --git a/isar/isar.el b/isar/isar.el
deleted file mode 100644
index 9deed7c..0000000
--- a/isar/isar.el
+++ /dev/null
@@ -1,645 +0,0 @@
-;; isar.el --- Major mode for Isabelle/Isar proof assistant
-;;
-;; Copyright (C) 1994-2010 LFCS Edinburgh.
-;; Copyright (C) 2018  Free Software Foundation, Inc.
-;;
-;; License:   GPL (GNU GENERAL PUBLIC LICENSE)
-;;
-;; Maintainers:   David Aspinall, Makarius, Stefan Berghofer
-;;
-;; Authors:       David Aspinall <David.Aspinall@ed.ac.uk>
-;;               Markus Wenzel <wenzelm@in.tum.de>
-;;
-;; Contributors:  David von Oheimb, Sebastian Skalberg
-;;
-;; $Id$
-;;
-
-;;; Code:
-
-(eval-when-compile
-  (require 'span)
-  (require 'proof-syntax)
-  (require 'pg-goals)
-  (require 'pg-vars)
-  (require 'outline))
-(defvar comment-quote-nested)
-(defvar isar-use-find-theorems-form)
-(defvar isar-use-linear-undo)
-
-(require 'proof)
-(require 'isabelle-system)             ; system code
-(require 'isar-find-theorems)          ; "Find Theorems" search form
-
-;;
-;; Load syntax
-;;
-
-(defcustom isar-keywords-name nil
-  "Specifies a theory-specific keywords setting to use with Isar.
-See -k option for Isabelle interface script."
-  :type 'string
-  :group 'isabelle)
-
-(or (featurep 'isar-keywords)
-    ;; Pickup isar-keywords file from somewhere appropriate, giving
-    ;; user chance to set name of file, or based on name of logic.
-    (isabelle-load-isar-keywords
-     (or isar-keywords-name
-        isabelle-chosen-logic)))
-(require 'isar-syntax)
-
-
-;; Completion table for Isabelle/Isar identifiers
-(defpgdefault completion-table isar-keywords-major)
-
-(defcustom isar-web-page
-  "http://isabelle.in.tum.de/";
-  "URL of web page for Isabelle/Isar."
-  :type 'string
-  :group 'isabelle-isar)
-
-
-;; Adjust toolbar entries (must be done before proof-toolbar is loaded).
-
-(eval-after-load "pg-custom"
-  '(setq isar-toolbar-entries
-        (assq-delete-all 'qed (assq-delete-all 'goal isar-toolbar-entries))))
-
-
-(defun isar-strip-terminators ()
-  "Remove explicit Isabelle/Isar command terminators `;' from the buffer."
-  (interactive)
-  (save-excursion
-    (goto-char (point-min))
-    (while (proof-search-forward ";" (point-max) t)
-      (while (not (proof-buffer-syntactic-context))
-       (delete-char -1)
-       (or (proof-looking-at ";\\|\\s-\\|$")
-           (insert " "))))))
-
-
-(defun isar-markup-ml (string)
-  "Return marked up version of ML command STRING for Isar."
-  (format "ML_command {* %s *};" string))
-
-
-(defun isar-mode-config-set-variables ()
-  "Configure generic proof scripting mode variables for Isabelle/Isar."
-  (set (make-local-variable 'indent-tabs-mode) nil)
-  (setq
-   proof-assistant-home-page    isar-web-page
-   proof-guess-command-line     'isabelle-set-prog-name
-   proof-prog-name-guess       t
-
-   ;; proof script syntax
-   proof-terminal-string          ";"          ; forcibly ends a command
-   proof-electric-terminator-noterminator t  ; don't insert it
-   proof-script-command-start-regexp  isar-any-command-regexp 
-
-   proof-script-integral-proofs t
-   proof-script-comment-start          isar-comment-start
-   proof-script-comment-end            isar-comment-end
-   proof-script-comment-start-regexp   isar-comment-start-regexp
-   proof-script-comment-end-regexp     isar-comment-end-regexp
-   proof-string-start-regexp    isar-string-start-regexp
-   proof-string-end-regexp      isar-string-end-regexp
-
-   ;; For func-menu and finding goal..save regions
-   proof-save-command-regexp    isar-save-command-regexp
-   proof-goal-command-regexp    isar-goal-command-regexp
-   proof-goal-with-hole-regexp  isar-named-entity-regexp
-   proof-goal-with-hole-result isar-named-entity-name-match-number
-   proof-save-with-hole-regexp  nil
-   proof-script-imenu-generic-expression isar-generic-expression
-   imenu-syntax-alist isar-script-syntax-table-alist
-
-   proof-indent-enclose-offset  (- proof-indent)
-   proof-indent-open-offset     0
-   proof-indent-close-offset    0
-   proof-indent-any-regexp      isar-indent-any-regexp
-;   proof-indent-inner-regexp    isar-indent-inner-regexp
-   proof-indent-enclose-regexp  isar-indent-enclose-regexp
-   proof-indent-open-regexp     isar-indent-open-regexp
-   proof-indent-close-regexp    isar-indent-close-regexp
-
-   ;; proof engine
-   proof-showproof-command      "pr"
-   proof-goal-command           "lemma \"%s\""
-   proof-save-command           "qed"
-   proof-context-command        "print_context"
-   proof-info-command           "welcome"
-   proof-query-identifier-command
-   '((nil     "thm %s;")
-     (string  "term \"%s\";")
-     (comment "term \"%s\";"))
-   proof-shell-start-silent-cmd "disable_pr"
-   proof-shell-stop-silent-cmd  "enable_pr"
-   proof-shell-trace-output-regexp  "\^AI\^AV"
-   proof-script-preprocess      'isar-command-wrapping
-   ;; command hooks
-   proof-goal-command-p         'isar-goal-command-p
-   proof-really-save-command-p  'isar-global-save-command-p
-   proof-state-preserving-p     'isar-state-preserving-p
-   proof-shell-compute-new-files-list 'isar-shell-compute-new-files-list
-   ;; span menu
-   proof-script-span-context-menu-extensions 'isabelle-create-span-menu)
-  ;; proof assistant settings
-  (setq proof-use-pgip-askprefs        t)
-  ;; others: find theorems, undo config
-  (isar-configure-from-settings))
-
-(defun isar-shell-mode-config-set-variables ()
-  "Configure generic proof shell mode variables for Isabelle/Isar."
-  (setq
-
-   proof-shell-annotated-prompt-regexp  "^\\w*[>#] \^AS"
-
-   ;; for issuing command, not used to track cwd in any way.
-   proof-shell-cd-cmd          (isar-markup-ml "ThyLoad.add_path \"%s\"")
-
-   ;; Escapes for filenames inside ML strings.
-   ;; We also make a hack for a bug in Isabelle, by switching from
-   ;; backslashes to forward slashes if it looks like we're running
-   ;; on Windows.
-   proof-shell-filename-escapes
-   (if (fboundp 'win32-long-filename)   ; rough test for XEmacs on win32
-       ;; Patterns to unixfy names.
-       ;; Jacques Fleuriot's patch in ML does this too: ("^[a-zA-Z]:" . "")
-       ;; But I'll risk leaving drive names in, not sure how to replace them.
-       '(("\\\\" . "/") ("\"" . "\\\""))
-     ;; Normal case: quotation for backslash, quote mark.
-     '(("\\\\" . "\\\\") ("\""   . "\\\"")))
-
-   proof-shell-interrupt-regexp         "\^AM\\*\\*\\* Interrupt"
-   proof-shell-error-regexp             "\^AM\\*\\*\\*"
-   proof-shell-proof-completed-regexp   nil     ; n.a.
-
-   pg-next-error-regexp          "\\((line \\([0-9]+\\) of \"[^\"]+\")\\)"
-   pg-next-error-filename-regexp "\\((line [0-9]+ of \"\\([^\"]+\\)\")\\)"
-
-   ;; matches names of assumptions
-   proof-shell-assumption-regexp        isar-id
-
-   proof-shell-start-goals-regexp       "\^AO"
-   proof-shell-end-goals-regexp         "\^AP"
-
-   proof-shell-init-cmd                        nil
-   proof-shell-restart-cmd              "ProofGeneral.restart"
-
-   proof-shell-eager-annotation-start-length 2
-   proof-shell-eager-annotation-start   "\^AI\\|\^AK"
-   proof-shell-eager-annotation-end     "\^AJ\\|\^AL"
-   proof-shell-strip-output-markup     'isar-strip-output-markup
-
-   pg-special-char-regexp               "\^A[0-9A-Z]"
-   pg-subterm-help-cmd                 "term %s"
-   proof-cannot-reopen-processed-files  t
-
-   ;; Urgent messages delimited by eager annotations
-   proof-shell-clear-response-regexp    
-   "\^AIProof General, please clear the response buffer."
-   proof-shell-clear-goals-regexp       
-   "\^AIProof General, please clear the goals buffer."
-   proof-shell-theorem-dependency-list-regexp 
-   "\^AIProof General, theorem dependencies of \"\\(.*\\)\" are 
\"\\(.*\\)\"\\(\^AJ\\)"
-   proof-shell-retract-files-regexp
-   "\^AIProof General, you can unlock the file \"\\(.*\\)\"\^AJ"
-   proof-shell-process-file
-   (cons
-    "\^AIProof General, this file is loaded: \"\\(.*\\)\"\^AJ"
-    (lambda () (match-string 1)))
-
-   proof-shell-match-pgip-cmd          "\^AI<pgip"
-   proof-shell-issue-pgip-cmd          'isabelle-process-pgip
-
-   proof-shell-theorem-dependency-list-split "\" \""
-   proof-shell-show-dependency-cmd     "thm %s;"
-
-   proof-shell-compute-new-files-list 'isar-shell-compute-new-files-list
-   proof-shell-inform-file-processed-cmd 
-   "ProofGeneral.inform_file_processed \"%s\""
-   proof-shell-inform-file-retracted-cmd 
-   "ProofGeneral.inform_file_retracted \"%s\""))
-
-
-;;
-;; Settings for the interface
-;;
-;; Note: settings for Isabelle are configured automatically via PGIP messages,
-;; see `pg-pgip-process-hasprefs' in pg-pgip.el and 
-;; `proof-assistant-settings-cmds' in proof-menu.el.
-;;
-
-(defun isar-set-proof-find-theorems-command ()
-  (setq proof-find-theorems-command
-       (if isar-use-find-theorems-form
-           'isar-find-theorems-form
-         'isar-find-theorems-minibuffer)))
-
-(defpacustom use-find-theorems-form nil
-  "Use a form-style input for the find theorems operation."
-  :type 'boolean
-  :eval (isar-set-proof-find-theorems-command))
-
-(defun isar-set-undo-commands (&optional initp)
-  (unless initp
-    (proof-deactivate-scripting)
-    (when proof-script-buffer
-      (message "Warning: switching undo mechanism will break undo in current 
buffer")))
-  (setq proof-count-undos-fn 'isar-count-undos)
-  (when isar-use-linear-undo
-    (setq proof-kill-goal-command nil)
-    (setq proof-find-and-forget-fn 'isar-count-undos)
-    (setq proof-arbitrary-undo-positions t))
-  (when (not isar-use-linear-undo)
-    (setq proof-kill-goal-command "ProofGeneral.kill_proof")
-    (setq proof-find-and-forget-fn 'isar-find-and-forget)
-    (setq proof-arbitrary-undo-positions nil)))
-
-(defpacustom use-linear-undo t
-  "Whether to allow undo to re-enter completed proofs (requires restart)."
-  :type 'boolean
-  :eval (isar-set-undo-commands))
-
-(defun isar-configure-from-settings ()
-  (isar-set-proof-find-theorems-command)
-  (isar-set-undo-commands 'init))
-
-;;
-;; Theory loader operations
-;;
-
-(defun isar-remove-file (name files cmp-base)
-  (let (result)
-    (while files
-      (let*
-         ((file (car files))
-          (same (if cmp-base (string= name (file-name-nondirectory file))
-                  (string= name file))))
-       (unless same 
-         (setq result (cons file result)))
-       (setq files (cdr files))))
-    result))
-
-(defun isar-shell-compute-new-files-list ()
-  "Compute the new list of files read by the proof assistant.
-This is called when Proof General spots output matching
-`proof-shell-retract-files-regexp'."
-  (let*
-      ((name (match-string 1))
-       (base-name (file-name-nondirectory name)))
-    (if (string= name base-name)
-       (isar-remove-file name proof-included-files-list t)
-      (isar-remove-file 
-       (file-truename name) proof-included-files-list nil))))
-
-
-;;
-;; Define the derived modes
-;;
-;; use eval-and-compile to define vars for byte comp.
-
-(define-derived-mode isar-shell-mode proof-shell-mode
-   "Isabelle Shell" nil
-   (isar-shell-mode-config))
-
-(define-derived-mode isar-response-mode proof-response-mode
-  "Isar Messages" nil
-  (isar-response-mode-config))
-
-(define-derived-mode isar-goals-mode proof-goals-mode
-  "Isar Proofstate" nil
-  (isar-goals-mode-config))
-
-(define-derived-mode isar-mode proof-mode
-  "Isar"
-  "Major mode for editing Isar proof scripts.
-
-\\{isar-mode-map}"
-  (isar-mode-config))
-
-
-
-;;
-;; Help menu
-;;
-;; NB: definvisible must be after derived modes (uses isar-mode-map)
-
-(proof-definvisible isar-help-antiquotations "print_antiquotations" "hA")
-(proof-definvisible isar-help-attributes "print_attributes" "ha")
-(proof-definvisible isar-help-cases "print_cases" "hc")
-(proof-definvisible isar-help-claset "print_claset" "hC")
-(proof-definvisible isar-help-commands "print_commands" "ho")
-(proof-definvisible isar-help-facts "print_facts" "hf")
-(proof-definvisible isar-help-syntax "print_syntax" "hi")
-(proof-definvisible isar-help-induct-rules "print_induct_rules" "hI")
-(proof-definvisible isar-help-methods "print_methods" "hm")
-(proof-definvisible isar-help-simpset "print_simpset" "hS")
-(proof-definvisible isar-help-binds "print_binds" "hb")
-(proof-definvisible isar-help-theorems "print_theorems" "ht")
-(proof-definvisible isar-help-trans-rules "print_trans_rules" "hT")
-
-;;
-;; Command menu
-;;
-
-(proof-definvisible isar-cmd-display-draft
- '(progn
-    (proof-save-this-buffer)
-    (format "display_drafts \"%s\"" buffer-file-name))
- [(control d)])
-
-(proof-definvisible isar-cmd-print-draft
-  '(if (y-or-n-p
-       (format "Print draft of file %s? " buffer-file-name))
-       (progn
-        (proof-save-this-buffer)
-        (format "print_drafts \"%s\"" buffer-file-name))
-     (error "Aborted"))
-  [(control p)])
-
-(proof-definvisible isar-cmd-quickcheck "quickcheck" [(control q)])
-(proof-definvisible isar-cmd-nitpick "nitpick" [(control n)])
-(proof-definvisible isar-cmd-refute "refute" "r")
-(proof-definvisible isar-cmd-sledgehammer "sledgehammer" [(control s)])
-
-(defpgdefault menu-entries
-  (append
-   (list isabelle-logics-menu-entries)
-   (list
-    (cons "Commands"
-         (list
-          ["Quickcheck"         isar-cmd-quickcheck     t]
-          ["Nitpick"            isar-cmd-nitpick        t]
-          ["Refute"             isar-cmd-refute         t]
-          ["Sledgehammer"       isar-cmd-sledgehammer   t]
-          ["Display Draft"      isar-cmd-display-draft  t]
-          ["Print Draft"        isar-cmd-print-draft    t])))
-   (list
-    (cons "Show Me"
-         (list
-          ["Cases"              isar-help-cases          t]
-          ["Facts"              isar-help-facts          t]
-          ["Term Bindings"      isar-help-binds          t]
-          "----"
-          ["Classical Rules"    isar-help-claset         t]
-          ["Induct/Cases Rules" isar-help-induct-rules   t]
-          ["Simplifier Rules"   isar-help-simpset        t]
-          ["Theorems"           isar-help-theorems       t]
-          ["Transitivity Rules" isar-help-trans-rules    t]
-          "----"
-          ["Antiquotations"     isar-help-antiquotations t]
-          ["Attributes"         isar-help-attributes     t]
-          ["Commands"           isar-help-commands       t]
-          ["Inner Syntax"       isar-help-syntax         t]
-          ["Methods"            isar-help-methods        t])))))
-
-(defun isar-set-command ()
-  "Query the user to set the command to run Isabelle"
-  (interactive)
-  (isa-set-isabelle-command t))
-
-(defpgdefault help-menu-entries isabelle-docs-menu)
-
-;; undo proof commands
-(defun isar-count-undos (span)
-  "Return commands to be used to forget SPAN."
-  (let ((ct 0) str i)
-    (while span
-      (setq str (or (span-property span 'cmd) ""))
-      (cond ((or (eq (span-property span 'type) 'vanilla)
-                (eq (span-property span 'type) 'goalsave))
-            (or (proof-string-match isar-undo-skip-regexp str)
-                (proof-string-match isar-undo-ignore-regexp str)
-                (setq ct (+ 1 ct))))
-           ((eq (span-property span 'type) 'pbp)
-            ;; this case for automatically inserted text (e.g. sledgehammer)
-            (cond ((not (proof-string-match isar-undo-skip-regexp str))
-                   (setq ct 1)
-                   (setq i 0)
-                   ;; If we find a semicolon, assume several commands,
-                   ;; and increment the undo count.
-                   (while (< i (length str))
-                     (if (= (aref str i) ?\;)
-                         (setq ct (+ 1 ct)))
-                     (setq i (+ 1 i))))
-                  (t nil))))
-      (setq span (next-span span 'type)))
-    (list (isar-undos isar-use-linear-undo ct))))
-
-;; undo theory commands
-(defun isar-find-and-forget (span)
-  "Return commands to be used to forget SPAN."
-  (let (str ans answers)
-    (while span
-      (setq str (span-property span 'cmd))
-      (setq ans nil)
-      (cond
-       ;; comment, diagnostic, nested proof command: skip
-       ;; FIXME: should adjust proof-nesting-depth here.
-       ((or (eq (span-property span 'type) 'comment)
-           (eq (span-property span 'type) 'proverproc)
-           (eq (span-property span 'type) 'proof)
-           (and str (proof-string-match isar-undo-skip-regexp str))
-           (and str (proof-string-match isar-undo-ignore-regexp str))))
-       ;; finished goal: undo
-       ((eq (span-property span 'type) 'goalsave)
-       (setq ans isar-undo))
-       ;; open goal: skip and exit
-       ((and str (proof-string-match isar-goal-command-regexp str))
-       (setq span nil))
-       ;; control command: cannot undo
-       ((and str (proof-string-match isar-undo-fail-regexp str))
-       (setq ans (isar-cannot-undo (match-string 1 str)))
-       (setq answers nil)
-       (setq span nil))
-       ;; theory: remove and exit
-       ((and str (proof-string-match isar-undo-remove-regexp str))
-       (setq ans (isar-remove (match-string 3 str)))
-       (setq span nil))
-       ;; else: undo
-       (t
-       (setq ans isar-undo)))
-      (if ans (setq answers (cons ans answers)))
-      (if span (setq span (next-span span 'type))))
-    answers))
-
-(defun isar-goal-command-p (span)
-  "Decide whether argument SPAN is a goal or not."
-  (proof-string-match isar-goal-command-regexp
-                     (or (span-property span 'cmd) "")))
-
-(defun isar-global-save-command-p (span str)
-  "Decide whether argument SPAN with command STR is a global save command."
-  (or
-   (proof-string-match isar-global-save-command-regexp str)
-   (let ((ans nil) (lev 0) cmd)
-     (while (and (not ans) span (setq span (prev-span span 'type)))
-       (setq cmd (or (span-property span 'cmd) ""))
-       (cond
-       ;; comment: skip
-       ((eq (span-property span 'type) 'comment))
-       ;; local qed: enter block
-       ((proof-string-match isar-save-command-regexp cmd)
-        (setq lev (+ lev 1)))
-       ;; local goal: leave block, or done
-       ((proof-string-match isar-local-goal-command-regexp cmd)
-        (if (> lev 0) (setq lev (- lev 1)) (setq ans 'no)))
-       ;; global goal: done
-       ((proof-string-match isar-goal-command-regexp cmd)
-        (setq ans 'yes))))
-     (eq ans 'yes))))
-
-(defvar isar-current-goal 1
-  "Last goal that Emacs looked at.")
-
-(defun isar-state-preserving-p (cmd)
-  "Non-nil if command CMD preserves the proofstate."
-  (proof-string-match isar-undo-skip-regexp cmd))
-
-
-;;
-;; Commands specific to isar
-;;
-
-(proof-defshortcut isar-bold      "\\<^bold>%p" [(control b)])
-(proof-defshortcut isar-local     "\\<^loc>%p" [(control c)])
-(proof-defshortcut isar-super     "\\<^sup>%p" [(control u)])
-(proof-defshortcut isar-sub       "\\<^sub>%p" [(control l)])
-(proof-defshortcut isar-longsuper "\\<^bsup>%p\\<^esup>" [?u])
-(proof-defshortcut isar-longsub   "\\<^bsub>%p\\<^esub>" [?l])
-(proof-defshortcut isar-idsub     "\\<^isub>%p" [(control i)])
-(proof-defshortcut isar-raw       "\\<^raw:%p>" [(control r)])
-(proof-defshortcut isar-antiquote "@{text \"%p\"}" [(control a)])
-(proof-defshortcut isar-ml       "ML {* %p *}" [(control x)])
-
-
-;;
-;; Isar shell startup and exit hooks
-;;
-
-(defvar isar-shell-current-line-width nil
-  "Current line width of the Isabelle process's pretty printing module.
-Its value will be updated whenever the corresponding screen gets
-selected.")
-
-(defun isar-shell-adjust-line-width ()
-  "Use Isabelle's pretty printing facilities to adjust output line width.
-Checks the width in the `proof-goals-buffer'"
-  (let ((ans ""))
-    (and (not proof-shell-silent)
-        (proof-with-current-buffer-if-exists proof-goals-buffer
-          (let ((current-width
-                 ;; Actually, one might want the width of the
-                 ;; proof-response-buffer instead. Never mind.
-                 (max 20 (window-width
-                          (get-buffer-window proof-goals-buffer t)))))
-
-            (if (equal current-width isar-shell-current-line-width) ()
-              (setq isar-shell-current-line-width current-width)
-              (set-buffer proof-shell-buffer)
-              (setq ans (format "pretty_setmargin %d;"
-                                (- current-width 4)))))))
-    ans))
-
-;;
-;; Shell mode command adjusting
-;;
-
-(defsubst isar-string-wrapping (string)
-  (concat
-   "\""
-   (replace-regexp-in-string
-    "[\000-\037\"\\\\]"
-    (lambda (str) (format "\\\\%03d" (string-to-char str)))
-    string)
-   "\""))
-
-(defsubst isar-positions-of (filename start end)
-  (let ((line (line-number-at-pos start)))
-    (format "(\"file\"=%s, \"line\"=\"%d\") "
-            (isar-string-wrapping filename) ; cache this?
-            line)))
-
-(defcustom isar-wrap-commands-singly t
-  "Non-nil to use command wrapping around commands sent to Isabelle.
-This slows down interactive processing slightly."
-  :type 'boolean
-  :group 'isabelle)
-
-(defun isar-command-wrapping (filename start end string)
-  "A value for `proof-script-preprocess'."
-  (if isar-wrap-commands-singly
-      (list "Isabelle.command "
-           (isar-positions-of filename start end)
-           (isar-string-wrapping string))
-    (list (replace-regexp-in-string "\n" "\\\\<^newline>" string))))
-
-(defun isar-preprocessing ()
-  "Insert sync markers and other hacks.
-Uses variables `string' and `scriptspan' passed by dynamic scoping."
-  (with-no-warnings  ; dynamic scoping of string, scriptspan
-    (if (proof-string-match isabelle-verbatim-regexp string)
-       (setq string (match-string 1 string))
-      (unless (string-match ";[ \t]*\\'" string)
-       (setq string (concat string ";")))
-      (setq string (concat
-                   "\\<^sync>; "
-                   (isar-shell-adjust-line-width)
-                   string
-                   " \\<^sync>;")))))
-
-;;
-;;   Configuring proof output buffer
-;;
-
-(defun isar-mode-config ()
-  (isar-mode-config-set-variables)
-  (isar-init-syntax-table)
-  (setq proof-script-font-lock-keywords isar-font-lock-keywords-1)
-  (set (make-local-variable 'comment-quote-nested) nil) ;; can cope with 
nested comments
-  (set (make-local-variable 'outline-regexp) isar-outline-regexp)
-  (set (make-local-variable 'outline-heading-end-regexp) 
-       isar-outline-heading-end-regexp)
-  (set (make-local-variable 'outline-heading-alist)
-       isar-outline-heading-alist)
-  (set (make-local-variable 'blink-matching-paren-dont-ignore-comments) t)
-  (add-hook 'proof-shell-insert-hook 'isar-preprocessing)
-  (proof-config-done))
-
-(defun isar-shell-mode-config ()
-  "Configure Proof General proof shell for Isabelle/Isar."
-  (isar-init-output-syntax-table)
-  (isar-shell-mode-config-set-variables)
-  (set (make-local-variable 'font-lock-extra-managed-props)
-       '(invisible))
-  (setq proof-shell-font-lock-keywords
-       isar-shell-font-lock-keywords)
-  (proof-shell-config-done))
-
-(defun isar-response-mode-config ()
-  (isar-init-output-syntax-table)
-  (setq proof-response-font-lock-keywords
-       (append proof-response-font-lock-keywords
-               isar-output-font-lock-keywords-1))
-  (setq font-lock-multiline t)
-  (make-local-variable 'jit-lock-chunk-size)
-  (setq jit-lock-chunk-size 2000)
-  (proof-response-config-done))
-
-(defun isar-goals-mode-config ()
-  (setq pg-goals-change-goal "prefer %s")
-  (setq pg-goals-error-regexp proof-shell-error-regexp)
-  (isar-init-output-syntax-table)
-  (setq proof-goals-font-lock-keywords
-       (append proof-goals-font-lock-keywords
-               isar-goals-font-lock-keywords))
-  (setq font-lock-multiline t)
-  (make-local-variable 'jit-lock-chunk-size)
-  (setq jit-lock-chunk-size 2000)
-  (proof-goals-config-done))
-
-(provide 'isar)
-
-;;; isar.el ends here
diff --git a/isar/isartags b/isar/isartags
deleted file mode 100755
index 0d65f8e..0000000
--- a/isar/isartags
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/usr/bin/perl
-#
-# Or perhaps: /usr/local/bin/perl
-#
-# FIXME: this code is just borrowed from legotags program,
-#        it isn't yet working!   Please send us fixes.
-#
-# $Id$
-#
-undef $/;
-
-if($#ARGV<$[) {die "No Files\n";}
-open(tagfile,">TAGS") || die "Couldn't open TAGS: $!\n";
-
-while(<>)      
-{ 
-  print "Tagging $ARGV\n";
-  $a=$_;
-  $cp=1;
-  $lp=1;
-  $tagstring="";
-
-  while(1) 
-  { 
-
-#   ---- Get the next statement starting on a newline ---- 
-
-    if($a=~/^[ \t\n]*\(\*/)
-    { while($a=~/^\s*\(\*/) 
-      { $d=1; $a=$'; $cp+=length $&; $lp+=(($wombat=$&)=~tr/\n/\n/);
-        while($d>0 && $a=~/\(\*|\*\)/)
-        { $a=$'; $cp+=2+length $`; $lp+=(($wombat=$`)=~tr/\n/\n/);
-          if($& eq "(*") {$d++} else {$d--};
-        }
-        if($d!=0) {die "Unbalanced Comment?";}
-      }
-    }
-
-    if($cp>1 && $a=~/.*\n/) {$a=$'; $cp+=length $&; $lp++;}
-    while($a=~/^\n/) {$cp++;$lp++;$a=$'}
-
-    if($a=~/^[^;]*;/) 
-    { $stmt=$&; 
-      $newa=$'; 
-      $newcp=$cp+length $&; 
-      $newlp=$lp+(($wombat=$&)=~tr/\n/\n/); }
-    else { last;}
-
-# ---- The above embarrasses itself if there are semicolons inside comments or
-# ---- inside commands. Could do better.
-
-#  print "----- (",$lp,",",$cp,")\n", $stmt, "\n";
-
-    if($stmt=~/^([ \t]*\$?theory\s*([\w\']+))\s*:/)
-       { $tagstring.=$1."\177".$2."\001".$lp.",".$cp."\n"; }
-
-    elsif($stmt=~/^([ \t]*\$?\[\s*[\w\']+)/)
-       { do adddecs($stmt,$1) }
-
-    elsif($stmt=~/^([ \t]*Inductive\s*\[\s*[\w\']+)/)
-       { do adddecs($stmt,$1) }
-
-#   ---- Maybe do something smart with discharge as well?
-
-    $cp=$newcp; $lp=$newlp; $a=$newa;
-  }  
-  print tagfile "\f\n".$ARGV.",".(length $tagstring)."\n".$tagstring;
-}
-close tagfile;
-
-
-sub adddecs {
-  $wk=$_[0];
-  $tag=$_[1];
-  while($wk=~/\[\s*([\w\']+)/)
-  { $tagstring.=$tag."\177".$1."\001".$lp.",".$cp."\n"; $wk=$';
-    while($wk=~/^\s*,\s*([\w\']+)/)
-    { $tagstring.=$tag."\177".$1."\001".$lp.",".$cp."\n"; $wk=$'; }
-    $d=1;
-    while($d>0 && $wk=~/\[|\]/)
-    { $wk=$'; if($& eq "[") {$d++} else {$d--};
-    }
-  }
-  0;
-}
-
diff --git a/lib/pg-dev.el b/lib/pg-dev.el
index 78d7986..9b412fe 100644
--- a/lib/pg-dev.el
+++ b/lib/pg-dev.el
@@ -3,7 +3,7 @@
 ;; This file is part of Proof General.
 
 ;; Portions © Copyright 1994-2012  David Aspinall and University of Edinburgh
-;; Portions © Copyright 2003-2018  Free Software Foundation, Inc.
+;; Portions © Copyright 2003-2021  Free Software Foundation, Inc.
 ;; Portions © Copyright 2001-2017  Pierre Courtieu
 ;; Portions © Copyright 2010, 2016  Erik Martin-Dorel
 ;; Portions © Copyright 2011-2013, 2016-2017  Hendrik Tews
@@ -110,10 +110,6 @@
      proof-maths-menu proof-unicode-tokens
      pg-thymodes pg-autotest
      ;;
-     isar-syntax isar-find-theorems isar-unicode-tokens
-     isar-autotest interface-setup isabelle-system isar
-     isar-keywords
-     ;;
      coq-abbrev coq-db coq-unicode-tokens coq-local-vars coq coq-syntax
      coq-indent coq-autotest)))
 
@@ -134,7 +130,6 @@
   (elp-instrument-package "scomint")
   (elp-instrument-package "unicode-tokens")
   (elp-instrument-package "coq")
-  (elp-instrument-package "isar")
   (elp-instrument-package "span")
   (elp-instrument-package "replace-") ; for replace-regexp etc
   (elp-instrument-package "re-search-") ; for re-search-forwad etc
@@ -176,7 +171,6 @@
              "http://proofgeneral.inf.ed.ac.uk/trac/ticket/%s";))))
 
 (add-hook 'emacs-lisp-mode-hook 'pg-bug-references)
-(add-hook 'isar-mode-hook 'pg-bug-references)
 (add-hook 'coq-mode-hook 'pg-bug-references)
 
 (add-hook 'emacs-lisp-mode-hook 'goto-address-mode)
diff --git a/obsolete/demoisa/demoisa.el b/obsolete/demoisa/demoisa.el
index 5254e97..895b328 100644
--- a/obsolete/demoisa/demoisa.el
+++ b/obsolete/demoisa/demoisa.el
@@ -15,7 +15,7 @@
 ;; Basic configuration is controlled by one line in `proof-site.el'.
 ;; It has this line in proof-assistant-table:
 ;;
-;;     (demoisa "Isabelle Demo"        "\\.ML$")
+;;     (demoisa "Isabelle Demo"        "\\.ML\\'")
 ;;
 ;; From this it loads this file "demoisa/demoisa.el" whenever
 ;; a .ML file is visited, and sets the mode to `demoisa-mode'
diff --git a/proof-general.el b/proof-general.el
index b241255..961fa08 100644
--- a/proof-general.el
+++ b/proof-general.el
@@ -78,11 +78,7 @@
   (let ((byte-compile-directories
          '("generic" "lib"
            "coq" "easycrypt" "pghaskell" "pgocaml" "pgshell" "phox"
-           ;; FIXME: These dirs used to not be listed, but I needed to add
-           ;; them for the compilation to succeed for me.  --Stef
-           ;; These dirs are now obsolete and not published on MELPA.  --Erik
-           ;; "isar"
-       )))
+           )))
     (dolist (dir byte-compile-directories)
       (add-to-list 'load-path (expand-file-name dir pg-init--pg-root)))))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]