Wow - one of the best patterns I've seen. It's not necessary to assume symmetry -- good thing too since the puzzle as a whole is not symmetrical. (though, the center is, and assuming symmetry will speed things up) It can be solved with first-order logic alone.