lpsms is a system for computing the stable model semantics of logic
programs.  It consists of:

 * simplify and stratify: preprocess logic program for use with stable,
   sderes, and lderes.
 * smdtconv: convert a logic program into a default theory for use with
   sderes or lderes.
 * sderes and lderes: compute extensions of a subclass of default theories
   containing logic programs as a subset.  In the case of logic programs,
   extensions are stable models.
 * stable: compute stable models of logic programs.
 * sm2dt and make-stable:  drive lparse, simplify, stratify, and possibly
   smdtconv to produce from a human-readable logic program something
   suitable for use with lderes, sderes, or stable.

Courtesy of Tommi Syrjänen <tommi.syrjanen@hut.fi>, lpsms also
includes lparse, which grounds human-readable logic programs,
converting them into a format acceptable to simplify, stratify, etc.
The latest version of lparse is available from the smodels web site
at http://saturn.tcs.hut.fi/Software/smodels/lparse/.


lpsms proper requires:
 * Perl 5.  It has been tested with versions between 5.004_03 and
    5.6.0.
 * An ANSI C compiler.  gcc is recommended, but not required.
 * A POSIX or Bourne shell.
 * A C shell.
 * A version of make that supports the `include' directive.  Among the
   supported versions are GNU make, HP-UX make, and Solaris make.
 * Standard Unix shell utilities (test, printf, echo, cp, chmod, etc.)

lparse requires:
 * A C++ compiler (for lparse).  We have only tested gcc 2.95, egcs
   1.1.1, and gcc 2.8.1, though there are certainly many other compilers
   that work.  For more information, you may wish to contact Tommi
   Syrjänen, the author of lparse, at <tommi.syrjanen@hut.fi>.

lpsms has been tested on the following systems:
 * x86 running Linux 2.2, with gcc 2.95
 * AXP running Linux 2.0, with egcs 1.1.1
 * SPARC running SunOS 5.7 (Solaris), with egcs 1.1.1
 * SPARC running SunOS 5.7 (Solaris), with gcc 2.8.1

To configure lpsms, type ``./Config'' (without quotes) while in the
lpsms-<version> top-level directory.  The configuration process will
ask a number of questions, mostly involving paths and permissions.

To compile lpsms, type ``make'' (after running Config).  This builds
the various components of lpsms, leaving the binaries in the
appropriate subdirectories of the source directory.

To make postscript versions of the manual pages and (if you have
LaTeX installed) the lparse texinfo documentation, type ``make doc''
(after running Config).  This places postscript versions of all
the documentation in the ps/ subdirectory of the lpsms top-level
build directory (the directory is created if it does not exist).

To install lpsms, type ``make install'' (after running make).  This
places the lpsms binaries, libraries, header files, and manual pages
in the directories you specified when running Config.  After doing so,
you may wish to add the appropriate directories to your PATH and
MANPATH.  Ask your system administrator if you do not already know
how to do so.

Once you have installed lpsms, you may wish to read all the manual
pages.  They may be read using the ``man'' command, or by doing
``make doc'' as described above and printing or viewing the resulting
postscript files.  The manpages are for the various lpsms components:
  simplify: perform stable-model-preserving conversions on logic programs
  stratify: compute and generate relaxed stratifications
  smdtconv: convert logic programs into DeReS-format default theories
  make-stable: process logic programs for use with stable
  sm2dt: translate logic programs into default theories
  lderes: compute stable models of logic programs (in default theory format)
  sderes: compute stable models of logic programs (in default theory format)
  stable: compute stable models of logic programs
  


lpsms consists primarily of code written at the University of Kentucky.
For your convenience, lparse 0.99.49 is included (and is automatically
built/installed along with the lpsms programs).  See COPYRIGHT and
lparse/COPYING for licence information.

