protected static FrequencySet<String> combineMin(FrequencySet<String> a, FrequencySet<String> b) {
		if (b == SENTINEL) {
			return a;
		}

		assert a != SENTINEL;
		FrequencySet<String> result = combineAndClip(a, b, Integer.MAX_VALUE);
		for (Map.Entry<String, MutableInt> entry : result.entrySet()) {
			entry.getValue().v = Math.min(a.count(entry.getKey()), b.count(entry.getKey()));
		}

		return result;
	}
Generate a frequency set as the union of two input sets. If an
element is contained in both sets, the value for the output will be
the minimum of the two input values.

@param a The first set.
@param b The second set. If this set is {@link #SENTINEL}, it is treated
as though no second set were provided.
@return The union of the two sets, with the minimum value chosen
whenever both sets contain the same key.
tool/src/org/antlr/v4/codegen/model/ElementFrequenciesVisitor.java