-
J. Bowen and Dennis Bahler,
Constraint Processing and Logic Programming,
8th Natl. Conf. on Artificial Intelligence (AAAI-90),
Workshop on Constraint Directed Reasoning, Boston, 1990.
Constraint processing
is complementary to logic programming: logic programming
is concerned with proving theorems from a set $\Gamma$ of
sentences which are assumed
to have a model; constraint processing is concerned with finding
a model for $\Gamma$.
This view of constraint processing has been realized in the
language Galileo which we introduce in this paper.
In Galileo, any sentence (atomic, compound or quantified)
from full first-order classical logic is a well-formed constraint.
In fact, classical logic sentences are only a
subset of the well-formed constraints in Galileo; any sentence
in first-order Free Logic, which subsumes classical logic, is
a well-formed constraint in Galileo.
This expressive power comes at the price of involving the user
in the constraint satisfaction process.
The user of a Galileo program and the Galileo interpreter
form a composite constraint satisfaction system in which the
run-time system performs what we call constraint {\it monitoring}.
We have successfully used Galileo to implement several CAD
applications, fragments from one of which we present in the paper, in order
to illustrate the usage of Free Logic.
(274kb PDF)