Module Expr Str ImportFrom alias alias ImportFrom alias ImportFrom alias ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam NameParam defaults body Expr Str Raise NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Raise NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Raise NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Raise NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Raise NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Raise NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Return BoolOpAnd Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Raise NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Raise NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Raise NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Raise NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Raise NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Raise NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Raise NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Raise NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Assign AttributeStore NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str If BoolOpOr UnaryOpNot Call NameLoad NameLoad NameLoad CompareNotEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Raise Call NameLoad BinOpMod Str TupleLoad AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Return Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str If Call NameLoad NameLoad NameLoad body Return Call AttributeLoad NameLoad attr NameLoad Return Call NameLoad GeneratorExp Call AttributeLoad NameLoad attr NameLoad comprehension NameStore NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults kwarg body Expr Str Expr Call AttributeLoad NameLoad attr NameLoad Return Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Expr Call AttributeLoad NameLoad attr NameLoad Return Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Raise NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Expr Call AttributeLoad NameLoad attr NameLoad Return Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Expr Call AttributeLoad NameLoad attr NameLoad Return Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body If UnaryOpNot Call NameLoad NameLoad NameLoad body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad If Call NameLoad NameLoad AttributeLoad NameLoad attr body Return NameLoad If Call NameLoad NameLoad AttributeLoad AttributeLoad NameLoad attr attr body Return Call NameLoad NameLoad Return Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Return Call AttributeLoad NameLoad attr NameLoad decorator_list Assign NameStore NameLoad FunctionDef arguments args NameParam NameParam defaults body If UnaryOpNot Call NameLoad NameLoad NameLoad body TryExcept body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad handlers ExceptHandler type NameLoad body Return NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Return Call AttributeLoad NameLoad attr NameLoad decorator_list Assign NameStore NameLoad FunctionDef arguments args NameParam NameParam defaults body If CompareLt NameLoad Num body Raise NameLoad Return Call NameLoad Lambda arguments args NameParam NameParam defaults BinOpMult NameLoad NameLoad BinOpMult ListLoad NameLoad NameLoad Call AttributeLoad AttributeLoad NameLoad attr attr Num decorator_list FunctionDef arguments args NameParam NameParam defaults body If BoolOpOr UnaryOpNot Call NameLoad NameLoad NameLoad CompareNotEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return NameLoad Return Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Return UnaryOpNot CompareEq NameLoad NameLoad decorator_list decorator_list ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Call AttributeLoad NameLoad attr NameLoad NameLoad Assign AttributeStore NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Return Call AttributeLoad AttributeLoad NameLoad attr attr ListLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body If UnaryOpNot Call NameLoad NameLoad NameLoad body Raise NameLoad Return Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam defaults body If UnaryOpNot Call NameLoad NameLoad NameLoad body Raise NameLoad Return Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam defaults kwarg body If UnaryOpNot Call NameLoad NameLoad NameLoad body Raise NameLoad Return Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body If UnaryOpNot Call NameLoad NameLoad NameLoad body Raise NameLoad Return Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Expr Str Return GeneratorExp SubscriptLoad NameLoad Index Num comprehension NameStore AttributeLoad AttributeLoad NameLoad attr attr decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Return Call AttributeLoad AttributeLoad NameLoad attr attr decorator_list FunctionDef arguments args NameParam defaults body Expr Str Return Call AttributeLoad AttributeLoad NameLoad attr attr decorator_list FunctionDef arguments args NameParam defaults body ImportFrom alias Return BinOpAdd BinOpAdd Str Call AttributeLoad Str attr GeneratorExp Call NameLoad NameLoad comprehension ListStore NameStore AttributeLoad AttributeLoad NameLoad attr attr Str decorator_list FunctionDef arguments args NameParam NameParam defaults body If UnaryOpNot Call NameLoad NameLoad NameLoad body Raise NameLoad Return Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr ListComp ListLoad BinOpMult NameLoad NameLoad comprehension ListStore NameStore AttributeLoad AttributeLoad NameLoad attr attr comprehension ListStore NameStore AttributeLoad AttributeLoad NameLoad attr attr decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Return Call AttributeLoad AttributeLoad NameLoad attr attr ListLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults kwarg body Return SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr ListLoad NameLoad NameLoad Index Num decorator_list decorator_list
N/A N/A Computations with ideals of polynomial rings. __future__ print_function division sympy.polys.polyerrors CoercionFailed sympy.core.compatibility reduce Ideal N/A object N/A N/A 
    Abstract base class for ideals.

    Do not instantiate - use explicit constructors in the ring class instead:

    >>> from sympy import QQ
    >>> from sympy.abc import x
    >>> QQ.old_poly_ring(x).ideal(x+1)
    <x + 1>

    Attributes

    - ring - the ring this ideal belongs to

    Non-implemented methods:

    - _contains_elem
    - _contains_ideal
    - _quotient
    - _intersect
    - _union
    - _product
    - is_whole_ring
    - is_zero
    - is_prime, is_maximal, is_primary, is_radical
    - is_principal
    - height, depth
    - radical

    Methods that likely should be overridden in subclasses:

    - reduce_element
     _contains_elem N/A N/A self x N/A N/A N/A Implementation of element containment. N/A NotImplementedError N/A _contains_ideal N/A N/A self I N/A N/A N/A Implementation of ideal containment. N/A NotImplementedError N/A _quotient N/A N/A self J N/A N/A N/A Implementation of ideal quotient. N/A NotImplementedError N/A _intersect N/A N/A self J N/A N/A N/A Implementation of ideal intersection. N/A NotImplementedError N/A is_whole_ring N/A N/A self N/A N/A N/A Return True if ``self`` is the whole ring. N/A NotImplementedError N/A is_zero N/A N/A self N/A N/A N/A Return True if ``self`` is the zero ideal. N/A NotImplementedError N/A _equals N/A N/A self J N/A N/A N/A Implementation of ideal equality. N/A N/A N/A N/A self _contains_ideal J N/A N/A J _contains_ideal self N/A is_prime N/A N/A self N/A N/A N/A Return True if ``self`` is a prime ideal. N/A NotImplementedError N/A is_maximal N/A N/A self N/A N/A N/A Return True if ``self`` is a maximal ideal. N/A NotImplementedError N/A is_radical N/A N/A self N/A N/A N/A Return True if ``self`` is a radical ideal. N/A NotImplementedError N/A is_primary N/A N/A self N/A N/A N/A Return True if ``self`` is a primary ideal. N/A NotImplementedError N/A is_principal N/A N/A self N/A N/A N/A Return True if ``self`` is a principal ideal. N/A NotImplementedError N/A radical N/A N/A self N/A N/A N/A Compute the radical of ``self``. N/A NotImplementedError N/A depth N/A N/A self N/A N/A N/A Compute the depth of ``self``. N/A NotImplementedError N/A height N/A N/A self N/A N/A N/A Compute the height of ``self``. N/A NotImplementedError N/A __init__ N/A N/A self ring N/A N/A N/A N/A self ring ring N/A _check_ideal N/A N/A self J N/A N/A N/A Helper to check ``J`` is an ideal of our ring. N/A N/A N/A N/A isinstance J Ideal N/A N/A J ring N/A self ring N/A N/A N/A ValueError N/A J must be an ideal of %s, got %s N/A N/A self ring J N/A contains N/A N/A self elem N/A N/A N/A 
        Return True if ``elem`` is an element of this ideal.

        >>> from sympy.abc import x
        >>> from sympy import QQ
        >>> QQ.old_poly_ring(x).ideal(x+1, x-1).contains(3)
        True
        >>> QQ.old_poly_ring(x).ideal(x**2, x**3).contains(x)
        False
         N/A N/A N/A self _contains_elem N/A N/A N/A self ring convert elem N/A subset N/A N/A self other N/A N/A N/A 
        Returns True if ``other`` is is a subset of ``self``.

        Here ``other`` may be an ideal.

        >>> from sympy.abc import x
        >>> from sympy import QQ
        >>> I = QQ.old_poly_ring(x).ideal(x+1)
        >>> I.subset([x**2 - 1, x**2 + 2*x + 1])
        True
        >>> I.subset([x**2 + 1, x + 1])
        False
        >>> I.subset(QQ.old_poly_ring(x).ideal(x**2 - 1))
        True
         N/A N/A isinstance other Ideal N/A N/A N/A N/A self _contains_ideal other N/A N/A all N/A N/A N/A self _contains_elem x N/A x other N/A quotient N/A N/A self J N/A opts N/A N/A 
        Compute the ideal quotient of ``self`` by ``J``.

        That is, if ``self`` is the ideal `I`, compute the set
        `I : J = \{x \in R | xJ \subset I \}`.

        >>> from sympy.abc import x, y
        >>> from sympy import QQ
        >>> R = QQ.old_poly_ring(x, y)
        >>> R.ideal(x*y).quotient(R.ideal(x))
        <y>
         N/A N/A N/A self _check_ideal J N/A N/A N/A self _quotient J opts N/A intersect N/A N/A self J N/A N/A N/A 
        Compute the intersection of self with ideal J.

        >>> from sympy.abc import x, y
        >>> from sympy import QQ
        >>> R = QQ.old_poly_ring(x, y)
        >>> R.ideal(x).intersect(R.ideal(y))
        <x*y>
         N/A N/A N/A self _check_ideal J N/A N/A N/A self _intersect J N/A saturate N/A N/A self J N/A N/A N/A 
        Compute the ideal saturation of ``self`` by ``J``.

        That is, if ``self`` is the ideal `I`, compute the set
        `I : J^\infty = \{x \in R | xJ^n \subset I \text{ for some } n\}`.
         N/A NotImplementedError N/A union N/A N/A self J N/A N/A N/A 
        Compute the ideal generated by the union of ``self`` and ``J``.

        >>> from sympy.abc import x
        >>> from sympy import QQ
        >>> QQ.old_poly_ring(x).ideal(x**2 - 1).union(QQ.old_poly_ring(x).ideal((x+1)**2)) == QQ.old_poly_ring(x).ideal(x+1)
        True
         N/A N/A N/A self _check_ideal J N/A N/A N/A self _union J N/A product N/A N/A self J N/A N/A N/A 
        Compute the ideal product of ``self`` and ``J``.

        That is, compute the ideal generated by products `xy`, for `x` an element
        of ``self`` and `y \in J`.

        >>> from sympy.abc import x, y
        >>> from sympy import QQ
        >>> QQ.old_poly_ring(x, y).ideal(x).product(QQ.old_poly_ring(x, y).ideal(y))
        <x*y>
         N/A N/A N/A self _check_ideal J N/A N/A N/A self _product J N/A reduce_element N/A N/A self x N/A N/A N/A 
        Reduce the element ``x`` of our ring modulo the ideal ``self``.

        Here "reduce" has no specific meaning: it could return a unique normal
        form, simplify the expression a bit, or just do nothing.
         N/A x N/A __add__ N/A N/A self e N/A N/A N/A N/A N/A isinstance e Ideal N/A N/A R N/A N/A N/A self ring quotient_ring self N/A N/A isinstance e N/A R dtype N/A N/A e N/A N/A isinstance e N/A N/A R ring dtype N/A N/A N/A R e N/A N/A N/A R convert e N/A N/A N/A self _check_ideal e N/A N/A N/A self union e N/A N/A __radd__ __add__ __mul__ N/A N/A self e N/A N/A N/A N/A N/A isinstance e Ideal N/A N/A N/A N/A e N/A N/A N/A self ring ideal e N/A N/A N/A CoercionFailed N/A N/A NotImplemented N/A N/A N/A self _check_ideal e N/A N/A N/A self product e N/A N/A __rmul__ __mul__ __pow__ N/A N/A self exp N/A N/A N/A N/A exp 0 N/A N/A NotImplementedError N/A N/A reduce N/A N/A N/A x y N/A N/A x y N/A N/A self exp N/A N/A N/A self ring ideal 1 N/A __eq__ N/A N/A self e N/A N/A N/A N/A N/A N/A isinstance e Ideal N/A N/A e ring N/A self ring N/A N/A False N/A N/A N/A self _equals e N/A __ne__ N/A N/A self e N/A N/A N/A N/A N/A self e N/A N/A ModuleImplementedIdeal N/A Ideal N/A N/A 
    Ideal implementation relying on the modules code.

    Attributes:

    - _module - the underlying module
     __init__ N/A N/A self ring module N/A N/A N/A N/A N/A Ideal __init__ self ring N/A N/A self _module module N/A _contains_elem N/A N/A self x N/A N/A N/A N/A N/A N/A self _module contains N/A x N/A _contains_ideal N/A N/A self J N/A N/A N/A N/A N/A isinstance J ModuleImplementedIdeal N/A N/A NotImplementedError N/A N/A N/A N/A self _module is_submodule N/A J _module N/A _intersect N/A N/A self J N/A N/A N/A N/A N/A isinstance J ModuleImplementedIdeal N/A N/A NotImplementedError N/A N/A N/A self __class__ N/A self ring N/A N/A N/A self _module intersect N/A J _module N/A _quotient N/A N/A self J N/A opts N/A N/A N/A N/A isinstance J ModuleImplementedIdeal N/A N/A NotImplementedError N/A N/A N/A N/A self _module module_quotient N/A J _module opts N/A _union N/A N/A self J N/A N/A N/A N/A N/A isinstance J ModuleImplementedIdeal N/A N/A NotImplementedError N/A N/A N/A self __class__ N/A self ring N/A N/A N/A self _module union N/A J _module N/A gens N/A N/A self N/A N/A N/A 
        Return generators for ``self``.

        >>> from sympy import QQ
        >>> from sympy.abc import x, y
        >>> list(QQ.old_poly_ring(x, y).ideal(x, y, x**2 + y).gens)
        [x, y, x**2 + y]
         N/A N/A N/A x N/A 0 N/A x N/A N/A self _module gens N/A property is_zero N/A N/A self N/A N/A N/A 
        Return True if ``self`` is the zero ideal.

        >>> from sympy.abc import x
        >>> from sympy import QQ
        >>> QQ.old_poly_ring(x).ideal(x).is_zero()
        False
        >>> QQ.old_poly_ring(x).ideal().is_zero()
        True
         N/A N/A N/A N/A self _module is_zero N/A is_whole_ring N/A N/A self N/A N/A N/A 
        Return True if ``self`` is the whole ring, i.e. one generator is a unit.

        >>> from sympy.abc import x
        >>> from sympy import QQ, ilex
        >>> QQ.old_poly_ring(x).ideal(x).is_whole_ring()
        False
        >>> QQ.old_poly_ring(x).ideal(3).is_whole_ring()
        True
        >>> QQ.old_poly_ring(x, order=ilex).ideal(2 + x).is_whole_ring()
        True
         N/A N/A N/A N/A self _module is_full_module N/A __repr__ N/A N/A self N/A N/A sympy sstr N/A N/A N/A < N/A N/A , join N/A N/A sstr x N/A N/A x N/A N/A self _module gens > N/A _product N/A N/A self J N/A N/A N/A N/A N/A isinstance J ModuleImplementedIdeal N/A N/A NotImplementedError N/A N/A N/A self __class__ N/A self ring N/A N/A N/A self _module submodule N/A N/A N/A x y N/A N/A x N/A N/A self _module gens N/A N/A y N/A N/A J _module gens N/A in_terms_of_generators N/A N/A self e N/A N/A N/A 
        Express ``e`` in terms of the generators of ``self``.

        >>> from sympy.abc import x
        >>> from sympy import QQ
        >>> I = QQ.old_poly_ring(x).ideal(x**2 + 1, x)
        >>> I.in_terms_of_generators(1)
        [1, -x]
         N/A N/A N/A N/A self _module in_terms_of_generators N/A e N/A reduce_element N/A N/A self x N/A options N/A N/A N/A N/A N/A N/A self _module reduce_element N/A x options N/A 0 N/A N/A