                                clasp-2.x
              A conflict-driven nogood learning answer set solver 
                     http://www.cs.uni-potsdam.de/clasp/
					  http://potassco.sourceforge.net/

OVERVIEW
  clasp is an answer set solver for (extended) normal logic programs. 
  It combines the high-level modeling capacities of answer set programming
  with state-of-the-art techniques from the area of Boolean constraint solving.
  The primary clasp algorithm relies on conflict-driven nogood learning, 
  a technique that proved very successful for satisfiability checking (SAT).
  Starting with version 2.0, clasp supports parallel (multithreaded) solving.
  
  clasp is written in (mostly) Standard-C++. It was successfully built and run
  under Linux (x86-32, x86-64) using gcc and Windows (x86-32, x86-64) using
  either Microsoft Visual Studio or MinGW. 
  
  Detailed information (including a User's manual), source code,
  and pre-compiled binaries are available at: http://potassco.sourceforge.net/
 
LICENSE
  clasp is part of the Potassco project hosted at SourceForge.
  It is distributed under the GNU Public Licens. See COPYING for
  details regarding the license.

PACKAGE CONTENTS
  COPYING      - GNU Public License
  CHANGES      - Major changes between versions
  README       - This file
  configure.{sh,bat}
               - Simple script that creates Makefiles for building clasp (library and application) 
  app/         - Source code directory of the command-line interface
  libclasp/    - Directory of the clasp (static) library (sources, documentation, unit tests)
  libprogram_opts/
               - Library for parsing command-line options (needed by app)
  build_vc/    - Directory containing Visual Studio project files for building clasp
  tools/       - Some additional files
  
BUILDING & INSTALLING
  The preferred way to build clasp is to use make and the provided configure script.
  You'll need to have the GNU Compiler Collection (GCC) version 3 or
  better installed in order to build clasp. You'll also need GNU make 3.80 or better. 
  On Microsoft Windows, we recommend using MinGW available from http://www.mingw.org/
  You may want to visit http://www.mingw.org/wiki/Getting_Started for detailed
  instructions on installing MinGW. Make sure to also install MinGW-make. 
  
  In the following it is assumed that 'make' is an alias for the installed GNU make. 
  If this is not the case on your system, replace 'make' with the name of the GNU make 
  executable (e.g. gmake). Furthermore, on Microsoft Windows use ./configure.bat instead of
  ./configure.sh.

  clasp's multithread support requires the Intel Threading Building Blocks library (version >= 3.x) 
  which is freely available at: http://threadingbuildingblocks.org/ 
  After downloading and installing you may want to set and export the 
  TBB30_INSTALL_DIR environment variable.

  Type 
    ./configure.sh --help 
  to get an overview of all supported build configurations/options.
  
  To build clasp:
    ./configure.sh
    cd build/release
    make
  
  To build clasp with multithread support using TBB30_INSTALL_DIR:
    ./configure.sh --with-mt
    cd build/release_mt
    make
  
  To build clasp with multithread support using custom directory structure:
    ./configure.sh --with-mt TBB_INCLUDE=<path_to_tbb_include> TBB_LIB=<path_to_tbb_lib>
    cd build/release_mt
    make

  To install clasp:
    make install
	
  By default, 'make install' will install clasp in '/usr/local/bin'
  You can specify an installation prefix other than '/usr/local' 
  by running the configure-script with the option '--prefix=PATH'.
  Alternatively, use option '--bindir=PATH' to directly specify the
  installation path. 

  Finally, you can always skip installation and simply copy the
  clasp executable to a directory of your choice.
		
BUILDING WITH Microsoft Visual Studio
  In the directory build_vc/ we provide Microsoft Visual Studio project files
  for building clasp. You can download the freely available express edition 
  of Visual C++ from here:
  http://www.microsoft.com/express/Downloads/
  Once installed:
    - open build_vc\vc9\clasp\clasp.sln
    - select the desired solution configuration (typically release_static) 
    - build the "app" project	

USAGE
  clasp reads problem instances either from stdin, e.g 
    cat problem | clasp
  or from a given file, e.g
    clasp problem
	
  Beside logic programs in SMODELS-format, clasp also supports SAT-problems in DIMACS-,
  Max-SAT in (extended) DIMACS-, and PB-problems in OPB and WBO-format.
	
  Type
    clasp --help
  to get an overview of the various options supported by clasp.
	
  In addition to printing status information, clasp also
  provides information about the computation via its exit status.
  The exit status is:
    10: if the problem was found to be satisfiable
    20: if the problem was proved to be unsatisfiable
    0 : if the satisfiability of problem is not known, 
        because search was either interrupted or not started
    127: if clasp ran out of memory
    Furthermore, the exit status of 1 indicates an error.
	


