Programming with Constraints door Kim Marriott & Peter J. Stuckey