Building and running the Core Proof Engine.
--------------------------------------------

1. You need MoscowML 1.43, compiled to allow dynamic linking of
   libraries. Note that to build Hol98 you need the version of MoscowML
   found at

       ftp://ftp.dina.kvl.dk/pub/mosml/mos14src.tar.gz


2. You need Hol98, which is available at

       http://www.cl.cam.ac.uk/ftp/hvg/hol98/hol98.tar.gz


3. Unpack the cpe.tar.gz file. This makes a directory called `CPE'. Go
   into this directory. There are three subdirectories to this: "doc",
   "sockets", and "src".


4. Go into the "sockets" directory and edit the Makefile to set the
   MOSMLHOME directory. Also edit the file `Socket.sml'. There is a line
   that goes

      val hdl  = dlopen {lib = "/home/kxs/prosper/CPE/sockets/mlsocket.so",

   This should be changed to 

      val hdl  = dlopen {lib = "<path>/sockets/mlsocket.so",

   where <path> is the full path of the `CPE' directory. 

   Now invoke `make'. This builds the socket library. To test everything
   is OK, start up MoscowML and invoke 

     load "Socket";


5. Go into the "src" directory. Edit the Makefile to set the path to the
   Hol98 distribution at your site. Now invoke `make'. This will
   generate two executables: "CPEinet" and "CPEunix". These are the 
   Internet- and Unix-domain executables of the Core Proof Engine.


6. The Core Proof Engine can be tested out by the file "test". Invoke 

       mosml -I ..

   Then execute the ML phrases in "test"; these start up the CPE and
   feed it a number of examples. Note: the CPE can take
   awhile to start-up (22 seconds on my laptop, which is not even
   loading over a network!).

Let me know of any problems.

Konrad Slind  (kxs@cl.cam.ac.uk)
