class_docstr: Class representing (commutative) quotient rings.
  
  You should not usually instantiate this by hand, instead use the constructor
  from the base ring in the construction.
  
  >>> from sympy.abc import x
  >>> from sympy import QQ
  >>> I = QQ.old_poly_ring(x).ideal(x**3 + 1)
  >>> QQ.old_poly_ring(x).quotient_ring(I)
  QQ[x]/<x**3 + 1>
  
  Shorter versions are possible:
  
  >>> QQ.old_poly_ring(x)/I
  QQ[x]/<x**3 + 1>
  
  >>> QQ.old_poly_ring(x)/[x**3 + 1]
  QQ[x]/<x**3 + 1>
  
  Attributes:
  
  - ring - the base ring
  - base_ideal - the ideal used to form the quotient
class_docstr_tok: ["Class","representing","(","commutative",")","quotient","rings",".","You","should","not","usually","instantiate","this","by","hand",",","instead","use","the","constructor","from","the","base","ring","in","the","construction",".",">",">",">","from","sympy.abc","import","x",">",">",">","from","sympy","import","QQ",">",">",">","I","=","QQ.old_poly_ring","(","x",")",".ideal","(","x","*","*","3","+","1",")",">",">",">","QQ.old_poly_ring","(","x",")",".quotient_ring","(","I",")","QQ","[","x","]","\/","<","x","*","*","3","+","1",">","Shorter","versions","are","possible",":",">",">",">","QQ.old_poly_ring","(","x",")","\/I","QQ","[","x","]","\/","<","x","*","*","3","+","1",">",">",">",">","QQ.old_poly_ring","(","x",")","\/","[","x","*","*","3","+","1","]","QQ","[","x","]","\/","<","x","*","*","3","+","1",">","Attributes",":","-","ring","-","the","base","ring","-","base_ideal","-","the","ideal","used","to","form","the","quotient"]
docstr: Returns a polynomial ring, i.e. ``K[X]``. 
docstr_tok: ["Returns","a","polynomial","ring",",","i.e",".","``","K","[","X","]","``","."]
code: def poly_ring(self, *gens):
      """Returns a polynomial ring, i.e. ``K[X]``."""
      raise NotImplementedError("nested domains not allowed")
  
imports: from sympy.polys.agca.modules import FreeModuleQuotientRing
  from sympy.polys.domains.ring import Ring
  from sympy.polys.polyerrors import NotReversible, CoercionFailed
  from sympy.utilities import public
label_desc: Use image node_id 10 for calling the QuotientRing obj's underlying member method code with example usage: obj.poly_ring() without return types