<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def is_contradictory(self, other):
 """ Does the merge yield the empty set? """

        if not self.is_domain_equal(other):
            return True
        # what would happen if the two were combined? 
        test_lower = self.lower.union(other.lower)
        test_upper = self.upper.union(other.upper)
        # if there is a path from lower to upper nodes, we're in trouble:
        domain = self.get_domain()
        for low in test_lower:
            for high in test_upper:
                if low != high and has_path(domain, low, high):
                    return True
        # lastly, build a merged ordering and see if it has 0 members
        test = self.__class__()
        test.lower = test_lower
        test.upper = test_upper
        return len(test) == 0