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

# displayBlockDiff -- Shows natural decomposition of a map in the Tate resolution

## Synopsis

• Usage:
displayBlockDiff (A, n)
displayBlockDiff (A, LA, LA)
displayBlockDiff (A, L, L)
displayBlockDiff (A, V)
• Inputs:
• A, an instance of the type DGAlgebra, of the sort produced by acyclicClosure or killCycles
• n, an integer,
• LA, an array, of the form [L] where L is a list representing a multi-index in the complex
• L, a list, of indices as above
• V, , a list, array or sequence representing a (single) multi-index in the complex defined by A

## Description

For example, consder the first five steps in the resolution of the residue field in the following example:

 i1 : R = QQ[x,y,z]/(ideal(x^3,y^3,z^3,x*y*z)) o1 = R o1 : QuotientRing i2 : G = betti res (coker vars R, LengthLimit => 5) 0 1 2 3 4 5 o2 = total: 1 3 7 16 37 86 0: 1 3 3 1 . . 1: . . 4 12 12 4 2: . . . 3 22 48 3: . . . . 3 33 4: . . . . . 1 o2 : BettiTally

It is a free graded-commutative divided power algebra on generator of each degree starting with 1. We can compute the beginning of the complex corresponding to the first 3 factors with as

 i3 : A = acyclicClosure(R,EndDegree => 2) o3 = {Ring => R } Underlying algebra => R[T ..T ] 1 10 2 2 2 2 Differential => {x, y, z, y*z*T , x T , y T , z T , z T , y*z*T , x*z*T } 1 1 2 3 4 5 6 o3 : DGAlgebra i4 : F = toComplex(A, 5); i5 : betti F 0 1 2 3 4 5 o5 = total: 1 3 7 16 31 55 0: 1 3 3 1 . . 1: . . 4 12 12 4 2: . . . 3 19 39 3: . . . . . 12 o5 : BettiTally i6 : betti F 0 1 2 3 4 5 o6 = total: 1 3 7 16 31 55 0: 1 3 3 1 . . 1: . . 4 12 12 4 2: . . . 3 19 39 3: . . . . . 12 o6 : BettiTally

Since we gave acyclicClosure the EndDegree 2, the complex produced is exact up to step 2; that is betti F and betti G agree up to the column 3. There are 3 chunks of generators in A, of homological degrees 1,2,3.

From the betti table of F we see the three generators of the exterior algebra K as the linear part of the resolution. The second strand, 4,12,12,4 is the tensor product of K with the 4 generators of A that have homological degree 2 and correspond to the 4 generators of I; thus they have internal degree 3. We also see that A has three generators in homological degree 3 and internal degree 5. K multiplied by these generators accounts for 3,9,9 of the 3rd strand, while the symmetric square of the 4 generators of homological degree 2, account for 0,10,0 and the product of these with the generators of degree 1 account for the remaining 0,0,30. Finally the 12 in the 4th row represents the product of the 4 generators of A in homological degree with the 3 in degree 3.

The native display of the differentials of this complex does not distinguish these pieces, but displayBlockDiff allows one to look at them in various ways:

 i7 : F.dd_3 o7 = {2} | z 0 yz 0 0 x2 0 -y2 0 0 0 0 0 0 0 0 | {2} | -y 0 0 yz 0 0 x2 0 0 0 -z2 0 0 0 0 0 | {2} | x 0 0 0 0 0 0 0 0 y2 0 -z2 0 0 0 0 | {3} | 0 x y z 0 0 0 0 0 0 0 0 0 z2 0 0 | {3} | 0 0 0 0 x y z 0 0 0 0 0 0 0 yz 0 | {3} | 0 0 0 0 0 0 0 x y z 0 0 0 0 0 xz | {3} | 0 0 0 0 0 0 0 0 0 0 x y z 0 0 0 | 7 16 o7 : Matrix R <-- R i8 : displayBlockDiff(A,3) +---------+----------------+------------------------------------------+----------+ o8 = | . | {0, 0, 3} | {1, 2, 0} | {3, 0, 0}| +---------+----------------+------------------------------------------+----------+ |{0, 2, 0}|{3} | z2 0 0 || {3} | x 0 0 0 y 0 0 0 z 0 0 0 | | 0 | | |{3} | 0 yz 0 || {3} | 0 x 0 0 0 y 0 0 0 z 0 0 | | | | |{3} | 0 0 xz || {3} | 0 0 x 0 0 0 y 0 0 0 z 0 | | | | |{3} | 0 0 0 || {3} | 0 0 0 x 0 0 0 y 0 0 0 z | | | +---------+----------------+------------------------------------------+----------+ |{2, 0, 0}| 0 |{2} | 0 0 -y2 0 yz x2 0 0 0 0 0 0 ||{2} | z || | | |{2} | 0 0 0 -z2 0 0 0 0 yz x2 0 0 ||{2} | -y || | | |{2} | 0 0 0 0 0 0 0 -z2 0 0 y2 0 ||{2} | x || +---------+----------------+------------------------------------------+----------+

