A Constraint Solver