Structure Operations#

Numerical Invariants#

Note that the # operator only returns a value for finite (quotients of) polynomial rings.

Rank(P): RngMPol -> RngIntElt#

Return the number of indeterminates of polynomial ring \(P\) over its coefficient ring.

Characteristic(P): RngMPol -> RngIntElt#
#P: RngMPol -> RngIntElt#

Ring Predicates and Booleans#

The usual ring functions returning Boolean values are available on polynomial rings.

IsCommutative(P): RngMPol -> BoolElt#
IsUnitary(P): RngMPol -> BoolElt#
IsFinite(P): RngMPol -> BoolElt#
IsOrdered(P): RngMPol -> BoolElt#
IsField(P): RngMPol -> BoolElt#
IsEuclideanDomain(P): RngMPol -> BoolElt#
IsPID(P): RngMPol -> BoolElt#
IsUFD(P): RngMPol -> BoolElt#
IsDivisionRing(P): RngMPol -> BoolElt#
IsEuclideanRing(P): RngMPol -> BoolElt#
IsDomain(P): RngMPol -> BoolElt#
IsPrincipalIdealRing(P): RngMPol -> BoolElt#
P eq Q: RngMPol, RngMPol -> BoolElt#
P ne Q: RngMPol, RngMPol -> BoolElt#

Changing Coefficient Ring#

The ChangeRing function enables the changing of the coefficient ring of a polynomial ring.

ChangeRing(P, S): RngMPol, Rng -> RngMPol#

Given a polynomial ring \(P=R[x_1, \ldots, x_n]\) of rank \(n\) with coefficient ring \(R\), together with a ring \(S\), construct the polynomial ring \(Q=S[x_1, \ldots, x_n]\). It is necessary that all elements of the old coefficient ring \(R\) can be automatically coerced into the new coefficient ring \(S\).

Homomorphisms#

In its general form, a ring homomorphism taking a polynomial ring \(R[x_1, \ldots, x_n]\) as domain requires \(n+1\) pieces of information, namely, a map (homomorphism) telling how to map the coefficient ring \(R\) together with the images of the \(n\) indeterminates.

hom< P -> S | f, y₁, ..., yₙ >: RngMPol, Rng -> Map#
hom< P -> S | y₁, ..., yₙ >: RngMPol, Rng -> Map#

Given a polynomial ring \(P=R[x_1,\ldots, x_n]\), a ring \(S\), a map \(f : R\rightarrow S\) and \(n\) elements \(y_1, \ldots, y_n\in S\), create the homomorphism \(g : P\rightarrow S\) by applying the rules that \(g(rx_1^{a_1}\cdots x_n^{a_n})=f(r)y_1^{a_1}\cdots y_n^{a_n}\) for monomials and linearity, that is, \(g(M+N)=g(M)+g(N)\). The coefficient ring map may be omitted, in which case the coefficients are mapped into \(S\) by the unitary homomorphism sending \(1_R\) to \(1_S\). Also, the images \(y_i\) are allowed to be from a structure that allows automatic coercion into \(S\).

Example: Homomorphism (ex-a59b0c)#

In this example we map \({\mathbb{Q}}[x, y]\) into the number field \({\mathbb{Q}}(\root 3 \of 2, \sqrt{5})\) by sending \(x\) to \(\root 3 \of 2\) and \(y\) to \(\sqrt{5}\) and the identity map on the coefficients (which we omit).

> Q := RationalField();
> R<x, y> := PolynomialRing(Q, 2);
> A<a> := PolynomialRing(IntegerRing());
> N<z, w> := NumberField([a^3-2, a^2+5]);
> h := hom< R -> N | z, w >;
> h(x^11*y^3-x+4/5*y-13/4);
-40*w*z^2 - z + 4/5*w - 13/4

Run in calculator