A Methodological View of Constraint Solving
Constraints have become very popular during the last decade.
Constraints allow to define sets of data by means of logical
formulae. Our goal here is to survey the notion of constraint system,
to give examples of constraint systems operating on various domains,
such as natural, rational or real numbers, finite domains, and term
domains. We classify the different methods used for solving
constraints, syntactic methods based on transformations, semantic
methods based on adequate representations of constraints, hybrid
methods combining transformations and enumerations. Examples will be
used throughout the paper to illustrate the concepts and methods. We
will also discuss applications of constraints to various fields, such
as programming, operations research, and theorem proving.