Constraint Logic Programming over Finite Domains