This function calculates some minors of the maps of a graded ChainComplex with respect to a subset of the variables of the polynomial ring in a fixed degree.
The input ChainComplex needs to be an exact complex of free modules over a polynomial ring. The polynomial ring must contain the list
as variables.
It is recommended not to defines rings as R=QQ[x,y][a,b,c] when the variables to eliminate are '{x,y}'. In this case, see
to QQ[x,y,a,b,c].
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 = minorsComplex (2,l,koszul M)
o6 = {{2} | a 2a 0 |, 0}
{2} | b b 2a |
{2} | c 0 b |
o6 : List
|
i7 : dHPM = minorsComplex (3,l,koszul M)
o7 = {{3} | a 0 2a 0 |, {2} | c |}
{3} | b a b 2a |
{3} | c b 0 b |
{3} | 0 c 0 0 |
o7 : List
|
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 = minorsComplex (1,l,koszul M, Strategy => Exact)
o14 = {{1} | a d g |, 0, 0}
{1} | b e h |
{1} | c f i |
o14 : List
|
i15 : dHPM = minorsComplex (2,l,koszul M, Strategy => Numeric)
o15 = {{2} | a 0 0 d 0 g |, {1} | c 0 -i |, 0}
{2} | b a 0 e d h | {1} | 0 b e |
{2} | c 0 a f 0 i | {1} | 0 c f |
{2} | 0 b 0 0 e 0 |
{2} | 0 c b 0 f 0 |
{2} | 0 0 c 0 0 0 |
o15 : List
|