I wasn't aware of this chapter, but I did use constraint propagation for the solver (among other things), thanks!