# Singular

#### D.15.18.31 mappingcone3

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

Usage:
mappingcone3(A,B), graded objects A and B (matrices defining maps)

Return:
chain complex (as a list)

Purpose:
construct a free resolution of the cokernel of a random map between M=coker(A), and N=coker(B)

Example:
 ```LIB "gradedModules.lib"; ring r=32003,x(0..4),dp; def A=KeneshlouMatrixPresentation(intvec(0,0,0,0,3)); 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(A,T); grview(F); ==> 0 ==> ------------ ==> 1: 3 ==> ------------ ==> total: 3 ==> ==> 0 1 2 3 ==> ------------------------------ ==> 1: 10 10 5 1 ==> ------------------------------ ==> total: 10 10 5 1 ==> ==> t: 1 ==> Graded homomorphism: r(-1)^10 <- r(-1)^3, given by a matrix, with degrees\ : ==> ..1 ..2 ..3 .... ==> --- --- --- +... ==> 1 : 0 0 0 |..1 ==> 1 : 0 0 0 |..2 ==> 1 : 0 0 0 |..3 ==> 1 : 0 0 0 |..4 ==> 1 : 0 0 0 |..5 ==> 1 : 0 0 0 |..6 ==> 1 : 0 0 0 |..7 ==> 1 : 0 0 0 |..8 ==> 1 : 0 0 0 |..9 ==> 1 : 0 0 0 |.10 ==> === === === ==> 1 1 1 ==> Graded resolution: ==> r(-1)^10 <-- d_1 -- ==> r(-1)^3, given by maps: ==> d_1 : ==> Graded homomorphism: r(-1)^10 <- r(-1)^3, given by a matrix, with degrees\ : ==> ..1 ..2 ..3 .... ==> --- --- --- +... ==> 1 : 0 0 0 |..1 ==> 1 : 0 0 0 |..2 ==> 1 : 0 0 0 |..3 ==> 1 : 0 0 0 |..4 ==> 1 : 0 0 0 |..5 ==> 1 : 0 0 0 |..6 ==> 1 : 0 0 0 |..7 ==> 1 : 0 0 0 |..8 ==> 1 : 0 0 0 |..9 ==> 1 : 0 0 0 |.10 ==> === === === ==> 1 1 1 // BUG in the proc def G=mappingcone3(A,T); grview(G); ==> 0 ==> ------------ ==> 1: 3 ==> ------------ ==> total: 3 ==> ==> 0 1 2 3 ==> ------------------------------ ==> 1: 10 10 5 1 ==> ------------------------------ ==> total: 10 10 5 1 ==> ==> t: 1 ==> Graded homomorphism: r(-1)^10 <- r(-1)^3, given by a matrix, with degrees\ : ==> ..1 ..2 ..3 .... ==> --- --- --- +... ==> 1 : 0 0 0 |..1 ==> 1 : 0 0 0 |..2 ==> 1 : 0 0 0 |..3 ==> 1 : 0 0 0 |..4 ==> 1 : 0 0 0 |..5 ==> 1 : 0 0 0 |..6 ==> 1 : 0 0 0 |..7 ==> 1 : 0 0 0 |..8 ==> 1 : 0 0 0 |..9 ==> 1 : 0 0 0 |.10 ==> === === === ==> 1 1 1 ==> Graded resolution: ==> r(-1)^10 <-- d_1 -- ==> r(-1)^3 + r(-2)^10, given by maps: ==> d_1 : ==> Graded homomorphism: r(-1)^10 <- r(-1)^3 + r(-2)^10, given by a matrix, w\ ith degrees: ==> ..1 ..2 ..3 ..4 ..5 ..6 ..7 ..8 ..9 .10 .11 .12 .13 .... ==> --- --- --- --- --- --- --- --- --- --- --- --- --- +... ==> 1 : 0 0 0 1 1 - - 1 - - - - - |..1 ==> 1 : 0 0 0 1 - 1 - - 1 - - - - |..2 ==> 1 : 0 0 0 1 - - 1 - - 1 - - - |..3 ==> 1 : 0 0 0 - 1 1 - - - - 1 - - |..4 ==> 1 : 0 0 0 - 1 - 1 - - - - 1 - |..5 ==> 1 : 0 0 0 - - 1 1 - - - - - 1 |..6 ==> 1 : 0 0 0 - - - - 1 1 - 1 - - |..7 ==> 1 : 0 0 0 - - - - 1 - 1 - 1 - |..8 ==> 1 : 0 0 0 - - - - - 1 1 - - 1 |..9 ==> 1 : 0 0 0 - - - - - - - 1 1 1 |.10 ==> === === === === === === === === === === === === === ==> 1 1 1 2 2 2 2 2 2 2 2 2 2 /* module W=grtranspose(G[1]); resolution U=mres(W,0); print(betti(U,0),"betti"); // ? ideal P=groebner(flatten(U[2])); resolution L=mres(P,0); print(betti(L),"betti"); */ def R=KeneshlouMatrixPresentation(intvec(0,0,0,2,0)); grview(R); ==> Graded homomorphism: r(-1)^10 <- r(-2)^2, given by a matrix, with degrees\ : ==> ..1 ..2 .... ==> --- --- +... ==> 1 : 1 - |..1 ==> 1 : 1 - |..2 ==> 1 : 1 - |..3 ==> 1 : 1 - |..4 ==> 1 : 1 - |..5 ==> 1 : - 1 |..6 ==> 1 : - 1 |..7 ==> 1 : - 1 |..8 ==> 1 : - 1 |..9 ==> 1 : - 1 |.10 ==> === === ==> 2 2 def S=KeneshlouMatrixPresentation(intvec(1,2,0,0,0)); grview(S); ==> Graded homomorphism: r + r(-1)^20 <- r(-2)^20, given by a matrix, with de\ grees: ==> ..1 ..2 ..3 ..4 ..5 ..6 ..7 ..8 ..9 .10 .11 .12 .13 .14 .15 .16 .17 \ .18 .19 .20 .... ==> --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- +... ==> 0 : - - - - - - - - - - - - - - - - - \ - - - |..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 ==> 1 : - - - - - - - 1 1 1 - - - - - - - \ - - - |.11 ==> 1 : - - - - - - - - - - 1 1 - - 1 - - \ - - - |.12 ==> 1 : - - - - - - - - - - 1 - 1 - - 1 - \ - - - |.13 ==> 1 : - - - - - - - - - - 1 - - 1 - - 1 \ - - - |.14 ==> 1 : - - - - - - - - - - - 1 1 - - - - \ 1 - - |.15 ==> 1 : - - - - - - - - - - - 1 - 1 - - - \ - 1 - |.16 ==> 1 : - - - - - - - - - - - - 1 1 - - - \ - - 1 |.17 ==> 1 : - - - - - - - - - - - - - - 1 1 - \ 1 - - |.18 ==> 1 : - - - - - - - - - - - - - - 1 - 1 \ - 1 - |.19 ==> 1 : - - - - - - - - - - - - - - - 1 1 \ - - 1 |.20 ==> 1 : - - - - - - - - - - - - - - - - - \ 1 1 1 |.21 ==> === === === === === === === === === === === === === === === === === === === === ==> 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 \ 2 2 2 def H=grlifting3(R,S); grview(H); ==> 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 ==> Graded-object collection, given by the following maps (named here as o_[1\ .. 2]): ==> o_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 ==> o_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 // BUG in the proc def G=mappingcone3(R,S); ==> // ** redefining G (def G=mappingcone3(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 ==> // ** redefining A ( module A=grconcat(P[i],rN[i]);) ==> // ** redefining B ( module B=grobj(zero,v,w);) def I=KeneshlouMatrixPresentation(intvec(2,3,0,6,2)); def J=KeneshlouMatrixPresentation(intvec(4,0,1,2,1)); // def N=grlifting3(I,J); // 2nd module does not lie in the first: // def NN=mappingcone3(I,J); // ???????? ```