-- -*- M2-comint -*- {* hash: 420933298 *} 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 10875a3 10875ab3-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 15770a3-9599a2b-5559a2c 15770ab3-9599b4-5559b3c-c4 | 5 4 o13 : Matrix S <--- S i14 :