intersectBy package:grisette

Symbolic version of intersectBy, the result would be merged and propagate the mergeable knowledge. Can generate O(len(rhs)) cases, and O(len(lhs) * len(rhs)) constraints, assuming the predicate only generates O(1) constraints.