class_docstr: Finite extension generated by an integral element.
  
  The generator is defined by a monic univariate
  polynomial derived from the argument ``mod``.
  
  A shorter alias is ``FiniteExtension``.
  
  Examples
  ========
  
  Quadratic integer ring $\mathbb{Z}[\sqrt2]$:
  
  >>> from sympy import Symbol, Poly
  >>> from sympy.polys.agca.extensions import FiniteExtension
  >>> x = Symbol('x')
  >>> R = FiniteExtension(Poly(x**2 - 2)); R
  ZZ[x]/(x**2 - 2)
  >>> R.rank
  2
  >>> R(1 + x)*(3 - 2*x)
  x - 1
  
  Finite field $GF(5^3)$ defined by the primitive
  polynomial $x^3 + x^2 + 2$ (over $\mathbb{Z}_5$).
  
  >>> F = FiniteExtension(Poly(x**3 + x**2 + 2, modulus=5)); F
  GF(5)[x]/(x**3 + x**2 + 2)
  >>> F.basis
  (1, x, x**2)
  >>> F(x + 3)/(x**2 + 2)
  -2*x**2 + x + 2
  
  Function field of an elliptic curve:
  
  >>> t = Symbol('t')
  >>> FiniteExtension(Poly(t**2 - x**3 - x + 1, t, field=True))
  ZZ(x)[t]/(t**2 - x**3 - x + 1)
class_docstr_tok: ["Finite","extension","generated","by","an","integral","element",".","The","generator","is","defined","by","a","monic","univariate","polynomial","derived","from","the","argument","``","mod","``",".","A","shorter","alias","is","``","FiniteExtension","``",".","Examples","========","Quadratic","integer","ring","$","\\mathbb","{","Z","}","[","\\sqrt2","]","$",":",">",">",">","from","sympy","import","Symbol",",","Poly",">",">",">","from","sympy.polys.agca.extensions","import","FiniteExtension",">",">",">","x","=","Symbol","(","'","x","'",")",">",">",">","R","=","FiniteExtension","(","Poly","(","x","*","*","2","-","2",")",")",";","R","ZZ","[","x","]","\/","(","x","*","*","2","-","2",")",">",">",">","R.rank","2",">",">",">","R","(","1","+","x",")","*","(","3","-","2","*","x",")","x","-","1","Finite","field","$","GF","(","5^3",")","$","defined","by","the","primitive","polynomial","$","x^3","+","x^2","+","2","$","(","over","$","\\mathbb","{","Z","}","_5","$",")",".",">",">",">","F","=","FiniteExtension","(","Poly","(","x","*","*","3","+","x","*","*","2","+","2",",","modulus=5",")",")",";","F","GF","(","5",")","[","x","]","\/","(","x","*","*","3","+","x","*","*","2","+","2",")",">",">",">","F.basis","(","1",",","x",",","x","*","*","2",")",">",">",">","F","(","x","+","3",")","\/","(","x","*","*","2","+","2",")","-2","*","x","*","*","2","+","x","+","2","Function","field","of","an","elliptic","curve",":",">",">",">","t","=","Symbol","(","'t","'",")",">",">",">","FiniteExtension","(","Poly","(","t","*","*","2","-","x","*","*","3","-","x","+","1",",","t",",","field=True",")",")","ZZ","(","x",")","[","t","]","\/","(","t","*","*","2","-","x","*","*","3","-","x","+","1",")"]
code: def is_negative(self, a):
      return False
  
imports: from sympy.polys.domains.domain import Domain
  from sympy.polys.domains.domainelement import DomainElement
  from sympy.polys.polyerrors import CoercionFailed, NotInvertible, GeneratorsError
  from sympy.polys.polytools import Poly
  from sympy.printing.defaults import DefaultPrinting
label_desc: Use image node_id 16 for calling the MonogenicFiniteExtension obj's underlying member method code with example usage: obj.is_negative(a) and returns: False