[Next] [Prev] [Right] [Left] [Up] [Index] [Root]
Module Element Access and Operations

Module Element Access and Operations

The following functions allow simple access and operations on module elements. Some of them use the module structure and refer to the column structure of an element; others use the polynomial structure and ignore the column structure.

Subsections

Access

Eltseq(f) : ModMPolElt -> [ RngMPolElt ]
Given an element f of the module M over P and of degree r, return the sequence [f_1, ..., f_r] of r elements from P corresponding to f.
f[i] : ModMPolElt, RngIntElt -> RngMPolElt
Given an element f of the module M over P and of degree r, together with an integer i in the range [1 .. r], return the i-th component of f as an element of P.

Arithmetic

f + g : ModMPolElt, ModMPolElt -> ModMPolElt
Given elements f and g of the module M, return the sum f + g of f and g. Note that the result is always reduced to the unique normal form modulo the quotient relations of M.
f - g : ModMPolElt, ModMPolElt -> ModMPolElt
Given elements f and g of the module M, return the difference f - g of f and g. Note that the result is always reduced to the unique normal form modulo the quotient relations of M.
- f : ModMPolElt -> ModMPolElt
Given an element f of the module M, return the negation -f of f.
s * f : RngMPolElt, ModMPolElt -> ModMPolElt
Given a scalar ring element s and an element f of the module M, such that s is coercible into the coefficient ring of M, return the element sf.
f * s : ModMPolElt, RngMPolElt -> ModMPolElt
Given a scalar ring element s and an element f of the module M, such that s is coercible into the coefficient ring of M, return the element fs.
f div s : ModMPolElt, RngMPolElt -> ModMPolElt
Given a scalar ring element s and an element f of the module M, such that s is coercible into the coefficient ring of M and s divides all components of f, return the quotient of f by s.
f div:= s : ModMPolElt, RngMPolElt ->
(Procedure.) Given a scalar ring element s and an element f of the module M, such that s is coercible into the coefficient ring of M and s divides all components of f, replace f by the quotient of f by s.
SPolynomial(f, g) : ModMPolElt, ModMPolElt -> ModMPolElt
Given elements f and g of the module M such that the leading monomials of f and g have the same column, return the S-polynomial of f and g. Note that the result is always reduced to the unique normal form modulo the quotient relations of M.

Predicates

IsZero(f) : ModMPolElt -> BoolElt
Given an element f of the module M, return whether f is the zero element of M.
f eq g : ModMPolElt, ModMPolElt -> BoolElt
Given elements f and g of the module M, return whether f and g are equal.
f in M : ModMPolElt, ModMPol -> BoolElt
Given an element f of a module S together with a compatible module M, return whether f is in M.

Other Operations

Normalize(f) : ModMPolElt -> ModMPolElt
Given an element f of the module M, return the normalized form of f (so that the leading monomial of f is monic).
NormalForm(f, M) : ModMPolElt, ModMPol -> ModMPolElt
Given an element f of the module S, together with a compatible module M, return the normal form of f with respect to M.
Coordinates(f, M) : ModMPolElt, ModMPol -> [ RngMPolElt ]
Given an element f of the module S, together with a compatible module M such that f is in M, return the coordinates of f with respect to the basis of M (whose components lie in the coefficient ring of M).

Example PMod_Element (H44E2)

We demonstrate elementary operations on module elements.

> P<x, y, z> := PolynomialRing(RationalField(), 3);
> M := Module(P, 3);
> a := M ! [1, x, y];
> b := M ! [x, y, z]; 
> a;
(1 x y)
> b;
(x y z)
> a + b;
(x + 1 x + y y + z)
> z*a;
(  z x*z y*z)
> Eltseq(z * a + b);
[
    x + z,
    x*z + y,
    y*z + z
]

[Next] [Prev] [Right] [Left] [Up] [Index] [Root]