Improve edge-case handling for PredicateSet