For those of us who'd rather have Haskell do the thinking for us:
https://gist.github.com/LeventErkok/654a86a3ec7d3799b624
Honestly, this is more an exercise in how to formalize such puzzles as opposed to demonstrating the capabilities of SBV or SMT-solvers in general; but fun nonetheless. The backend SMT solver (I used Z3) solves the puzzle instantly.
Enjoy..
-Levent.
PS. Thanks to Amit Goel for suggesting the formalization strategy used in the encoding.