class_docstr: 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
class_docstr_tok: ["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"]
docstr: Returns True if ``other`` is is a subset of ``self``.
  
  Here ``other`` may be an ideal.
  
  Examples
  ========
  
  >>> 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
docstr_tok: ["Returns","True","if","``","other","``","is","is","a","subset","of","``","self","``",".","Here","``","other","``","may","be","an","ideal",".","Examples","========",">",">",">","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"]
code: def subset(self, other):
      """
      Returns True if ``other`` is is a subset of ``self``.
  
      Here ``other`` may be an ideal.
  
      Examples
      ========
  
      >>> 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
      """
      if isinstance(other, Ideal):
          return self._contains_ideal(other)
      return all(self._contains_elem(x) for x in other)
  
imports: from sympy.polys.polyerrors import CoercionFailed
  from sympy.polys.polyutils import IntegerPowerable
label_desc: Use image node_id 19 for calling the Ideal obj's underlying member method code with example usage: obj.subset(other) and returns: all, self