next | previous | forward | backward | up | top | index | toc | home

maps between modules

Maps between free modules are usually specified as matrices, as described in the section on matrices. In this section we cover a few other techniques.

Let's set up a ring, a matrix, and a free module.

i1 : R = ZZ/101[x,y,z];
i2 : f = vars R

o2 = | x y z |

             1       3
o2 : Matrix R  <--- R
i3 : M = R^4

      4
o3 = R

o3 : R-module, free
We can use Module ^ List and Module _ List to produce projection maps to quotient modules and injection maps from submodules corresponding to specified basis vectors.
i4 : M^{0,1}

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

             2       4
o4 : Matrix R  <--- R
i5 : M_{2,3}

o5 = | 0 0 |
     | 0 0 |
     | 1 0 |
     | 0 1 |

             4       2
o5 : Matrix R  <--- R

Natural maps between modules can be obtained with inducedMap; the first argument is the desired target, and the second is the source.

i6 : inducedMap(source f, ker f)

o6 = {1} | 0  -y -z |
     {1} | -z x  0  |
     {1} | y  0  x  |

o6 : Matrix
i7 : inducedMap(coker f, target f)

o7 = | 1 |

o7 : Matrix