next | previous | forward | backward | up | index | toc

# Strategy for nonminimal free resolutions -- algorithm for computing nonminimal free resolutions

## Synopsis

• Usage:
freeResolution(M, Strategy => Nonminimal)
freeResolution(I, Strategy => Nonminimal)
• Inputs:
• M, , a module over a ring $R$
• I, an ideal, an ideal in $R$
• Outputs:
• , a free resolution of $M$ or $R^1/I$

## Description

This is the main the algorithm in the engine of Macaulay2 for computing nonminimal free resolutions of possibly inhomogeneous modules and ideals over a polynomial ring or exterior algebra defined over a finite field. For homogeneous ideals and modules over such rings, this variant generally computes a non-minimal resolution much faster than engine routines that return a minimal free resolution. In particular, this algorithm is used by minimalBetti for faster computation of Betti tables.

This first example computes part of the free resolution of the ground field over a inhomogeneous $E_8$ singularity.

 i1 : kk = ZZ/32003; i2 : R = kk[a..f]; i3 : I = ideal(a*b*c-d*e*f, a*b*f-c*d*e, a*b*d-c^3) 3 o3 = ideal (a*b*c - d*e*f, - c*d*e + a*b*f, - c + a*b*d) o3 : Ideal of R i4 : F = freeResolution(I, Strategy => Nonminimal) 1 7 10 4 o4 = R <-- R <-- R <-- R 0 1 2 3 o4 : Complex i5 : dd^F 1 7 o5 = 0 : R <--------------------------------------------------------------------------- R : 1 | abc-def c3-abd cde-abf a2b2d-def3 abd2e-abf3 a2b2f-d2e2f d3e2f-def4 | 7 10 1 : R <------------------------------------------------------------------- R : 2 {3} | -c2-f2 -de cf -abd -d2e+f3 0 -abf 0 0 0 | {3} | ab 0 -de 0 0 0 0 0 0 0 | {3} | -cf ab c2+f2 f3 0 0 def 0 -d2ef+f4 0 | {5} | 1 0 0 c 0 -de 0 -f 0 0 | {5} | 0 0 -1 -f c ab 0 0 -f2 -def | {5} | 0 1 0 0 0 f2 c d 0 0 | {6} | 0 0 0 0 -1 0 0 1 c ab | 10 4 2 : R <---------------------------------- R : 3 {5} | de 0 0 0 | {5} | -c2-f2 0 0 -d2ef+f4 | {5} | ab 0 0 0 | {6} | 0 de f 0 | {6} | 0 -ab 0 def | {7} | 1 c 0 -f2 | {6} | c -f2 -d 0 | {6} | 0 0 c def | {7} | 0 0 -1 -ab | {8} | 0 -1 0 c | o5 : ComplexMap i6 : betti F 0 1 2 3 o6 = total: 1 7 10 4 0: 1 . . . 1: . . . . 2: . 3 . . 3: . . 3 . 4: . 3 4 2 5: . 1 2 1 6: . . 1 1 o6 : BettiTally i7 : minimalBetti I 0 1 2 3 o7 = total: 1 3 3 1 0: 1 . . . 1: . . . . 2: . 3 . . 3: . . . . 4: . . 3 . 5: . . . . 6: . . . 1 o7 : BettiTally i8 : assert isWellDefined F i9 : assert isQuasiIsomorphism(augmentationMap F)

