Ideals and Quotient Rings

The following entries describe the operations on ideals in a commutative ring \(R\). Certain operations on left and right ideals in non-commutative rings will be described in the Chapters for the corresponding rings.

Defining Ideals and Quotient Rings

ideal< R | a₁, ..., aᵣ >: Rng, RngElt, ..., RngElt -> RngIdl

Given a ring \(R\) and elements \(a_1, \ldots, a_r\) of \(R\), create the ideal \(I\) of \(R\) generated by \(a_1, \ldots, a_r\).

quo< R | aᵣ, ..., aᵣ >: Rng, RngElt, ..., RngElt -> Rng

Given a ring \(R\) and elements \(a_1, \ldots, a_r\) of \(R\), construct the quotient ring \(Q = R/I\), where \(I\) is the ideal of \(R\) generated by \(a_1, \ldots, a_r\).

R / I: Rng, RngIdl -> Rng

Given a ring \(R\) and an ideal \(I\) of \(R\), construct the quotient ring \(Q = R/I\), as well as the canonical map \(R\rightarrow R/I\).

Note, however, that there can be pitfalls with this, particularly if the first argument is itself interpreted as an ideal, when instead the result could be interpreted as something like the ColonIdeal.

For instance:

> Z := Integers();
> I := ideal<Z|1>; // ideal of Z
> Z/I; // ideal quotient, similar to ColonIdeal
Integer Ring
> quo<Z|I>; // quotient of ring by ideal
Residue class ring of integers modulo 1

In fact, \({\mathbb{Z}}/I\) is computing the (fractional) ideal \(J\) such that \(JI={\mathbb{Z}}\). The technical reason for this is that both \({\mathbb{Z}}\) and \(I\) are of type RngInt, and there is no specific RngIntIdl type as with order of number fields (where there are RngOrd and RngOrdIdl).

On the other hand, for instance for univariate polynomial rings where again there is no specific type for ideals, the / operator acts as the ring/ideal quotient (while ColonIdeal does not exist for this type, though it does for the multivariate polynomial ring type RngMPol).

> Zx<x> := PolynomialRing(Rationals());
> I := ideal<Zx|x>;
> Type(Zx),Type(I);
RngUPol RngUPol
> Zx/I; // same as quo<Zx|I>
Univariate Quotient Polynomial Algebra in over Rational Field
> Type(Zx/I);
RngUPolRes
PowerIdeal(R): Rng -> PowIdl

The set of ideals of \(R\). This is the parent of all ideals of \(R\).

Arithmetic Operations on Ideals

I + J: RngIdl, RngIdl -> RngIdl

The sum of the ideals \(I\) and \(J\) of the ring \(R\). This ideal consists of elements \(a+b\), with \(a\in I\) and \(b\in J\). If \(I\) is generated by \(\{a_1, \ldots, a_k\}\) and \(J\) is generated by \(\{b_1, \ldots, b_m\}\), then \(I+J\) is generated by \(\{a_1, \ldots, a_k, b_1, \ldots, b_m\}\).

I * J: RngIdl, RngIdl -> RngIdl

The product of the ideals \(I\) and \(J\) of the ring \(R\). This is the ideal generated by elements \(a\cdot b\), with \(a\in I\) and \(b\in J\), and it consists of elements \(a_1b_1+\cdots+a_nb_n\), with \(a_i\in I\) and \(b_j\in J\).

I meet J: RngIdl, RngIdl -> RngIdl

The intersection of the ideals \(I\) and \(J\) of the ring \(R\).

Boolean Operators on Ideals

Throughout this subsection \(I\) and \(J\) are ideals belonging to the same integer ring \(R\), while \(a\) is an element of \(R\).

a in I: RngElt, RngIdl -> BoolElt

Returns true if and only if the element \(a\) is a member of the ideal \(I\).

a notin I: RngElt, RngIdl -> BoolElt

Returns true if and only if the element \(a\) is not a member of the ideal \(I\).

I eq J: RngIdl, RngIdl -> BoolElt

Returns true if and only if the ideals \(I\) and \(J\) are equal.

I ne J: RngIdl, RngIdl -> BoolElt

Returns true if and only if the ideals \(I\) and \(J\) are distinct.

I subset J: RngIdl, RngIdl -> BoolElt

Returns true if and only if the ideal \(I\) is contained in the ideal \(J\).

I notsubset J: RngIdl, RngIdl -> BoolElt

Returns true if and only if the ideal \(I\) is not contained in the ideal \(J\).