Constraint Satisfaction Module


User Manual
------------

This is a short reference to the basic commands of the CSP
module. It should be enough to run and debug the examples 
and to write new domains and examples.

Input Files 
------
The input for the CSP module is a problem description. A CS
problem (see general help) is defined by giving a set of
variables, a set of associated domains, a set of unary predicates,
a set of binary predicates and the structure of the constraint
network.
The best way to have a generic symbolic constraint propagator
is to use Lisp for the definition of predicates and network. 
This might cause problems to the PAIL system when the user makes syntactic errors:
for this reason all the errors occurring during the loading of a CSP description file
are catched and the appropriate debug information is displayed on the 
CSP:Standard Output window.

----------------
The CSP Module
----------------
 
CSP Command Reference

LOAD:
To load a CSP description file. Only files with extension ".csp"
are considered for loading. You can load a file by double clicking its
name, or pushing OK after having selected it. Double clicking on  
directory names (ending with "/") you can browse into the file-system.
When a problem description is loaded the starting constraint network
is displayed andd the system is ready to run. If the system has encountered 
problems during the load phase an error message is prompted.
If the user has set some option in its input file the corresponding
radio button are updated.


EDIT:
To edit a CSP description file. The user selects a file like in the load file dialog,
and an editor window will be  open.

CLEAR: 
This button clears the CSP:Standard-Output window

HELP: 
To get on-line documentation

RUN:
This button starts the constraint propagation algorithm.
The systems waits according to the debug flags set by the 
user (se below). If no input files have been loaded an error message 
is issued. When the system is waiting the CONTINUE and ABORT 
buttons became active, allowing the user to make the next processing step,
or to abort the execution. If errors occur during the evaluation
of the user defined predicated p1 and p2 some debugging 
message is printed and the execution is aborted.

PAUSE:
This button can be used to pause the execution asyncronously, activating
the ABORT and CoNTINUE buttons.

ABORT:
Forces the termination of the execution

CONTINUE:
Makes a single processing step: the size of the step depends
on the debugging options set by the user.

SOLUTIONS:
This button shows all the solutions generated so far. The default
behavior is to print out the solutions on CSP:Standard-Output. 
If the user has defined the 
"user-defined-show-solutions" function it will be called on each 
solution. If an error occurs during the execution of this custom
function an error message is printed.

Useful variable names




