I tried to scale-up the sudoku solver to 9x9, but it did not work. The result found a few of the unknown values, but left many as variables. The gnu prolog gave possible values for the variables. It seems to me that additional rules are required.
The following needs to be added: fd_labeling(Solution). as the last term. This will force backtracking until all of the variables have values assigned. It was not necessary for the 4x4 puzzle given in the book, but it is necessary for larger puzzles.