# extractBlocks -- displays components of a map in a labeled complex

## Synopsis

• Usage:
M = extractBlocks(f, sour)
M = extractBlocks(f, tar, sour)
• Inputs:
• sour, a list, list of ZZ, the label of a summand of the source of f
• sour, a list, list of ZZ, the label of a summand of the source of f OR list of lists of ZZ, specifying multiple summands
• tar, a list, same as sour, but for the target of f
• Outputs:
• M, , the submatrix specified by tar and sour

## Description

The terms of the burkeResolution resolution are direct sums of labeled modules. the function picture shows the symbols associated to the summands, while the function extractBlocks provides the submatrix associated with the summands specified.

 i1 : R = ZZ/101[a,b,c,d]/ideal(a^2, b^2, c^3, d^4) o1 = R o1 : QuotientRing i2 : M = R^1/ideal(a*b,c*d) o2 = cokernel | ab cd | 1 o2 : R-module, quotient of R i3 : F = burkeResolution(M,5) 1 6 17 42 112 295 o3 = R <-- R <-- R <-- R <-- R <-- R 0 1 2 3 4 5 o3 : Complex i4 : picture F.dd_3 +------+---+------+------+ o4 = | |{3}|{3, 0}|{2, 1}| +------+---+------+------+ | {2} | * | u | u | +------+---+------+------+ |{2, 0}| . | . | * | +------+---+------+------+ i5 : extractBlocks(F.dd_3, {2,1}) o5 = {3} | 0 a b 0 0 0 -b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {3} | 0 0 a 0 0 0 -a -b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -c 0 -d3 0 0 0 0 d3 0 | {5} | 0 0 0 0 1 0 0 0 0 0 0 0 -1 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 -1 0 0 0 0 0 0 0 0 0 0 | {5} | 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 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 c2 0 0 0 -d -c2 0 | {6} | 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 | {6} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 | {6} | 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 -1 0 0 0 | {2} | 0 ab 0 cd 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {2} | 0 0 0 0 0 0 0 ab 0 cd 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 ab 0 cd 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ab 0 cd 0 0 | 17 24 o5 : Matrix R <--- R i6 : extractBlocks(F.dd_3,{2,0}, {2,1}) o6 = {2} | 0 ab 0 cd 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {2} | 0 0 0 0 0 0 0 ab 0 cd 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | {3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 ab 0 cd 0 0 0 0 0 0 0 0 | {4} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ab 0 cd 0 0 | 4 24 o6 : Matrix R <--- R i7 : extractBlocks(F.dd_3,{2,0}, {{3,0},{2,1}}) o7 = {2} | 0 0 0 0 0 0 0 ab 0 cd 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 {2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 ab 0 cd 0 0 0 0 0 0 0 0 0 0 0 0 0 {3} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ab 0 cd 0 0 0 0 0 0 0 {4} | 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 ab 0 cd 0 ------------------------------------------------------------------------ 0 | 0 | 0 | 0 | 4 30 o7 : Matrix R <--- R