The direct sum is an n-ary operator with projection and inclusion maps from each component satisfying appropriate identities.
One can access these maps as follows.
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 : D_[0]
1
o5 = 0 : image | 1 0 0 0 | <------------- S : 0
| 0 a b c | {0} | 1 |
{1} | 0 |
{1} | 0 |
{1} | 0 |
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 |
o5 : ComplexMap
|
i6 : D_[1]
o6 = 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 |
o6 : ComplexMap
|
i7 : D^[0] * D_[0] == 1 o7 = true |
i8 : D^[1] * D_[1] == 1 o8 = true |
i9 : D^[0] * D_[1] == 0 o9 = true |
i10 : D^[1] * D_[0] == 0 o10 = true |
i11 : D_[0] * D^[0] + D_[1] * D^[1] == 1 o11 = true |
The default names for the components are the non-negative integers. However, one can choose any name.
i12 : E = (mike => C1) ++ (greg => C2)
3 3 1
o12 = image | 1 0 0 0 | <-- S <-- S <-- S
| 0 a b c |
1 2 3
0
o12 : Complex
|
i13 : E_[mike]
1
o13 = 0 : image | 1 0 0 0 | <------------- S : 0
| 0 a b c | {0} | 1 |
{1} | 0 |
{1} | 0 |
{1} | 0 |
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 |
o13 : ComplexMap
|
i14 : E_[greg]
o14 = 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 |
o14 : ComplexMap
|
i15 : E^[mike] * E_[mike] == 1 o15 = true |
i16 : E^[greg] * E_[greg] == 1 o16 = true |
i17 : E^[mike] * E_[greg] == 0 o17 = true |
i18 : E^[greg] * E_[mike] == 0 o18 = true |
i19 : E_[mike] * E^[mike] + E_[greg] * E^[greg] == 1 o19 = true |
One can also access inclusion and projection maps of sub-direct sums.
i20 : F = directSum(C1, C2, (complex S^13)[-4])
3 3 1 13
o20 = image | 1 0 0 0 | <-- S <-- S <-- S <-- S
| 0 a b c |
1 2 3 4
0
o20 : Complex
|
i21 : F^[0,1]
o21 = 0 : image | 1 0 0 0 | <------------------- image | 1 0 0 0 | : 0
| 0 a b c | {0} | 1 0 0 0 | | 0 a b c |
{1} | 0 1 0 0 |
{1} | 0 0 1 0 |
{1} | 0 0 0 1 |
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 |
13
4 : 0 <----- S : 4
0
o21 : ComplexMap
|
i22 : F_[0,2]
1
o22 = 0 : image | 1 0 0 0 | <------------- S : 0
| 0 a b c | {0} | 1 |
{1} | 0 |
{1} | 0 |
{1} | 0 |
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 |
13 13
4 : S <--------------------------------- S : 4
| 1 0 0 0 0 0 0 0 0 0 0 0 0 |
| 0 1 0 0 0 0 0 0 0 0 0 0 0 |
| 0 0 1 0 0 0 0 0 0 0 0 0 0 |
| 0 0 0 1 0 0 0 0 0 0 0 0 0 |
| 0 0 0 0 1 0 0 0 0 0 0 0 0 |
| 0 0 0 0 0 1 0 0 0 0 0 0 0 |
| 0 0 0 0 0 0 1 0 0 0 0 0 0 |
| 0 0 0 0 0 0 0 1 0 0 0 0 0 |
| 0 0 0 0 0 0 0 0 1 0 0 0 0 |
| 0 0 0 0 0 0 0 0 0 1 0 0 0 |
| 0 0 0 0 0 0 0 0 0 0 1 0 0 |
| 0 0 0 0 0 0 0 0 0 0 0 1 0 |
| 0 0 0 0 0 0 0 0 0 0 0 0 1 |
o22 : ComplexMap
|