Factors out a general element, reducing the rank of f. More precisely, the routine adds random multiples of the last row, whose coefficients are polynomials in the first m variables, to the k preceding rows and drops the last row. For this to be effective, the target degrees of f must be in ascending order.
This is a fundamental operation in the theory of basic elements, see D. Eisenbud and E. G. Evans, Basic elements: theorems from algebraic k-theory, Bulletin of the AMS, 78, No.4, 1972, 546-549.
i1 : kk=ZZ/32003 o1 = kk o1 : QuotientRing |
i2 : S=kk[a..d] o2 = S o2 : PolynomialRing |
i3 : M=matrix{{a,0,0,0},{0,b,0,0},{0,0,c,0},{0,0,0,d}}
o3 = | a 0 0 0 |
| 0 b 0 0 |
| 0 0 c 0 |
| 0 0 0 d |
4 4
o3 : Matrix S <--- S
|
i4 : elementary(M,0,1)-- since k=0, this command simply eliminates the last row of M.
o4 = | a 0 0 0 |
| 0 b 0 0 |
| 0 0 c 0 |
3 4
o4 : Matrix S <--- S
|
i5 : kk=ZZ/32003 o5 = kk o5 : QuotientRing |
i6 : S=kk[a..d] o6 = S o6 : PolynomialRing |
i7 : I=ideal(a^2,b^3,c^4, d^5)
2 3 4 5
o7 = ideal (a , b , c , d )
o7 : Ideal of S
|
i8 : F=res I
1 4 6 4 1
o8 = S <-- S <-- S <-- S <-- S <-- 0
0 1 2 3 4 5
o8 : ChainComplex
|
i9 : M=image F.dd_3
o9 = image {5} | c4 d5 0 0 |
{6} | -b3 0 d5 0 |
{7} | a2 0 0 d5 |
{7} | 0 -b3 -c4 0 |
{8} | 0 a2 0 -c4 |
{9} | 0 0 a2 b3 |
6
o9 : S-module, submodule of S
|
i10 : f=matrix gens M
o10 = {5} | c4 d5 0 0 |
{6} | -b3 0 d5 0 |
{7} | a2 0 0 d5 |
{7} | 0 -b3 -c4 0 |
{8} | 0 a2 0 -c4 |
{9} | 0 0 a2 b3 |
6 4
o10 : Matrix S <--- S
|
i11 : fascending=transpose sort(transpose f, DegreeOrder=>Descending) -- this is f with rows sorted so that the degrees are ascending.
o11 = {5} | c4 d5 0 0 |
{6} | -b3 0 d5 0 |
{7} | 0 -b3 -c4 0 |
{7} | a2 0 0 d5 |
{8} | 0 a2 0 -c4 |
{9} | 0 0 a2 b3 |
6 4
o11 : Matrix S <--- S
|
i12 : g=elementary(fascending,1,1) --k=1, so add random multiples of the last row to the preceding row
o12 = {5} | c4 d5 0 0 |
{6} | -b3 0 d5 0 |
{7} | 0 -b3 -c4 0 |
{7} | a2 0 0 d5 |
{8} | 0 a2 -13554a3 -13554ab3-c4 |
5 4
o12 : Matrix S <--- S
|
i13 : g1=elementary(fascending,1,3)
o13 = {5} | c4 d5 0 0 |
{6} | -b3 0 d5 0 |
{7} | 0 -b3 -c4 0 |
{7} | a2 0 0 d5 |
{8} | 0 a2 -5500a3+8920a2b-12989a2c -5500ab3+8920b4-12989b3c-c4 |
5 4
o13 : Matrix S <--- S
|