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.

full paper