Building and running the Core Proof Engine.

1. You need MoscowML 1.43, compiled to allow dynamic linking of libraries.


2. You need Hol98, which is available at 

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


3. Edit the Makefile in this directory to set the MOSMLHOME
   directory. Also edit the file `Socket.sml'. There is a line that goes

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

   This should be changed to 

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

   where <path> is the full path to the current directory. 

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

     load "Socket";


4. Go into the `CPE' directory and invoke `mk'. You will first have to
   find and edit the paths in `mk' that refer to various site-specific
   directories. I hope they will be easy to spot. `mk' calls `Holmake',
   found in

      <holdir>/bin/Holmake

   and `mosmlc', also accessible through

      <holdir>/bin/mosmlc.

   An executable named "cpe" is generated by the invocation of
   `mk'. This is the core proof engine.


5. The CPE is tested by the file "client". Invoke 

       mosml -I ..

   Then execute the ML phrases in "client"; 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)
