You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
from sympy.core import S from sympy.core.relational import Eq, Ne from sympy.logic.boolalg import BooleanFunction from sympy.utilities.misc import func_name from .sets import Set
class Contains(BooleanFunction): """
Asserts that x is an element of the set S.
Examples ========
>>> from sympy import Symbol, Integer, S, Contains >>> Contains(Integer(2), S.Integers) True >>> Contains(Integer(-2), S.Naturals) False >>> i = Symbol('i', integer=True) >>> Contains(i, S.Naturals) Contains(i, Naturals)
References ==========
.. [1] https://en.wikipedia.org/wiki/Element_%28mathematics%29 """
@classmethod def eval(cls, x, s):
if not isinstance(s, Set): raise TypeError('expecting Set, not %s' % func_name(s))
ret = s.contains(x) if not isinstance(ret, Contains) and ( ret in (S.true, S.false) or isinstance(ret, Set)): return ret
@property def binary_symbols(self): return set().union(*[i.binary_symbols for i in self.args[1].args if i.is_Boolean or i.is_Symbol or isinstance(i, (Eq, Ne))])
def as_set(self): raise NotImplementedError()
|