# Revision history [back]

I think the following is self-explanatory:

sage: Z_4 = IntegerModRing(4)
sage: Z_4
Ring of integers modulo 4
sage: P.<x> = PolynomialRing(Z_4)
sage: P
Univariate Polynomial Ring in x over Ring of integers modulo 4
sage: I = P.ideal(x^4+1, 2+2*x)
sage: I
Ideal (x^4 + 1, 2*x + 2) of Univariate Polynomial Ring in x over Ring of integers modulo 4
sage: R = P.quotient(I)
sage: R
Quotient of Univariate Polynomial Ring in x over Ring of integers modulo 4 by the ideal (x^4 + 1, 2*x + 2)


I think the following is self-explanatory:

sage: Z_4 = IntegerModRing(4)
sage: Z_4
Ring of integers modulo 4
sage: P.<x> = PolynomialRing(Z_4)
sage: P
Univariate Polynomial Ring in x over Ring of integers modulo 4
sage: I = P.ideal(x^4+1, 2+2*x)
sage: I
Ideal (x^4 + 1, 2*x + 2) of Univariate Polynomial Ring in x over Ring of integers modulo 4
sage: R = P.quotient(I)
sage: R
Quotient of Univariate Polynomial Ring in x over Ring of integers modulo 4 by the ideal (x^4 + 1, 2*x + 2)


The problem afterwards is that Sage is does not know much things about R, for example, even if R is finite, you can not iterate over it:

sage: R.list()
NotImplementedError: object does not support iteration


It does not even knows that R is finite:

sage: R.is_finite()
NotImplementedError:


I think the following is self-explanatory:

sage: Z_4 = IntegerModRing(4)
sage: Z_4
Ring of integers modulo 4
sage: P.<x> = PolynomialRing(Z_4)
sage: P
Univariate Polynomial Ring in x over Ring of integers modulo 4
sage: I = P.ideal(x^4+1, 2+2*x)
sage: I
Ideal (x^4 + 1, 2*x + 2) of Univariate Polynomial Ring in x over Ring of integers modulo 4
sage: R = P.quotient(I)
sage: R
Quotient of Univariate Polynomial Ring in x over Ring of integers modulo 4 by the ideal (x^4 + 1, 2*x + 2)


The problem afterwards is that Sage is does not know much things about R, for example, even if R is finite, you can not iterate over it:

sage: R.list()
NotImplementedError: object does not support iteration


It does not even knows that R is finite:

sage: R.is_finite()
NotImplementedError:


I think the following is self-explanatory:

sage: Z_4 = IntegerModRing(4)
sage: Z_4
Ring of integers modulo 4
sage: P.<x> = PolynomialRing(Z_4)
sage: P
Univariate Polynomial Ring in x over Ring of integers modulo 4
sage: I = P.ideal(x^4+1, 2+2*x)
sage: I
Ideal (x^4 + 1, 2*x + 2) of Univariate Polynomial Ring in x over Ring of integers modulo 4
sage: R = P.quotient(I)
sage: R
Quotient of Univariate Polynomial Ring in x over Ring of integers modulo 4 by the ideal (x^4 + 1, 2*x + 2)


The problem afterwards is that Sage is does not know much things about R, for example, even if R is finite, you can not iterate over it:

sage: R.list()
NotImplementedError: object does not support iteration


It does not even knows that R is finite:

sage: R.is_finite()
NotImplementedError:


Nor whether some elements are units:

sage: a = R.an_element()
sage: a
xbar
sage: a.is_unit()
NotImplementedError:


I think the following is self-explanatory:

sage: Z_4 = IntegerModRing(4)
sage: Z_4
Ring of integers modulo 4
sage: P.<x> = PolynomialRing(Z_4)
sage: P
Univariate Polynomial Ring in x over Ring of integers modulo 4
sage: I = P.ideal(x^4+1, 2+2*x)
sage: I
Ideal (x^4 + 1, 2*x + 2) of Univariate Polynomial Ring in x over Ring of integers modulo 4
sage: R = P.quotient(I)
sage: R
Quotient of Univariate Polynomial Ring in x over Ring of integers modulo 4 by the ideal (x^4 + 1, 2*x + 2)


The problem afterwards is that Sage is does not know much things about R, for example, even if R is finite, you can not iterate over it:

sage: R.list()
NotImplementedError: object does not support iteration


It does not even knows that R is finite:

sage: R.is_finite()
NotImplementedError:


Nor whether some elements are units:

sage: a = R.an_element()
sage: a
xbar
sage: a.is_unit()
NotImplementedError:


But you are welcome to join and help fill to the gap !

I think the following is self-explanatory:

sage: Z_4 = IntegerModRing(4)
sage: Z_4
Ring of integers modulo 4
sage: P.<x> = PolynomialRing(Z_4)
sage: P
Univariate Polynomial Ring in x over Ring of integers modulo 4
sage: I = P.ideal(x^4+1, 2+2*x)
sage: I
Ideal (x^4 + 1, 2*x + 2) of Univariate Polynomial Ring in x over Ring of integers modulo 4
sage: R = P.quotient(I)
sage: R
Quotient of Univariate Polynomial Ring in x over Ring of integers modulo 4 by the ideal (x^4 + 1, 2*x + 2)


The problem afterwards is that Sage is does not know much about R, for example, even if R is finite, you can not iterate over it:

sage: R.list()
NotImplementedError: object does not support iteration


It does not even knows that R is finite:

sage: R.is_finite()
NotImplementedError:


Nor whether some elements are units:

sage: a = R.an_element()
sage: a
xbar
sage: a.is_unit()
NotImplementedError:


But you are welcome to join and help fill to the gap !

EDIT What makes me fear however is the following:

sage: 2*xbar+2 == 0
False
sage: (2*xbar+2 ).is_zero()
NotImplementedError:


We should definitely prevent Sage answering random things when it does not know.