next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Complexes :: length(Complex)

length(Complex) -- length of a complex

Synopsis

Description

The length of a complex is the difference between the highest index of a non-zero object and the lowest index of a non-zero object.

Typically, it counts the number of non-zero differentials, e.g. in a free resolution.

i1 : S = ZZ/101[a,b,c,d];
i2 : C1 = freeResolution coker vars S

      1      4      6      4      1
o2 = S  <-- S  <-- S  <-- S  <-- S
                                  
     0      1      2      3      4

o2 : Complex
i3 : length C1

o3 = 4
i4 : C2 = C1[5]

      1      4      6      4      1
o4 = S  <-- S  <-- S  <-- S  <-- S
                                  
     -5     -4     -3     -2     -1

o4 : Complex
i5 : length C2

o5 = 4
i6 : C3 = C1 ++ C1[6]

      1      4      6      4      1             1      4      6      4      1
o6 = S  <-- S  <-- S  <-- S  <-- S  <-- 0  <-- S  <-- S  <-- S  <-- S  <-- S
                                                                            
     -6     -5     -4     -3     -2     -1     0      1      2      3      4

o6 : Complex
i7 : length C3

o7 = 10

This function always prunes the input complex, so might involve computation.

i8 : M1 = S^1/(a*b, c*d, a*c, b*c)

o8 = cokernel | ab cd ac bc |

                            1
o8 : S-module, quotient of S
i9 : M2 = S^1/(a*b, c*d, a*c)

o9 = cokernel | ab cd ac |

                            1
o9 : S-module, quotient of S
i10 : C4 = freeResolution M1

       1      4      4      1
o10 = S  <-- S  <-- S  <-- S
                            
      0      1      2      3

o10 : Complex
i11 : C5 = freeResolution M2

       1      3      2
o11 = S  <-- S  <-- S
                     
      0      1      2

o11 : Complex
i12 : f = map(M1, M2, 1)

o12 = | 1 |

o12 : Matrix
i13 : C6 = coker extend(C4, C5, matrix f)

                                                                              1
o13 = cokernel | 1 | <-- cokernel {2} | 1 0 0 | <-- cokernel {3} | 1 0 | <-- S
                                  {2} | 0 1 0 |              {3} | 0 0 |      
      0                           {2} | 0 0 0 |              {3} | 0 1 |     3
                                  {2} | 0 0 1 |              {3} | 0 0 |
                                                     
                         1                          2

o13 : Complex
i14 : concentration C6

o14 = (0, 3)

o14 : Sequence
i15 : length C6

o15 = 2
i16 : prune C6

       1      2      1
o16 = S  <-- S  <-- S
                     
      1      2      3

o16 : Complex
i17 : concentration prune C6

o17 = (1, 3)

o17 : Sequence

See also