Coverage for /usr/lib/python3/dist-packages/sympy/sets/contains.py: 61%
18 statements
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-14 15:55 +0200
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-14 15:55 +0200
1from sympy.core import S
2from sympy.core.relational import Eq, Ne
3from sympy.logic.boolalg import BooleanFunction
4from sympy.utilities.misc import func_name
5from .sets import Set
8class Contains(BooleanFunction):
9 """
10 Asserts that x is an element of the set S.
12 Examples
13 ========
15 >>> from sympy import Symbol, Integer, S, Contains
16 >>> Contains(Integer(2), S.Integers)
17 True
18 >>> Contains(Integer(-2), S.Naturals)
19 False
20 >>> i = Symbol('i', integer=True)
21 >>> Contains(i, S.Naturals)
22 Contains(i, Naturals)
24 References
25 ==========
27 .. [1] https://en.wikipedia.org/wiki/Element_%28mathematics%29
28 """
29 @classmethod
30 def eval(cls, x, s):
32 if not isinstance(s, Set):
33 raise TypeError('expecting Set, not %s' % func_name(s))
35 ret = s.contains(x)
36 if not isinstance(ret, Contains) and (
37 ret in (S.true, S.false) or isinstance(ret, Set)):
38 return ret
40 @property
41 def binary_symbols(self):
42 return set().union(*[i.binary_symbols
43 for i in self.args[1].args
44 if i.is_Boolean or i.is_Symbol or
45 isinstance(i, (Eq, Ne))])
47 def as_set(self):
48 return self.args[1]