Constraint Programming Formulations and Propagation Algorithms