Macaulay2 » Documentation
Packages » Macaulay2Doc :: Module ^ Array
next | previous | forward | backward | up | index | toc

Module ^ Array -- projection onto summand

Synopsis

Description

The module M should be a direct sum, and the result is the map obtained by projection onto the sum of the components numbered or named i, j, ..., k. Free modules are regarded as direct sums of modules.

i1 : M = ZZ^2 ++ ZZ^3

       5
o1 = ZZ

o1 : ZZ-module, free
i2 : M^[0]

o2 = | 1 0 0 0 0 |
     | 0 1 0 0 0 |

              2       5
o2 : Matrix ZZ  <-- ZZ
i3 : M^[1]

o3 = | 0 0 1 0 0 |
     | 0 0 0 1 0 |
     | 0 0 0 0 1 |

              3       5
o3 : Matrix ZZ  <-- ZZ
i4 : M^[1,0]

o4 = | 0 0 1 0 0 |
     | 0 0 0 1 0 |
     | 0 0 0 0 1 |
     | 1 0 0 0 0 |
     | 0 1 0 0 0 |

              5       5
o4 : Matrix ZZ  <-- ZZ

If the components have been given names (see directSum), use those instead.
i5 : R = QQ[a..d];
i6 : M = (a => image vars R) ++ (b => coker vars R)

o6 = subquotient (| a b c d 0 |, | 0 0 0 0 |)
                  | 0 0 0 0 1 |  | a b c d |

                               2
o6 : R-module, subquotient of R
i7 : M^[a]

o7 = {1} | 1 0 0 0 0 |
     {1} | 0 1 0 0 0 |
     {1} | 0 0 1 0 0 |
     {1} | 0 0 0 1 0 |

o7 : Matrix
i8 : isWellDefined oo

o8 = true
i9 : M^[b]

o9 = | 0 0 0 0 1 |

o9 : Matrix
i10 : isWellDefined oo

o10 = true
i11 : isWellDefined(M^{2})

o11 = false

This works the same way for chain complexes.
i12 : C = res coker vars R

       1      4      6      4      1
o12 = R  <-- R  <-- R  <-- R  <-- R  <-- 0
                                          
      0      1      2      3      4      5

o12 : ChainComplex
i13 : D = (a=>C) ++ (b=>C)

       2      8      12      8      2
o13 = R  <-- R  <-- R   <-- R  <-- R  <-- 0
                                           
      0      1      2       3      4      5

o13 : ChainComplex
i14 : D^[a]

           1               2
o14 = 0 : R  <----------- R  : 0
                | 1 0 |

           4                               8
      1 : R  <--------------------------- R  : 1
                {1} | 1 0 0 0 0 0 0 0 |
                {1} | 0 1 0 0 0 0 0 0 |
                {1} | 0 0 1 0 0 0 0 0 |
                {1} | 0 0 0 1 0 0 0 0 |

           6                                       12
      2 : R  <----------------------------------- R   : 2
                {2} | 1 0 0 0 0 0 0 0 0 0 0 0 |
                {2} | 0 1 0 0 0 0 0 0 0 0 0 0 |
                {2} | 0 0 1 0 0 0 0 0 0 0 0 0 |
                {2} | 0 0 0 1 0 0 0 0 0 0 0 0 |
                {2} | 0 0 0 0 1 0 0 0 0 0 0 0 |
                {2} | 0 0 0 0 0 1 0 0 0 0 0 0 |

           4                               8
      3 : R  <--------------------------- R  : 3
                {3} | 1 0 0 0 0 0 0 0 |
                {3} | 0 1 0 0 0 0 0 0 |
                {3} | 0 0 1 0 0 0 0 0 |
                {3} | 0 0 0 1 0 0 0 0 |

           1                   2
      4 : R  <--------------- R  : 4
                {4} | 1 0 |

      5 : 0 <----- 0 : 5
               0

o14 : ChainComplexMap

See also

Ways to use this method: