# Revision history [back]

It seems that in the second case, the .reduce() method is the generic one which is just:

def reduce(self, f):
r"""
Return the reduction of the element of f modulo self.

This is an element of R that is equivalent modulo I to f where
I is self.

EXAMPLES::

sage: ZZ.ideal(5).reduce(17)
2
sage: parent(ZZ.ideal(5).reduce(17))
Integer Ring
"""
return f       # default


If you want a better reduction in this case, you can put the polynomial in the quotient and lift it:

sage: R.<x>=PolynomialRing(ZZ)
sage: I = R.ideal(x^4)
sage: R.quotient(I)(x^8+1).lift()
1


It seems that in the second case, the .reduce() method is the generic one which is just:

def reduce(self, f):
r"""
Return the reduction of the element of f modulo self.

This is an element of R that is equivalent modulo I to f where
I is self.

EXAMPLES::

sage: ZZ.ideal(5).reduce(17)
2
sage: parent(ZZ.ideal(5).reduce(17))
Integer Ring
"""
return f       # default


If you want a better reduction in this particular case, you can put the polynomial in the quotient and lift it:

sage: R.<x>=PolynomialRing(ZZ)
sage: I = R.ideal(x^4)
sage: R.quotient(I)(x^8+1).lift()
1