code: func (cps ComparablePrincipalSets) Reduce() ComparablePrincipalSets {
  	// Continuously try to reduce the ComparablePrincipalSets until
  	//  no progress is made.
  	current := cps
  	for {
  		currLen := len(current)
  		// Try to reduce the principal sets.
  		reduced := current.reduce()
  		newLen := len(reduced)
  		if currLen == newLen {
  			// If no improvement was made over
  			// the existing set, stop.
  			return reduced
  		}
  		// Else we made progress, so try to reduce once more.
  		current = reduced
  	}
  }
docs: // Reduce returns the ComparablePrincipalSets in a form such that no element contains another element.
  // Every element that contains some other element is omitted from the result.