# degHomPolMap -- given a subset of variables 'var' of the polynomial ring R, it returns the base of monomials on these variables, and the matrix of coefficients of a morphism of free modules f:R(d1)+...+R(dn)->R_d with respect to these variables

## Synopsis

• Usage:
coefAndMonomials = degHomPolMap(r, l, v, d)
• Inputs:
• r, , single row matrix with polynomials f1,...,fn
• l, a list, list {d1,...,dn} of degrees corresponding to the degrees of f1,...,fn
• v, a list, list of variables of the polynomial ring R with respect to which the polynomials fi's are homogeneous of degree 'di' (to take into account for elimination)
• d, an integer, the degree in 'var' of the homogeneous strand of the map f (i.e.: R_d)
• Outputs:
• List, a list, a list {monomials, coefficients} of the coefficients and monomials of the morphism f

## Description

Let R be a polynomial ring in two groups of variables R=S[X1,...,Xr] and S=k[a1,...,as]. Here, X1,...,Xr are called v and a1,...,as are called 'coefficients'. Let m be a line matrix f1,...,fn, where fi is an element of R which is homogeneous as a polynomial in the variables 'var', of degree di for all i in 'var'. The matrix 'm' defines a graded map of R-modules (of degree 0 in 'var') from R(-d1)+...+R(-dn) to R. In particular, looking on each strand d, we have a map of free S-modules of finite rank fd: Rd-d1+...+Rd-dn -> Rd where Rd is the homogeneous part of degree d in 'var' of R.

This function returns a sequence with two elements: first the list of monomials of degree d in 'var'; Second, the matrix f_d with entries in S in the base of monomials.

For computing the base of monomials, it needs as a second argument the list d1,...,dn of the degrees of the fi's in v. There is an auxiliary function computing this automatically from the list of elements fi's and the list of variables v called l.

 ```i1 : R=QQ[a,b,c,x,y] o1 = R o1 : PolynomialRing``` ```i2 : f1 = a*x^2+b*x*y+c*y^2 2 2 o2 = a*x + b*x*y + c*y o2 : R``` ```i3 : f2 = 2*a*x+b*y o3 = 2a*x + b*y o3 : R``` ```i4 : M = matrix{{f1,f2}} o4 = | ax2+bxy+cy2 2ax+by | 1 2 o4 : Matrix R <--- R``` ```i5 : l = {x,y} o5 = {x, y} o5 : List``` ```i6 : dHPM = degHomPolMap (M,l,2) o6 = (| x2 xy y2 |, {2} | a 2a 0 |) {2} | b b 2a | {2} | c 0 b | o6 : Sequence``` ```i7 : dHPM = degHomPolMap (M,{2,1},l,2) o7 = (| x2 xy y2 |, {2} | a 2a 0 |) {2} | b b 2a | {2} | c 0 b | o7 : Sequence```
 ```i8 : R=QQ[a,b,c,d,e,f,g,h,i,x,y,z] o8 = R o8 : PolynomialRing``` ```i9 : f1 = a*x+b*y+c*z o9 = a*x + b*y + c*z o9 : R``` ```i10 : f2 = d*x+e*y+f*z o10 = d*x + e*y + f*z o10 : R``` ```i11 : f3 = g*x+h*y+i*z o11 = g*x + h*y + i*z o11 : R``` ```i12 : M = matrix{{f1,f2,f3}} o12 = | ax+by+cz dx+ey+fz gx+hy+iz | 1 3 o12 : Matrix R <--- R``` ```i13 : l = {x,y,z} o13 = {x, y, z} o13 : List``` ```i14 : dHPM = degHomPolMap (M,l,1) o14 = (| x y z |, {1} | a d g |) {1} | b e h | {1} | c f i | o14 : Sequence``` ```i15 : dHPM = degHomPolMap (M,{1,1,1},l,1) o15 = (| x y z |, {1} | a d g |) {1} | b e h | {1} | c f i | o15 : Sequence```