Here the triples of numbers represent the number of factors from the generators of each of the three chunks of variables: the first index gives the number from the Koszul complex, the second from the 4 variable in homological degree 2 and the third the number from the 3 variables of homological degree 3. Thus the sum of the three indices is the homological degree. The sources of the blocks are listed on the top row, the targets are given by the columns. We can see the lists of indices of the source and target with Example indices source blockDiff(A,5) indices target blockDiff(A,5)

We can extract one or several blocks from F.dd_3 as follows:

 i9 : R = QQ[x,y,z]/(ideal(x^3,y^3,z^3,x*y*z)) o9 = R o9 : QuotientRing i10 : A = acyclicClosure(R,EndDegree => 2) o10 = {Ring => R } Underlying algebra => R[T ..T ] 1 10 2 2 2 2 Differential => {x, y, z, y*z*T , x T , y T , z T , z T , y*z*T , x*z*T } 1 1 2 3 4 5 6 o10 : DGAlgebra

We can specify a lists of source and target degrees, either as lists representing an index for th source and an index for the target:

 i11 : displayBlockDiff(A, {0,2,3}, {0,4,0}) o11 = {6} | z2 0 0 0 0 0 0 0 0 0 0 0 | {6} | 0 yz 0 z2 0 0 0 0 0 0 0 0 | {6} | 0 0 xz 0 0 0 z2 0 0 0 0 0 | {6} | 0 0 0 0 0 0 0 0 0 z2 0 0 | {6} | 0 0 0 0 yz 0 0 0 0 0 0 0 | {6} | 0 0 0 0 0 xz 0 yz 0 0 0 0 | {6} | 0 0 0 0 0 0 0 0 0 0 yz 0 | {6} | 0 0 0 0 0 0 0 0 xz 0 0 0 | {6} | 0 0 0 0 0 0 0 0 0 0 0 xz | {6} | 0 0 0 0 0 0 0 0 0 0 0 0 | 10 12 o11 : Matrix R <-- R

or as a pair of arrays of such lists

 i12 : displayBlockDiff(A, [{0,2,3}], [{1,0,3},{0,4,0}]) o12 = {6} | yz 0 0 x2 0 0 0 0 0 0 0 0 | {6} | 0 yz 0 0 x2 0 0 0 0 0 0 0 | {6} | 0 0 yz 0 0 x2 0 0 0 0 0 0 | {6} | 0 0 0 0 0 0 y2 0 0 0 0 0 | {6} | 0 0 0 0 0 0 0 y2 0 0 0 0 | {6} | 0 0 0 0 0 0 0 0 y2 0 0 0 | {6} | 0 0 0 0 0 0 0 0 0 z2 0 0 | {6} | 0 0 0 0 0 0 0 0 0 0 z2 0 | {6} | 0 0 0 0 0 0 0 0 0 0 0 z2 | {6} | z2 0 0 0 0 0 0 0 0 0 0 0 | {6} | 0 yz 0 z2 0 0 0 0 0 0 0 0 | {6} | 0 0 xz 0 0 0 z2 0 0 0 0 0 | {6} | 0 0 0 0 0 0 0 0 0 z2 0 0 | {6} | 0 0 0 0 yz 0 0 0 0 0 0 0 | {6} | 0 0 0 0 0 xz 0 yz 0 0 0 0 | {6} | 0 0 0 0 0 0 0 0 0 0 yz 0 | {6} | 0 0 0 0 0 0 0 0 xz 0 0 0 | {6} | 0 0 0 0 0 0 0 0 0 0 0 xz | {6} | 0 0 0 0 0 0 0 0 0 0 0 0 | 19 12 o12 : Matrix R <-- R

or look at all the blocks with a given target summand with:

 i13 : displayBlockDiff(A, (1,0,3) ) o13 = {6} | yz 0 0 x2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 {6} | 0 yz 0 0 x2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 {6} | 0 0 yz 0 0 x2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 {6} | 0 0 0 0 0 0 y2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 {6} | 0 0 0 0 0 0 0 y2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 {6} | 0 0 0 0 0 0 0 0 y2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 {6} | 0 0 0 0 0 0 0 0 0 z2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 {6} | 0 0 0 0 0 0 0 0 0 0 z2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 {6} | 0 0 0 0 0 0 0 0 0 0 0 z2 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 -y 0 0 -z 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 -y 0 0 -z 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 -y 0 0 -z 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x 0 0 0 0 0 -z 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x 0 0 0 0 0 -z 0 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x 0 0 0 0 0 -z 0 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x 0 0 y 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 0 0 y 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 0 0 y 0 0 0 0 | 9 55 o13 : Matrix R <-- R