We also present an inhomogeneous example over a polynomial ring.

 i10 : I = ideal(a*b*c-d*e*f, a^2*b*f-c*d*e, a*b*d-c^2) 2 2 o10 = ideal (a*b*c - d*e*f, a b*f - c*d*e, a*b*d - c ) o10 : Ideal of R i11 : F = freeResolution(I, Strategy => Nonminimal) 1 11 20 12 2 o11 = R <-- R <-- R <-- R <-- R 0 1 2 3 4 o11 : Complex i12 : dd^F 1 11 o12 = 0 : R <---------------------------------------------------------------------------------------------------------------- R : 1 | abc-def abd-c2 cd2e-ac2f a2bf-cde d2ef-c3 bc2de-c2ef2 ac2f2-c4 adef2-c2de bc4d-c4f2 cdef3-bc4 c2ef5-b2c5 | 11 20 1 : R <----------------------------------------------------------------------------------------------------------- R : 2 {3} | -d -d2e+acf -af 0 0 c2 -cde -c2f -cf2 0 0 0 0 -c3d 0 c3 0 0 bc4 0 | {3} | c 0 0 -af 0 -def 0 0 0 0 -ef2 0 0 0 0 0 0 0 0 0 | {4} | 0 ab 0 1 -f 0 -ef -bc 0 -acf2+c3 0 c 0 -c2f 0 0 -f3 0 0 0 | {4} | 0 0 c d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {4} | -1 -de 0 0 c ab 0 0 0 0 0 -af 0 0 0 0 0 0 0 0 | {5} | 0 0 0 0 0 0 a d 0 0 1 0 0 0 -c2 0 0 -f3 c2f 0 | {5} | 0 0 0 0 -1 0 0 0 b d2e-acf 0 0 -de 0 0 0 -f2 0 -ef3 0 | {5} | 0 c -1 0 0 0 0 0 0 0 b d c2 0 0 -cf 0 0 0 0 | {6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 a e 0 1 0 0 bc | {6} | 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 a d bc 0 -cf2 | {8} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 a d | 20 12 2 : R <------------------------------------------------------------------- R : 3 {4} | af def 0 0 0 -cef2 0 0 0 -cef3 0 0 | {6} | 0 -f c cf2 0 0 0 0 0 0 0 0 | {5} | -d 0 0 0 0 0 0 0 0 0 0 0 | {5} | c 0 0 0 0 0 0 0 0 0 0 0 | {5} | 0 -ab de def2 0 -ef2 -acf 0 -af2 -ef3 0 0 | {6} | 0 c 0 0 f 0 0 0 0 0 0 0 | {6} | 0 0 -d 0 0 0 0 c2 0 f3 0 0 | {6} | 0 0 a c2 1 0 0 0 0 0 f3 c2f | {6} | 0 -a 0 -d2e+acf 0 de 0 0 0 0 -cf2 0 | {8} | 0 0 0 b 0 0 1 0 0 0 0 0 | {6} | 0 0 0 0 -d -c2 0 0 0 -c2f 0 0 | {6} | -1 0 0 0 b 0 -c2 0 -cf 0 0 0 | {7} | 0 0 -1 0 0 b d 0 0 0 0 f3 | {7} | 0 0 0 0 0 0 0 -e -1 0 0 -bc | {7} | 0 0 0 d 0 -1 0 a 0 0 0 0 | {7} | 0 -1 0 cf 0 0 0 0 -d -bc 0 cf2 | {7} | 0 0 0 -de 0 e 0 0 a 0 -bc 0 | {8} | 0 0 0 0 0 0 0 0 0 a d 0 | {9} | 0 0 0 0 0 0 0 0 0 1 0 -d | {9} | 0 0 0 0 0 0 0 0 0 0 1 a | 12 2 3 : R <--------------------- R : 4 {6} | 0 0 | {7} | -cf -cf2 | {7} | 0 -f3 | {9} | -1 0 | {7} | c2 c2f | {8} | -d 0 | {8} | b 0 | {8} | 0 0 | {8} | 0 bc | {9} | 0 -d | {9} | 0 a | {10} | 0 -1 | o12 : ComplexMap i13 : assert isWellDefined F i14 : assert isQuasiIsomorphism augmentationMap F i15 : minimize F 1 3 3 1 o15 = R <-- R <-- R <-- R 0 1 2 3 o15 : Complex i16 : freeResolution I 1 6 9 4 o16 = R <-- R <-- R <-- R 0 1 2 3 o16 : Complex

We also present an example over an exterior algebra.

 i17 : E = kk[a..d, SkewCommutative => true] o17 = E o17 : PolynomialRing, 4 skew commutative variable(s) i18 : I = ideal(a*b-c*d, a*b*c*d) o18 = ideal (a*b - c*d, a*b*c*d) o18 : Ideal of E i19 : F = freeResolution(I, Strategy => Nonminimal, LengthLimit => 4) 1 3 10 23 44 o19 = E <-- E <-- E <-- E <-- E 0 1 2 3 4 o19 : Complex i20 : dd^F 1 3 o20 = 0 : E <--------------------- E : 1 | ab-cd acd bcd | 3 10 1 : E <---------------------------------- E : 2 {2} | a b 0 cd 0 0 -cd 0 0 0 | {3} | 1 0 a b c d 0 0 0 0 | {3} | 0 1 0 0 0 0 a b c d | 10 23 2 : E <------------------------------------------------------------------ E : 3 {3} | a b 0 0 -cd 0 0 0 0 0 0 0 0 cd 0 0 0 0 0 0 0 0 0 | {3} | 0 a b 0 0 -cd 0 0 0 0 0 0 0 0 cd 0 0 0 0 0 0 0 0 | {4} | -1 0 0 a b 0 c 0 0 d 0 0 0 0 0 0 0 0 0 0 0 0 0 | {4} | 0 -1 0 0 a b 0 c 0 0 d 0 0 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 -d 0 a b c 0 0 d 0 d 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 0 0 0 0 a b c d 0 0 0 0 0 0 0 0 0 0 | {4} | 0 -1 0 0 0 0 0 0 0 0 0 0 0 a b 0 c 0 0 d 0 0 0 | {4} | 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 a b 0 c 0 0 d 0 0 | {4} | 0 0 0 0 0 -d 0 0 0 0 0 0 0 0 d 0 a b c 0 0 d 0 | {4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a b c d | 23 44 3 : E <-------------------------------------------------------------------------------------------------------------- E : 4 {4} | a b 0 0 0 cd 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -cd 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {4} | 0 a b 0 0 0 cd 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -cd 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 a b 0 0 0 cd 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -cd 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {5} | 1 0 0 0 a b 0 0 c 0 0 0 0 0 d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {5} | 0 1 0 0 0 a b 0 0 c 0 0 0 0 0 d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {5} | 0 0 1 0 0 0 a b 0 0 c 0 0 0 0 0 d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {5} | 0 0 0 0 0 -d 0 0 a b 0 c 0 0 0 0 0 d 0 0 0 0 0 0 d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {5} | 0 0 0 0 0 0 -d 0 0 a b 0 c 0 0 0 0 0 d 0 0 0 0 0 0 d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {5} | 0 0 0 0 0 0 0 0 0 -d 0 a b c 0 0 0 0 0 d 0 0 0 0 0 0 0 0 d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a b 0 c 0 0 d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a b 0 c 0 0 d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a b c 0 0 d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a b c d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {5} | 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a b 0 0 c 0 0 0 0 0 d 0 0 0 0 0 0 0 0 0 | {5} | 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a b 0 0 c 0 0 0 0 0 d 0 0 0 0 0 0 0 0 | {5} | 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a b 0 0 c 0 0 0 0 0 d 0 0 0 0 0 0 0 | {5} | 0 0 0 0 0 0 -d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 d 0 0 a b 0 c 0 0 0 0 0 d 0 0 0 0 0 0 | {5} | 0 0 0 0 0 0 0 -d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 d 0 0 a b 0 c 0 0 0 0 0 d 0 0 0 0 0 | {5} | 0 0 0 0 0 0 0 0 0 0 -d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 d 0 a b c 0 0 0 0 0 d 0 0 0 0 | {5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a b 0 c 0 0 d 0 0 0 | {5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a b 0 c 0 0 d 0 0 | {5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a b c 0 0 d 0 | {5} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a b c d | o20 : ComplexMap i21 : betti F 0 1 2 3 4 o21 = total: 1 3 10 23 44 0: 1 . . . . 1: . 1 2 3 4 2: . 2 8 20 40 o21 : BettiTally i22 : minimalBetti I 0 1 2 3 4 o22 = total: 1 1 5 16 35 0: 1 . . . . 1: . 1 . . . 2: . . 5 16 35 o22 : BettiTally i23 : assert isWellDefined F i24 : assert isQuasiIsomorphism(augmentationMap F, Concentration => (0,3))

This strategy implements an algorithm of Frank Schreyer. It first computes lead terms of all of the syzygy modules of the ideal or module, and then determines each syzygy using a linear algebra approach together with a number of optimizations.