# map(Module,Module,RingMap,Matrix) -- homomorphism of modules over different rings

## Synopsis

• Function: map
• Usage:
g = map(M,N,p,f)
g = map(M,,p,f)
g = map(M,p)
• Inputs:
• M,
• N, , or null
• p, , from the ring of N to the ring of M
• f, , to the ring of M, from the cover of N tensored with the ring of M along p. Alternatively, f can be represented by its doubly nested list of entries.
• Optional inputs:
• Degree => a list, default value null, a list of integers of length equal to the degree length of the ring of M, providing the degree of g. By default, the degree of g is zero.
• DegreeLift => ..., default value null, make a ring map
• DegreeMap => ..., default value null, make a ring map
• Outputs:
• g, , the homomorphism to M from N defined by f

## Description

 i1 : R = QQ[x,y] o1 = R o1 : PolynomialRing i2 : p = map(R,QQ) o2 = map (R, QQ, {}) o2 : RingMap R <--- QQ i3 : f = matrix {{x-y, x+2*y, 3*x-y}}; 1 3 o3 : Matrix R <--- R i4 : kernel f o4 = image {1} | -7 -x-2y | {1} | -2 x-y | {1} | 3 0 | 3 o4 : R-module, submodule of R i5 : g = map(R^1,QQ^3,p,f) o5 = | x-y x+2y 3x-y | 1 3 o5 : Matrix R <--- QQ i6 : g === map(R^1,QQ^3,p,{{x-y, x+2*y, 3*x-y}}) o6 = true i7 : isHomogeneous g o7 = false i8 : kernel g o8 = image | -7 | | -2 | | 3 | 3 o8 : QQ-module, submodule of QQ i9 : coimage g o9 = cokernel | -7 | | -2 | | 3 | 3 o9 : QQ-module, quotient of QQ i10 : rank oo o10 = 2

If the module N is replaced by null, which is entered automatically between consecutive commas, then a free module will be used for N, whose degrees are obtained by lifting the degrees of the cover of the source of g, minus the degree of g, along the degree map of p

 i11 : g2 = map(R^1,,p,f,Degree => {1}) o11 = | x-y x+2y 3x-y | 1 3 o11 : Matrix R <--- QQ i12 : g === g2 o12 = true

If N and f are both omitted, along with their commas, then for f the matrix of generators of M is used.

 i13 : M' = image f o13 = image | x-y x+2y 3x-y | 1 o13 : R-module, submodule of R i14 : g3 = map(M',p,Degree => {1}) o14 = {1} | 1 0 7/3 | {1} | 0 1 2/3 | {1} | 0 0 0 | o14 : Matrix i15 : isHomogeneous g3 o15 = true i16 : kernel g3 o16 = image | -7 | | -2 | | 3 | 3 o16 : QQ-module, submodule of QQ i17 : oo == kernel g o17 = true

The degree of the homomorphism enters into the determination of its homogeneity.

 i18 : R = QQ[x, Degrees => {{2:1}}]; i19 : M = R^1 1 o19 = R o19 : R-module, free i20 : S = QQ[z]; i21 : N = S^1 1 o21 = S o21 : S-module, free i22 : p = map(R,S,{x},DegreeMap => x -> join(x,x)) o22 = map (R, S, {x}) o22 : RingMap R <--- S i23 : isHomogeneous p o23 = true i24 : f = matrix {{x^3}} o24 = | x3 | 1 1 o24 : Matrix R <--- R i25 : g = map(M,N,p,f,Degree => {3,3}) o25 = | x3 | 1 1 o25 : Matrix R <--- S i26 : isHomogeneous g o26 = true i27 : kernel g o27 = image 0 1 o27 : S-module, submodule of S i28 : coimage g 1 o28 = S o28 : S-module, free