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.
Given compatible modules M and N, return the intersection of M and N.
Given compatible modules M and N, return the quotient module M/N. This has the same effect as using the quo constructor.
> 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)