Programming with constraints
Kim Marriott and Peter J. Stuckey
A comprehensive, self-contained introduction to constraint programming, in which programs are represented as relational equations between values and variables, and execution consists of assigning values to the variables that maintain the relational equations.




