def resolve_elements(self):
        if self.leaf:
            if not self.content:
                return set()
            return set(self.content)
        not_nodes = [s for s in self.sons if s.not_value]
        positiv_nodes = [s for s in self.sons if not s.not_value]
        if not self.operand:
            self.operand = '|'
        res = set()
        i = 0
        for node in positiv_nodes:
            node_members = node.resolve_elements()
            if self.operand == '|':
                res = res.union(node_members)
            elif self.operand == '&':
                if i == 0:
                    res = node_members
                else:
                    res = res.intersection(node_members)
            i += 1
        for node in not_nodes:
            node_members = node.resolve_elements()
            res = res.difference(node_members)
        return res