Principles and Practice of Constraint Programming - John Hooker (Springer, 2018)