code: def is_entailed_by(self, other):
          
          if not self.same_domain(other):
              return False
          
          if not other.values:
              if self.values:
                  # None can never entail -None
                  return False
              else:
                  # None entails None
                  return True
          
          return not self.values or self.values.issuperset(other.values)
docs: Fewer members = more information (exception is empty set, which means
          all members of the domain)
  
           (1) when self is empty and others is not (equal to containing the
            entire domain)
           (2) when other contains more members than self