mathematical logic puzzle