Extending Constraint Logic Programming with Open Functions
Nikolay Pelov and Maurice Bruynooghe
To appear at the 2nd International Conference on Principles and Practice of
Declarative Programming (PPDP 2000), Montreal, Canada, September 20-22, 2000
The natural representation of solutions of finite constraint
satisfaction problems is as a (set of) function(s) or relation(s).
In (constraint) logic programming, answers to queries are in the
form of substitutions to the variables in the query. This results in
a not very declarative programming style where a table has to be
presented as a complex term. Recently, stable logic programming,
also called answer set programming and abductive logic programming
have been proposed as approaches supporting a more declarative style
for solving such problems.
The approach developed in this paper is to extend the constraint
domain of a constraint logic programming language with open
functions, functions for which the interpretation is not fixed in
advance. Their interpretation contains the solution of the problem.
This enrichment of the constraint domain yields a language which is
almost as expressive as abductive logic programming and is very well
suited for expressing finite domain constraint satisfaction
problems. Implementation requires only to extend the constraint
solver of the underlying CLP language.