6.12.1.3 PolynomialQuotientRing_generic Objects

class PolynomialQuotientRing_generic
Quotient of univariate polynomial ring.
PolynomialQuotientRing_generic( ring, polynomial, [name=None])

Instances of class PolynomialQuotientRing_generic have the following methods (in addition to inherited methods and special methods):

base_ring,$  $ characteristic,$  $ degree,$  $ discriminant,$  $ gen,$  $ is_field,$  $ krull_dimension,$  $ modulus,$  $ ngens,$  $ number_field,$  $ polynomial_ring

Further documentation:

base_ring( )

Return the base base ring of the polynomial ring, of which this ring is a quotient.

The base ring of $ \mathbf{Z}[z]/(z^3 + z^2 + z + 1)$ is $ \mathbf{Z}$ .

sage: R = PolynomialRing(IntegerRing(), 'z'); z = R.gen()
sage: S = R.quotient(z**3 + z**2 + z + 1, 'beta')
sage: S.base_ring()
Integer Ring

Next we make a polynomial quotient ring over $ S$ and ask for its basering.

sage: T = PolynomialRing(S); W = T.quotient(T.gen()**99 + 99)
sage: W.base_ring()
Univariate Quotient Polynomial Ring in beta over Integer Ring with modulus
z^3 + z^2 + z + 1

characteristic( )

Return the characteristic of this quotient ring.

This is always the same as the characteristic of the base ring.

sage: R = PolynomialRing(IntegerRing(), 'z'); z = R.gen()
sage: S = R.quotient(z - 19, 'a')
sage: S.characteristic()
0
sage: R = PolynomialRing(GF(9), 'x'); x = R.gen()
sage: S = R.quotient(x**3 + 1)
sage: S.characteristic()
3

degree( )

Return the degree of this quotient ring. The degree is the degree of the polynomial that we quotiented out by.

sage: R = PolynomialRing(GF(3), 'x'); x = R.gen()
sage: S = R.quotient(x**2005 + 1)
sage: S.degree()
2005

discriminant( [v=None])

Return the discriminant of this ring over the base ring. This is by definition the discriminant of the polynomial that we quotiented out by.

sage: R = PolynomialRing(RationalField(), 'x'); x = R.gen()
sage: S = R.quotient(x**3 + x**2 + x + 1)
sage: S.discriminant()
-16
sage: S = R.quotient((x + 1) * (x + 1))
sage: S.discriminant()
0

The discriminant of the quotient polynomial ring need not equal the discriminant of the corresponding number field, since the discriminant of a number field is by definition the discriminant of the ring ring of integers of the number field:

sage: S = R.quotient(x**2 - 8)
sage: S.number_field().discriminant()
8
sage: S.discriminant()
32

gen( [n=0])

Return the generator of this quotient ring. This is the equivalence class of the image of the generator of the polynomial ring.

sage: R = PolynomialRing(RationalField(), 'x'); x = R.gen()
sage: S = R.quotient(x**2 - 8, 'gamma')
sage: S.gen()
gamma

is_field( )

Return whether or not this quotient ring is a field.

sage: R = PolynomialRing(IntegerRing(), 'z'); z = R.gen()
sage: S = R.quotient(z**2-2)
sage: S.is_field()
False
sage: R = PolynomialRing(RationalField(), 'x'); x = R.gen()
sage: S = R.quotient(x**2 - 2)
sage: S.is_field()
True

modulus( )

Return the polynomial modulus of this quotient ring.

sage: R = PolynomialRing(GF(3), 'x'); x = R.gen()
sage: S = R.quotient(x**2 - 2)
sage: S.modulus()
x^2 + 1

ngens( )

Return the number of generators of this quotient ring over the base ring. This function always returns 1.

sage: R = PolynomialRing(RationalField(), 'x'); x = R.gen()
sage: S = PolynomialRing(R, 'y'); y = S.gen()
sage: T = S.quotient(y + x, 'z')
sage: T
Univariate Quotient Polynomial Ring in z over Univariate Polynomial Ring in
x over Rational Field with modulus y + x
sage: T.ngens()
1

number_field( )

Return the number field isomorphic to this quotient polynomial ring, if possible.

sage: R = PolynomialRing(RationalField(), 'x'); x = R.gen()
sage: S = R.quotient(x**29-17*x-1, 'alpha')
sage: K = S.number_field()
sage: K
Number Field in alpha with defining polynomial x^29 - 17*x - 1
sage: alpha = K.gen()
sage: alpha**29
17*alpha + 1

polynomial_ring( )

Return the polynomial ring of which this ring is the quotient.

sage: R = PolynomialRing(RationalField(), 'x'); x = R.gen()
sage: S = R.quotient(x**2-2)
sage: S.polynomial_ring()
Univariate Polynomial Ring in x over Rational Field

Instances of class PolynomialQuotientRing_generic also have the following special methods:

__call__,$  $ __cmp__,$  $ __repr__,$  $ _coerce_

Further documentation:

__call__( x)

Coerce x into this quotient ring. Anything that can be coerced into the polynomial ring can be coerced into the quotient.

INPUT:
    x -- object to be coerced

OUTPUT:
    an element obtained by coercing x into this ring.

sage: R = PolynomialRing(RationalField(), 'x'); x = R.gen()
sage: S = R.quotient(x**3-3*x+1, 'alpha')
sage: S(x)
alpha
sage: S(x**3)
3*alpha - 1
sage: S([1,2])
2*alpha + 1
sage: S([1,2,3,4,5])
18*alpha^2 + 9*alpha - 3
sage: S(S.gen()+1)
alpha + 1
sage: S(S.gen()**10+1)
90*alpha^2 - 109*alpha + 28

__cmp__( other)

Compare self and other.

sage: Rx = PolynomialRing(RationalField(), 'x'); x = Rx.gen()
sage: Ry = PolynomialRing(RationalField(), 'y'); y = Ry.gen()
sage: Rx == Ry
False
sage: Qx = Rx.quotient(x**2+1)
sage: Qy = Ry.quotient(y**2+1)
sage: Qx == Qy
False
sage: Qx == Qx
True
sage: Qz = Rx.quotient(x**2+1)
sage: Qz == Qx
True

See About this document... for information on suggesting changes.