code: private ImmutableSet<ImmutableExpression> getExpressionsToPropagateAboveUnion(ImmutableSet<CommutativeJoinOrFilterNode> providers) {
          return providers.stream()
                  .map(n -> n.getOptionalFilterCondition().get().flattenAND())
                  .reduce(this::computeIntersection).get();
      }
docs: Returns the boolean conjuncts shared by all providers.