# Module ^ Array -- projection onto summand

## Synopsis

• Operator: ^
• Usage:
M^[i,j,...,k]
• Inputs:
• M, , or
• [i,j,...,k], an array of indices
• Outputs:
• , or

## 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