The construction follows the recipe in Jesse Burke's paper. The resolution produced is minimal iff M is a Golod module. if the optional argument Check => true then the program checks that the differential produced squares to 0 and that the complex is acyclic. The default is Check => false.
i1 : S = ZZ/101[x_1..x_4] o1 = S o1 : PolynomialRing |
i2 : I = x_1^2*ideal(vars S) 3 2 2 2 o2 = ideal (x , x x , x x , x x ) 1 1 2 1 3 1 4 o2 : Ideal of S |
i3 : R = S/I o3 = R o3 : QuotientRing |
i4 : M = R^1/ideal(x_1..x_3) o4 = cokernel | x_1 x_2 x_3 | 1 o4 : R-module, quotient of R |
i5 : F = burkeResolution(M, 4, Check =>true) 1 3 7 19 50 o5 = R <-- R <-- R <-- R <-- R 0 1 2 3 4 o5 : Complex |
the function golodBetti displays the Betti table of the resolution that would be constructed by burkeResolution, without actually making the construction.
i6 : golodBetti (M,12) 0 1 2 3 4 5 6 7 8 9 10 11 12 o6 = total: 1 3 7 19 50 131 345 907 2385 6272 16493 43371 114051 0: 1 3 3 1 . . . . . . . . . 1: . . 4 18 34 35 21 7 1 . . . . 2: . . . . 16 96 260 420 448 328 165 55 11 3: . . . . . . 64 480 1680 3640 5448 5940 4840 4: . . . . . . . . 256 2304 9856 26624 50832 5: . . . . . . . . . . 1024 10752 54272 6: . . . . . . . . . . . . 4096 o6 : BettiTally |
i7 : betti F 0 1 2 3 4 o7 = total: 1 3 7 19 50 0: 1 3 3 1 . 1: . . 4 18 34 2: . . . . 16 o7 : BettiTally |
The advantage of resolutions computed from A-infinity structures is the decomposition of the differential into blocks corresponding to tensor products of the modules in the finite resolutions. In the following display, the symbol {u_1..u_n} denotes B_(u_1)**..**B_(u_(n-1))**G_(u_n), where G is the S-free resolution of M and B is the truncated shift of the S-free resolution A of R^1: that is, B_i = A_(i-1), i = 2...length A.
i8 : picture F +---------------------------------------+ |+---+---+ | o8 = || |{1}| | |+---+---+ | ||{0}| * | | |+---+---+ | +---------------------------------------+ |+---+---+------+ | || |{2}|{2, 0}| | |+---+---+------+ | ||{1}| * | * | | |+---+---+------+ | +---------------------------------------+ |+------+---+------+------+ | || |{3}|{3, 0}|{2, 1}| | |+------+---+------+------+ | || {2} | * | . | * | | |+------+---+------+------+ | ||{2, 0}| . | * | * | | |+------+---+------+------+ | +---------------------------------------+ |+------+------+------+------+---------+| || |{4, 0}|{3, 1}|{2, 2}|{2, 2, 0}|| |+------+------+------+------+---------+| || {3} | . | * | * | . || |+------+------+------+------+---------+| ||{3, 0}| * | * | . | * || |+------+------+------+------+---------+| ||{2, 1}| . | * | * | * || |+------+------+------+------+---------+| +---------------------------------------+ |
the functions displayBlocks and extractBlocks allow the examination of these submatrices.
i9 : displayBlocks F.dd_2 +---+----------------------+----------------------------------+ o9 = | | {2} | {2, 0} | +---+----------------------+----------------------------------+ |{1}|{1} | -x_2 -x_3 0 ||{1} | x_1^2 x_1x_2 x_1x_3 x_1x_4 || | |{1} | x_1 0 -x_3 ||{1} | 0 0 0 0 || | |{1} | 0 x_1 x_2 ||{1} | 0 0 0 0 || +---+----------------------+----------------------------------+ |
i10 : extractBlocks(F.dd_4, {{2,1}},{{3,1},{2,2}}) o10 = {4} | x_2 0 0 x_3 0 0 0 0 0 x_4 0 0 0 {4} | 0 x_2 0 0 x_3 0 0 0 0 0 x_4 0 0 {4} | 0 0 x_2 0 0 x_3 0 0 0 0 0 x_4 0 {4} | -x_1 0 0 0 0 0 x_3 0 0 0 0 0 x_4 {4} | 0 -x_1 0 0 0 0 0 x_3 0 0 0 0 0 {4} | 0 0 -x_1 0 0 0 0 0 x_3 0 0 0 0 {4} | 0 0 0 -x_1 0 0 -x_2 0 0 0 0 0 0 {4} | 0 0 0 0 -x_1 0 0 -x_2 0 0 0 0 0 {4} | 0 0 0 0 0 -x_1 0 0 -x_2 0 0 0 0 {4} | 0 0 0 0 0 0 0 0 0 -x_1 0 0 -x_2 {4} | 0 0 0 0 0 0 0 0 0 0 -x_1 0 0 {4} | 0 0 0 0 0 0 0 0 0 0 0 -x_1 0 ----------------------------------------------------------------------- 0 0 0 0 0 -x_2 -x_3 0 0 0 0 0 0 0 0 0 0 0 0 x_1 0 -x_3 0 0 0 0 0 0 0 0 0 0 0 0 x_1 x_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -x_2 -x_3 0 0 0 0 x_4 0 0 0 0 0 0 0 x_1 0 -x_3 0 0 0 0 x_4 0 0 0 0 0 0 0 x_1 x_2 0 0 0 0 0 x_4 0 0 0 0 0 0 0 0 -x_2 -x_3 0 0 0 0 x_4 0 0 0 0 0 0 0 x_1 0 -x_3 0 0 0 0 x_4 0 0 0 0 0 0 0 x_1 x_2 0 0 -x_3 0 0 0 0 0 0 0 0 0 0 0 -x_2 0 0 -x_3 0 0 0 0 0 0 0 0 0 0 0 -x_2 0 0 -x_3 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 | -x_2 -x_3 0 | x_1 0 -x_3 | 0 x_1 x_2 | 12 30 o10 : Matrix R <--- R |
Jesse Burke, Higher Homotopies and Golod Rings. arXiv:1508.03782v2, October 2015.
Requires standard graded ring, module. Something to fix in a future version
The object burkeResolution is a method function with options.