def convert_set_relation()

in src/latex2sympy2_extended/latex2sympy2.py [0:0]


    def convert_set_relation(self, expr):
        if expr.atom_expr_list():
            left = self.convert_atom_expr_list(expr.atom_expr_list())
            right = self.convert_set_relation(expr.set_relation()[0])
            if expr.IN():
                if self.config.interpret_simple_eq_as_assignment and is_expr_of_only_symbols(left):
                    # set value
                    self.variances[left] = right
                    self.var[str(left)] = right
                    return right
                elif self.config.interpret_contains_as_eq:
                    return sympy.Eq(left, right, evaluate=False)
                else:
                    return sympy.Contains(left, right, evaluate=False)
            elif expr.ASSIGNMENT():
                if self.config.interpret_simple_eq_as_assignment and is_expr_of_only_symbols(left):
                    # set value
                    self.variances[left] = right
                    self.var[str(left)] = right
                    return right
                else:
                    return sympy.Eq(left, right, evaluate=False)
            elif expr.NOTIN():
                if self.config.interpret_contains_as_eq:
                    val = (sympy.S.Reals if self.is_real else sympy.S.Complexes) - right
                    if self.config.interpret_simple_eq_as_assignment and is_expr_of_only_symbols(left):
                        self.variances[left] = val
                        self.var[str(left)] = val
                        return val
                    else:
                        return sympy.Not(sympy.Eq(left, right, evaluate=False), evaluate=False)
                else:
                    return sympy.Not(right.contains(left))

        if expr.set_relation():
            left = self.convert_set_relation(expr.set_relation()[0])
            right = self.convert_set_relation(expr.set_relation()[1])
            if expr.SUBSET():
                return left.is_subset(right)
            if expr.SUPSET():
                return right.is_subset(left)
            raise Exception('Unrecognized set relation')
        return self.convert_set_minus(expr.minus_expr())