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

Module Operations

The following functions construct new modules from old. For binary operations, the modules must be compatible.

M + N : ModMPol, ModMPol -> ModMPol
Given compatible modules M and N, return the sum of M and N.
M meet N : ModMPol, ModMPol -> ModMPol
Given compatible modules M and N, return the intersection of M and N.
M / N : ModMPol, ModMPol -> ModMPol
Given compatible modules M and N, return the quotient module M/N. This has the same effect as using the quo constructor.

Example PMod_SubQuo (H44E3)

We construct simple submodules and quotient modules and demonstrate the operations on them.

> P<x, y, z> := PolynomialRing(RationalField(), 3);
> M := Module(P, 3);
> S := sub<M | [1, x, x^2+y], [z, y, x*y^2+1],
>              [y, z, x+z]>;
> Groebner(S);
> S;
Module of degree 3
TOP Order
Coefficient ring:
    Polynomial ring of rank 3 over Rational Field
    Lexicographical Order
    Variables: x, y, z
Groebner basis:
( -x*z + y^2 + y x*y^2 - x*y + z         y^3 + z)
(  x*y - y*z - 1   x*z - x - z^2        -y - z^2)
(              y               z           x + z)
(        y^3 - z       y^2*z - y       y^2*z - 1)
> a := M ! [y, z, x+z];
> a;
(    y     z x + z)
> a in S;
true
> BasisElement(S, 1);
( -x*z + y^2 + y x*y^2 - x*y + z         y^3 + z)
> Q := quo<M | [x, y, z]>;
> Q;
Full Quotient Module of degree 3
TOP Order
Coefficient ring:
    Polynomial ring of rank 3 over Rational Field
    Lexicographical Order
    Variables: x, y, z
Quotient Relations:
(x y z)
> a := Q![x,y,0];
> b := Q![0,0,z];
> a;
( 0  0 -z)
> b;
(0 0 z)
> a+b;
(0 0 0)
> Q ! [x,y,z];
(0 0 0)
> QQ := quo<Q | [x^2, 0, y+z]>;
> QQ;
Full Quotient Module of degree 3
TOP Order
Coefficient ring:
    Polynomial ring of rank 3 over Rational Field
    Lexicographical Order
    Variables: x, y, z
Quotient Relations:
(          0         x*y x*z - y - z)
(          x           y           z)

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