'Return True if the `label\' cannot be placed underneath the holes given
by the set `ancestors\' because it would violate the constraints imposed
on it.'

def _violates_constraints(self, label, ancestors):

    for c in self.constraints:
        if (c.lhs == label):
            if (c.rhs not in ancestors):
                return True
    return False
