============================================================================
	prooftree bundle of prooftree, Proof General and Coq ID patch
============================================================================

Prooftree is a program for proof tree visualization during interactive
proof development in a theorem prover. It is currently being developed for
Coq and Proof General. See http://askra.de/software/prooftree/ for more
information.

Prooftree requires a special development version of Proof General as well
as a patched version of Coq. This directory bundles consistent versions of
Proof General, prooftree and the Coq ID patch. See the README files in the
different subdirectories for more details.

Below I collect the most important information from the three
subdirectories. Please refer to the more derailed information in the
subdirectories if the following is not sufficient.


============================================================================
  PREREQUISITES
============================================================================

You need Emacs version 23, ocaml and LablGtk2. For Debian, the packages
emacs23, ocaml-nox and liblablgtk2-ocaml-dev suffice.


============================================================================
  INSTALLATION
============================================================================

1. Install Coq with the ID patches, see coq-patch-8.3pl2/README for more
   details. 

   1.1. Download Coq version 8.3pl2 from
        http://coq.inria.fr/distrib/V8.3pl2/files/coq-8.3pl2.tar.gz 

   1.2. untar

        tar -xzf coq-8.3pl2.tar.gz

   1.3. apply the patch

        patch -p0 < coq-patch-8.3pl2/coq-id-patch

   1.4. install Coq as usual

	cd coq-8.3pl2
	./configure
	make world
	make install


2. Optionally byte compile Proof General 

   2.1. cd ProofGeneral_ProofTreeBranch

   2.2. make compile


3. Install prooftree

   2.1. cd prooftree

   3.2. Configure with

	./configure

	optionally supply -prefix <dir> or -bindir <dir> to set the installation
	directories. 

   3.3. Compile and install

	make all
	make install


============================================================================
  EMACS CONFIGURATION
============================================================================

Before you can enjoy prooftree you have to configure Emacs to find
prooftree and use the right versions of Proof General and Coq. Of course
you have to disable any other settings that select a particular Proof
General or Coq version.

1. Prooftree is controlled by Proof General as a subprocess of Emacs. You
   therefore have to make sure Emacs loads the right version of Proof
   General (from the ProofTreeBranch). Put

   (load-file "<thisdir>/ProofGeneral_ProofTreeBranch/generic/proof-site.el")

   in your .emacs, where <thisdir> is the directory that contains this
   file. 

2. Further, you have to ensure that Proof General launches the Coq version
   with the ID patches. 

   Either globally set coq-prog-name by inserting

   (setq coq-prog-name "<coq-id-dir>/bin/coqtop")

   into your .emacs or extend Emacs' exec-path by inserting

   (setq exec-path (cons "<coq-id-dir>/bin" exec-path))

   into your .emacs. In both cases <coq-id-dir> stands for the installation
   directory that you specified in step 1.4. for the configure script of
   Coq (where /usr/local is the default).

3. If you configured prooftree to install in a non-standard location, you
   have to set proof-tree-program: Put

   (setq proof-tree-program "<pt-dir>/bin/prooftree")

   where <pt-dir> is the prooftree installation directory as specified in
   step 3.2 (with /usr/local as default). (Alternatively you can extend
   exec-path, see point 2 above.)


============================================================================
  USAGE
============================================================================

Start Emacs and load any Coq file. Proof display with prooftree is
initially disabled. To enable it, hit the prooftree tool-bar icon, select
menu Proof-General -> Start/Stop Prooftree or type C-c C-d. If you are
inside a proof any of these actions will launch a proof-tree display for
the current proof. Otherwise prooftree will be launched as soon as you
start the next proof.

============================================================================
CREDITS / COPYRIGHT
============================================================================

Prooftree is more or less a reimplementation of the graphical proof display
of Pvs. The Pvs version is implemented in Tcl/Tk and controlled directly by
the Pvs prover process, which has some advantages over the prooftree
approach. 

Proof General (http://proofgeneral.inf.ed.ac.uk/) is a general Emacs
front-end for interactive theorem provers developed by David Aspinall and
others. The changes to support prooftree are relatively small. I am only
distributing a complete copy of Proof General here, because I am developing
inside the cvs head version of Proof General and it would otherwise be a
bit difficult to obtain versions of Proof General and prooftree that are
consistent with each other.

Coq is an interactive proof assistant for the calculus of inductive
constructions, see http://coq.inria.fr/. 

All material in this directory is copyright protected. See the
subdirectories for details.


============================================================================
  CONTACT
============================================================================

Please send bug reports, comments, patches, donations regarding prooftree
and its integration with Proof General and Coq to 
Hendrik Tews <prooftree@askra.de>

For general questions about Proof General or Coq please use the respective
mailing list of these tools.


============================================================================

Local Variables:
mode: indented-text
fill-column: 75
End:
