John, your definition of f*(P) looks dubious if f is not surjective, because it may have empty parts. It happens to work in the example given...