Constraint satisfaction is a simple but powerful tool. Constraint problems are used to model cognitive tasks in vision, language comprehension, default reasoning, diagnosis, scheduling, temporal & spatial reasoning. This title provides an examination of the theory that underlies constraint processing algorithms.