In contrast to complex(HashTable) and complex(List), this constructor provides a convenient method to construct a complex with only one non-zero component.
We illustrate this with a free module.
i1 : S = ZZ/101[a..d] o1 = S o1 : PolynomialRing |
i2 : C0 = complex S^2
2
o2 = S
0
o2 : Complex
|
i3 : f = dd^C0 o3 = 0 o3 : ComplexMap |
i4 : source f, target f
2 2
o4 = (S , S )
0 0
o4 : Sequence
|
i5 : f == 0 o5 = true |
i6 : isWellDefined C0 o6 = true |
i7 : C0 == 0 o7 = false |
i8 : length C0 o8 = 0 |
i9 : C1 = complex(S^2, Base=>3)
2
o9 = S
3
o9 : Complex
|
i10 : C1 == C0[-3] o10 = true |
i11 : C1_3
2
o11 = S
o11 : S-module, free
|
i12 : C1_0 o12 = 0 o12 : S-module |
A ring or an ideal will be converted to a module first.
i13 : C2 = complex S
1
o13 = S
0
o13 : Complex
|
i14 : I = ideal(a^2-b, c^3)
2 3
o14 = ideal (a - b, c )
o14 : Ideal of S
|
i15 : C3 = complex I
o15 = image | a2-b c3 |
0
o15 : Complex
|
i16 : C4 = complex (S/I)
/ S \1
o16 = |------------|
| 2 3 |
\(a - b, c )/
0
o16 : Complex
|
i17 : (ring C3, ring C4)
S
o17 = (S, ------------)
2 3
(a - b, c )
o17 : Sequence
|
The zero complex over a ring S is most conveniently created by giving the zero module.
i18 : C5 = complex S^0
o18 = 0
0
o18 : Complex
|
i19 : C5 == 0 o19 = true |
i20 : dd^C5 == 0 o20 = true |
i21 : C5_0 o21 = 0 o21 : S-module |