constraints solving programming