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.