constrain satisfaction problem solver