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.
Here is a basic example:
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 |
Here is a more involved example. This is also how this function is used within the package.
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 107a3 107ab3-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 4376a3-5570a2b+3187a2c 4376ab3-5570b4+3187b3c-c4 | 5 4 o13 : Matrix S <--- S |
This method is called by evansGriffith.
The object elementary is a method function.