constraint satisfaction