Principles and Practice of Constraint Programming - Michel Rueher (Springer, 2016)