# Singular

#### D.15.20.27 grlifting

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

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

Return:
map of chain complexes (as a list)

Purpose:
construct a map of chain complexes between free resolutions of Img(M) and Img(N).

Example:
 ```LIB "gradedModules.lib"; /* ring r=32003,(x,y,z),dp; module P=grobj(module([xy,0,xz]),intvec(0,1,0)); grview(P); module D=grobj(module([y,0,z],[x2+y2,z,0]),intvec(0,1,0)); grview(D); def G=grlifting(D,P); grview(G); kill r; ring r=32003,(x,y,z),dp; module D=grobj(module([y,0,z],[x2+y2,z,0], [z3, xy, xy2]),intvec(0,1,0)); D = grgroebner(D); grview( grres(D, 0)); def G=grlifting(D, D); grview(G); */ ring S = 0, (x(0..3)), dp; list kos = grres(grobj(maxideal(1), intvec(0)), 0); print( betti(kos), "betti"); ==> 0 1 2 3 4 ==> ------------------------------------ ==> 0: 1 4 6 4 1 ==> ------------------------------------ ==> total: 1 4 6 4 1 ==> grview(kos); ==> Graded resolution: ==> S <-- d_1 -- ==> S(-1)^4 <-- d_2 -- ==> S(-2)^6 <-- d_3 -- ==> S(-3)^4 <-- d_4 -- ==> S(-4) <-- d_5 -- ==> 0, given by maps: ==> d_1 : ==> Graded homomorphism: S <- S(-1)^4, given by a matrix, with degrees: ==> .1 .2 .3 .4 ... ==> -- -- -- -- +.. ==> 0 : 1 1 1 1 |.1 ==> == == == == ==> 1 1 1 1 ==> d_2 : ==> Graded homomorphism: S(-1)^4 <- S(-2)^6, given by a matrix, with degrees: ==> ..1 ..2 ..3 ..4 ..5 ..6 .... ==> --- --- --- --- --- --- +... ==> 1 : 1 1 - 1 - - |..1 ==> 1 : 1 - 1 - 1 - |..2 ==> 1 : - 1 1 - - 1 |..3 ==> 1 : - - - 1 1 1 |..4 ==> === === === === === === ==> 2 2 2 2 2 2 ==> d_3 : ==> Graded homomorphism: S(-2)^6 <- S(-3)^4, given by a matrix, with degrees: ==> ..1 ..2 ..3 ..4 .... ==> --- --- --- --- +... ==> 2 : 1 1 - - |..1 ==> 2 : 1 - 1 - |..2 ==> 2 : 1 - - 1 |..3 ==> 2 : - 1 1 - |..4 ==> 2 : - 1 - 1 |..5 ==> 2 : - - 1 1 |..6 ==> === === === === ==> 3 3 3 3 ==> d_4 : ==> Graded homomorphism: S(-3)^4 <- S(-4), given by a matrix, with degrees: ==> .1 ... ==> -- +.. ==> 3 : 1 |.1 ==> 3 : 1 |.2 ==> 3 : 1 |.3 ==> 3 : 1 |.4 ==> == ==> 4 ==> d_5 : ==> Graded homomorphism: S(-4) <- 0, given by zero (1 x 0) matrix. // module M = grshift(kos[4], 2); // phi, Syz_3(K(2)) def M = KeneshlouMatrixPresentation(intvec(0,0,1,0)); grview( grres(M, 0) ); ==> Graded resolution: ==> S(-1)^4 <-- d_1 -- ==> S(-2) <-- d_2 -- ==> 0, given by maps: ==> d_1 : ==> Graded homomorphism: S(-1)^4 <- S(-2), given by a matrix, with degrees: ==> .1 ... ==> -- +.. ==> 1 : 1 |.1 ==> 1 : 1 |.2 ==> 1 : 1 |.3 ==> 1 : 1 |.4 ==> == ==> 2 ==> d_2 : ==> Graded homomorphism: S(-2) <- 0, given by zero (1 x 0) matrix. // module N = grshift(kos[3], 1); // psi, Syz_2(K(1)) def N = KeneshlouMatrixPresentation(intvec(0,1,0,0)); grview( grres(N, 0) ); ==> Graded resolution: ==> S(-1)^6 <-- d_1 -- ==> S(-2)^4 <-- d_2 -- ==> S(-3) <-- d_3 -- ==> 0, given by maps: ==> d_1 : ==> Graded homomorphism: S(-1)^6 <- S(-2)^4, given by a matrix, with degrees: ==> ..1 ..2 ..3 ..4 .... ==> --- --- --- --- +... ==> 1 : 1 1 - - |..1 ==> 1 : 1 - 1 - |..2 ==> 1 : 1 - - 1 |..3 ==> 1 : - 1 1 - |..4 ==> 1 : - 1 - 1 |..5 ==> 1 : - - 1 1 |..6 ==> === === === === ==> 2 2 2 2 ==> d_2 : ==> Graded homomorphism: S(-2)^4 <- S(-3), given by a matrix, with degrees: ==> .1 ... ==> -- +.. ==> 2 : 1 |.1 ==> 2 : 1 |.2 ==> 2 : 1 |.3 ==> 2 : 1 |.4 ==> == ==> 3 ==> d_3 : ==> Graded homomorphism: S(-3) <- 0, given by zero (1 x 0) matrix. grlifting(M, N); // grview(G); ==> t: 2 ==> _[1]=26642*gen(4)+24263*gen(3)+5664*gen(2)+24170*gen(1) // def G=grlifting( grgens(M), grgens(N) ); grview(G); ```