# Singular

#### D.15.20.30 grlifting3

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

Todo:
grlifting4 was newer and had more documentation than this proc, but was removed... Please verify and update!

Example:
 ```LIB "gradedModules.lib"; ring r=32003, x(0..4),dp; def A=grtwist(3,1); grview(A); ==> Graded homomorphism: r(1)^3 <- 0, given by zero (3 x 0) matrix. def T=KeneshlouMatrixPresentation(intvec(0,1,0,0,0)); grview(T); ==> Graded homomorphism: r(-1)^10 <- r(-2)^10, given by a square matrix, with\ degrees: ==> ..1 ..2 ..3 ..4 ..5 ..6 ..7 ..8 ..9 .10 .... ==> --- --- --- --- --- --- --- --- --- --- +... ==> 1 : 1 1 - - 1 - - - - - |..1 ==> 1 : 1 - 1 - - 1 - - - - |..2 ==> 1 : 1 - - 1 - - 1 - - - |..3 ==> 1 : - 1 1 - - - - 1 - - |..4 ==> 1 : - 1 - 1 - - - - 1 - |..5 ==> 1 : - - 1 1 - - - - - 1 |..6 ==> 1 : - - - - 1 1 - 1 - - |..7 ==> 1 : - - - - 1 - 1 - 1 - |..8 ==> 1 : - - - - - 1 1 - - 1 |..9 ==> 1 : - - - - - - - 1 1 1 |.10 ==> === === === === === === === === === === ==> 2 2 2 2 2 2 2 2 2 2 def F=grlifting3(T,A); ==> 0 1 2 3 ==> ------------------------------ ==> 1: 10 10 5 1 ==> ------------------------------ ==> total: 10 10 5 1 ==> ==> 0 ==> ------------ ==> -1: 3 ==> ------------ ==> total: 3 ==> ==> t: 1 ==> Graded homomorphism: r(1)^3 <- r(-1)^10, given by a matrix, with degrees: ==> ..1 ..2 ..3 ..4 ..5 ..6 ..7 ..8 ..9 .10 .... ==> --- --- --- --- --- --- --- --- --- --- +... ==> -1 : 2 2 2 2 2 2 2 2 2 2 |..1 ==> -1 : 2 2 2 2 2 2 2 2 2 2 |..2 ==> -1 : 2 2 2 2 2 2 2 2 2 2 |..3 ==> === === === === === === === === === === ==> 1 1 1 1 1 1 1 1 1 1 grview(F); ==> Graded resolution: ==> r(1)^3 <-- d_1 -- ==> r(-1)^10, given by maps: ==> d_1 : ==> Graded homomorphism: r(1)^3 <- r(-1)^10, given by a matrix, with degrees: ==> ..1 ..2 ..3 ..4 ..5 ..6 ..7 ..8 ..9 .10 .... ==> --- --- --- --- --- --- --- --- --- --- +... ==> -1 : 2 2 2 2 2 2 2 2 2 2 |..1 ==> -1 : 2 2 2 2 2 2 2 2 2 2 |..2 ==> -1 : 2 2 2 2 2 2 2 2 2 2 |..3 ==> === === === === === === === === === === ==> 1 1 1 1 1 1 1 1 1 1 def R=KeneshlouMatrixPresentation(intvec(0,0,0,2,0)); def S=KeneshlouMatrixPresentation(intvec(1,2,0,0,0)); def H=grlifting3(R, S); ==> 0 1 ==> ------------------ ==> 1: 10 2 ==> ------------------ ==> total: 10 2 ==> ==> 0 1 2 3 ==> ------------------------------ ==> 0: 1 - - - ==> 1: 20 20 10 2 ==> ------------------------------ ==> total: 21 20 10 2 ==> ==> t: 2 ==> Graded homomorphism: r(-2)^20 <- r(-2)^2, given by a matrix, with degrees\ : ==> ..1 ..2 .... ==> --- --- +... ==> 2 : 0 0 |..1 ==> 2 : 0 0 |..2 ==> 2 : 0 0 |..3 ==> 2 : 0 0 |..4 ==> 2 : 0 0 |..5 ==> 2 : 0 0 |..6 ==> 2 : 0 0 |..7 ==> 2 : 0 0 |..8 ==> 2 : 0 0 |..9 ==> 2 : 0 0 |.10 ==> 2 : 0 0 |.11 ==> 2 : 0 0 |.12 ==> 2 : 0 0 |.13 ==> 2 : 0 0 |.14 ==> 2 : 0 0 |.15 ==> 2 : 0 0 |.16 ==> 2 : 0 0 |.17 ==> 2 : 0 0 |.18 ==> 2 : 0 0 |.19 ==> 2 : 0 0 |.20 ==> === === ==> 2 2 ==> k: 1 ==> Graded homomorphism: r + r(-1)^20 <- r(-1)^10, given by a matrix, with de\ grees: ==> ..1 ..2 ..3 ..4 ..5 ..6 ..7 ..8 ..9 .10 .... ==> --- --- --- --- --- --- --- --- --- --- +... ==> 0 : - - - - - - - - - - |..1 ==> 1 : 0 0 0 - - 0 0 0 - - |..2 ==> 1 : 0 0 - 0 - 0 0 - 0 - |..3 ==> 1 : 0 0 - - 0 0 0 - - 0 |..4 ==> 1 : 0 - 0 0 - 0 - 0 0 - |..5 ==> 1 : 0 - 0 - 0 0 - 0 - 0 |..6 ==> 1 : 0 - - 0 0 0 - - 0 0 |..7 ==> 1 : - 0 0 0 - - 0 0 0 - |..8 ==> 1 : - 0 0 - 0 - 0 0 - 0 |..9 ==> 1 : - 0 - 0 0 - 0 - 0 0 |.10 ==> 1 : - - 0 0 0 - - 0 0 0 |.11 ==> 1 : 0 0 0 - - 0 0 0 - - |.12 ==> 1 : 0 0 - 0 - 0 0 - 0 - |.13 ==> 1 : 0 0 - - 0 0 0 - - 0 |.14 ==> 1 : 0 - 0 0 - 0 - 0 0 - |.15 ==> 1 : 0 - 0 - 0 0 - 0 - 0 |.16 ==> 1 : 0 - - 0 0 0 - - 0 0 |.17 ==> 1 : - 0 0 0 - - 0 0 0 - |.18 ==> 1 : - 0 0 - 0 - 0 0 - 0 |.19 ==> 1 : - 0 - 0 0 - 0 - 0 0 |.20 ==> 1 : - - 0 0 0 - - 0 0 0 |.21 ==> === === === === === === === === === === ==> 1 1 1 1 1 1 1 1 1 1 // grview(H); // 2nd module does not lie in the first: // def H=grlifting3(S, R); //def I=KeneshlouMatrixPresentation(intvec(2,3,0,6,2)); //def J=KeneshlouMatrixPresentation(intvec(4,0,1,2,1)); //def N=grlifting3(I,J); grview(N); ```