==> logic/smullyan/black.hat.s <== A must see at least one black hat, or she would know that her hat is black since they are not all white. B also must see at least one black hat, and further, that hat had to be on C, otherwise she would know that her hat was black (since she knows A saw at least one black hat). So C knows that her hat is black, without even seeing the others' hats.