Solver for checking satisfiability of hard constraints