# Singular

#### D.15.18.21 grprod

Procedure from library `gradedModules.lib` (see gradedModules_lib).

Usage:
grprod(M, N), graded objects M and N

Return:

Purpose:
compute graded product M * N (as composition of maps)

Example:
 ```LIB "gradedModules.lib"; ring r=32003,(x,y,z),dp; module A = grobj( module([x+y, x, 0, 3], [0, x+y, y, 2], [y, y, z, 1]), intvec(0,0,0,1) ); grview(A); ==> Graded homomorphism: r^3 + r(-1) <- r(-1)^3, given by a matrix, with degr\ ees: ==> ..1 ..2 ..3 .... ==> --- --- --- +... ==> 0 : 1 - 1 |..1 ==> 0 : 1 1 1 |..2 ==> 0 : - 1 1 |..3 ==> 1 : 0 0 0 |..4 ==> === === === ==> 1 1 1 A = grgroebner(A); grview(A); ==> Graded homomorphism: r^3 + r(-1) <- r(-1)^3 + r(-2) + r(-3), given by a m\ atrix, with degrees: ==> ..1 ..2 ..3 ..4 ..5 .... ==> --- --- --- --- --- +... ==> 0 : 1 1 1 2 - |..1 ==> 0 : 1 - 1 - - |..2 ==> 0 : 1 1 1 2 3 |..3 ==> 1 : 0 0 0 1 2 |..4 ==> === === === === === ==> 1 1 1 2 3 module B = grsyz(A); grview(B); ==> Graded homomorphism: r(-1)^3 + r(-2) + r(-3) <- r(-2) + r(-3), given by a\ matrix, with degrees: ==> ..1 ..2 .... ==> --- --- +... ==> 1 : 1 - |..1 ==> 1 : 1 2 |..2 ==> 1 : 1 - |..3 ==> 2 : 0 1 |..4 ==> 3 : - 0 |..5 ==> === === ==> 2 3 print(B); ==> x, 0, ==> -y,y2, ==> -y,0, ==> 1, -x-2y, ==> 0, 1 module D = grprod( A, B ); grview(D); ==> Graded homomorphism: r^3 + r(-1) <- r(-2) + r(-3), given by zero (4 x 2) \ matrix. print(D); // must be all zeroes due to syzygy property! ==> 0,0, ==> 0,0, ==> 0,0, ==> 0,0 ASSUME(0, size(D) == 0); ```