Ideals in Univariate Polynomial Rings

AUTHORS:

  • David Roe (2009-12-14) – initial version.

class sage.rings.polynomial.ideal.Ideal_1poly_field(ring, gens, coerce=True, **kwds)[source]

Bases: Ideal_pid

An ideal in a univariate polynomial ring over a field.

change_ring(R)[source]

Coerce an ideal into a new ring.

EXAMPLES:

sage: R.<q> = QQ[]
sage: I = R.ideal([q^2 + q - 1])
sage: I.change_ring(RR['q'])                                                # needs sage.rings.real_mpfr
Principal ideal (q^2 + q - 1.00000000000000) of
 Univariate Polynomial Ring in q over Real Field with 53 bits of precision
>>> from sage.all import *
>>> R = QQ['q']; (q,) = R._first_ngens(1)
>>> I = R.ideal([q**Integer(2) + q - Integer(1)])
>>> I.change_ring(RR['q'])                                                # needs sage.rings.real_mpfr
Principal ideal (q^2 + q - 1.00000000000000) of
 Univariate Polynomial Ring in q over Real Field with 53 bits of precision
R.<q> = QQ[]
I = R.ideal([q^2 + q - 1])
I.change_ring(RR['q'])                                                # needs sage.rings.real_mpfr
groebner_basis(algorithm=None)[source]

Return a Gröbner basis for this ideal.

The Gröbner basis has 1 element, namely the generator of the ideal. This trivial method exists for compatibility with multi-variate polynomial rings.

INPUT:

  • algorithm – ignored

EXAMPLES:

sage: R.<x> = QQ[]
sage: I = R.ideal([x^2 - 1, x^3 - 1])
sage: G = I.groebner_basis(); G
[x - 1]
sage: type(G)
<class 'sage.rings.polynomial.multi_polynomial_sequence.PolynomialSequence_generic'>
sage: list(G)
[x - 1]
>>> from sage.all import *
>>> R = QQ['x']; (x,) = R._first_ngens(1)
>>> I = R.ideal([x**Integer(2) - Integer(1), x**Integer(3) - Integer(1)])
>>> G = I.groebner_basis(); G
[x - 1]
>>> type(G)
<class 'sage.rings.polynomial.multi_polynomial_sequence.PolynomialSequence_generic'>
>>> list(G)
[x - 1]
R.<x> = QQ[]
I = R.ideal([x^2 - 1, x^3 - 1])
G = I.groebner_basis(); G
type(G)
list(G)
residue_class_degree()[source]

Return the degree of the generator of this ideal.

This function is included for compatibility with ideals in rings of integers of number fields.

EXAMPLES:

sage: R.<t> = GF(5)[]
sage: P = R.ideal(t^4 + t + 1)
sage: P.residue_class_degree()
4
>>> from sage.all import *
>>> R = GF(Integer(5))['t']; (t,) = R._first_ngens(1)
>>> P = R.ideal(t**Integer(4) + t + Integer(1))
>>> P.residue_class_degree()
4
R.<t> = GF(5)[]
P = R.ideal(t^4 + t + 1)
P.residue_class_degree()
residue_field(names=None, check=True)[source]

If this ideal is \(P \subset F_p[t]\), return the quotient \(F_p[t]/P\).

EXAMPLES:

sage: R.<t> = GF(17)[]; P = R.ideal(t^3 + 2*t + 9)
sage: k.<a> = P.residue_field(); k                                          # needs sage.rings.finite_rings
Residue field in a of Principal ideal (t^3 + 2*t + 9) of
 Univariate Polynomial Ring in t over Finite Field of size 17
>>> from sage.all import *
>>> R = GF(Integer(17))['t']; (t,) = R._first_ngens(1); P = R.ideal(t**Integer(3) + Integer(2)*t + Integer(9))
>>> k = P.residue_field(names=('a',)); (a,) = k._first_ngens(1); k                                          # needs sage.rings.finite_rings
Residue field in a of Principal ideal (t^3 + 2*t + 9) of
 Univariate Polynomial Ring in t over Finite Field of size 17
R.<t> = GF(17)[]; P = R.ideal(t^3 + 2*t + 9)
k.<a> = P.residue_field(); k                                          # needs sage.rings.finite_rings