discrete CSP