A complex which has been constructed as a direct sum stores its component complexes.
i1 : S = ZZ/101[a,b,c]; |
i2 : C1 = freeResolution coker vars S
1 3 3 1
o2 = S <-- S <-- S <-- S
0 1 2 3
o2 : Complex
|
i3 : C2 = complex (ideal(a,b,c))
o3 = image | a b c |
0
o3 : Complex
|
i4 : D = C1 ++ C2
3 3 1
o4 = image | 1 0 0 0 | <-- S <-- S <-- S
| 0 a b c |
1 2 3
0
o4 : Complex
|
i5 : L = components D
1 3 3 1
o5 = {S <-- S <-- S <-- S , image | a b c |}
0 1 2 3 0
o5 : List
|
i6 : L_0 === C1 o6 = true |
i7 : L_1 === C2 o7 = true |
i8 : E = (mike => C1) ++ (greg => C2)
3 3 1
o8 = image | 1 0 0 0 | <-- S <-- S <-- S
| 0 a b c |
1 2 3
0
o8 : Complex
|
i9 : components E
1 3 3 1
o9 = {S <-- S <-- S <-- S , image | a b c |}
0 1 2 3 0
o9 : List
|
The names of the component complexes are called indices, and are used to access the relevant inclusion and projection maps.
i10 : indices D
o10 = {0, 1}
o10 : List
|
i11 : D^[0]
1
o11 = 0 : S <--------------- image | 1 0 0 0 | : 0
| 1 0 0 0 | | 0 a b c |
3 3
1 : S <----------------- S : 1
{1} | 1 0 0 |
{1} | 0 1 0 |
{1} | 0 0 1 |
3 3
2 : S <----------------- S : 2
{2} | 1 0 0 |
{2} | 0 1 0 |
{2} | 0 0 1 |
1 1
3 : S <------------- S : 3
{3} | 1 |
o11 : ComplexMap
|
i12 : indices E
o12 = {mike, greg}
o12 : List
|
i13 : E_[greg]
o13 = 0 : image | 1 0 0 0 | <----------------- image | a b c | : 0
| 0 a b c | {0} | 0 0 0 |
{1} | 1 0 0 |
{1} | 0 1 0 |
{1} | 0 0 1 |
o13 : ComplexMap
|