The check in AbstractPredicateSet.isEmpty is backwards. Here is the source code for that test, in file plt/src/edu/rice/cs/plt/collect/AbstractPredicateSet.java:
/** Returns {@code size(1) != 0}. */
@Override public boolean isEmpty() { return size(1) != 0; }
This function will return true precisely when the receiver set is not empty. The correct code should be:
/** Returns {@code size(1) != 0}. */
@Override public boolean isEmpty() { return size(1) == 0; }