Next: The CHR Language
Up: The Constraint Handling Rules
Previous: Using Constraint Handling Rules
  Index
All example files are in the subdirectory lib/chr of the
installation-directory of ECLiPSe (which can be found using get_flag(installation_directory,Dir).
The files (.chr, .pl, examples)
relevant to a
particular constraint system can be found by looking at all files that
match the pattern given in the following listing with each example
handler. The examples include a color graphic demo about
optimal sender placement for wire-less devices in buildings and
company sites, small constraint handlers for
- minimum, maximum of and inequalities between terms (*minmax*),
- terms (functor/3, arg/3, =.. as constraints) (*term*),
- lists (similar to Prolog III) (*list*),
- rational trees (*tree*),
- sound if-then-else, negation and checking,
lazy conjunction and disjunction (*control*),
- geometric reasoning about rectangles (*demo*),
and larger constraint handlers for
- booleans for propositional logic (*bool*),
- finite and infinite domains (inspired by CHIP) (*domain*),
- sets (*set*),
- terminological reasoning (similar to KL-ONE) [8] (*kl-one*),
- temporal reasoning (over time points and intervals) [7] (*time*),
- equation solving over real numbers (similar to CLP(R)) or rational numbers (*math*).
CHRs have also been used as a committed choice programming language
on their own (*prime*).
The example handlers can be loaded using chr(lib(File))
. For
instance the finite domain handler can be made available as follows
(the current directory must have write permission so that
the pl file can be created):
[eclipse 1]: lib(chr), chr(lib(domain)).
...
domain.pl compiled traceable 241028 bytes in 1.22 seconds
yes.
[eclipse 2]: X::1..10, X ne 5.
X = X
Constraints:
(4) X_g1165 :: [1, 2, 3, 4, 6, 7, 8, 9, 10]
yes.
Next: The CHR Language
Up: The Constraint Handling Rules
Previous: Using Constraint Handling Rules
  Index
Warwick Harvey
2004-08-07