code: public Filter<S> getCoveringRemainderFilter() {
          if (mCoveringRemainderFilter == null) {
              List<? extends Filter<S>> remainderFilters = mRemainderFilters;
              List<? extends Filter<S>> coveringFilters = mCoveringFilters;
              if (coveringFilters.size() < remainderFilters.size()) {
                  Filter<S> composite = null;
                  for (int i=0; i<remainderFilters.size(); i++) {
                      Filter<S> subFilter = remainderFilters.get(i);
                      if (!coveringFilters.contains(subFilter)) {
                          if (composite == null) {
                              composite = subFilter;
                          } else {
                              composite = composite.and(subFilter);
                          }
                      }
                  }
                  mCoveringRemainderFilter = composite;
              }
          }
          return mCoveringRemainderFilter;
      }
docs: Returns the composite remainder filter without including the covering
  filter. Returns null if no remainder.
  
  @since 1.2