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.

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.

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 |

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} | -y 0 -z | {1} | x -z 0 | {1} | 0 y x | o6 : Matrix |

i7 : inducedMap(coker f, target f) o7 = | 1 | o7 : Matrix |