# FreeOIModuleMap -- the class of all maps between free OI-modules

## Description

This type implements morphisms between free OI-modules. Given free OI-modules $\mathbf{F}$ and $\mathbf{G}$ over an OI-algebra $\mathbf{P}$, a $\mathbf{P}$-linear map $\varphi:\mathbf{F}\to\mathbf{G}$ is determined by the images of the basis elements of $\mathbf{F}$.

To evaluate $\varphi$ on an element of $\mathbf{F}$, use FreeOIModuleMap VectorInWidth.

One obtains FreeOIModuleMap objects through the use of oiRes, as in the below example.

 i1 : P = makePolynomialOIAlgebra(2, x, QQ); i2 : F = makeFreeOIModule(e, {1,2}, P); i3 : installGeneratorsInWidth(F, 3); i4 : b = x_(1,2)*x_(1,1)*e_(3,{2},1)+x_(2,2)*x_(2,1)*e_(3,{1,3},2); i5 : C = oiRes({b}, 2) o5 = 0: (e0, {3}, {-2}) 1: (e1, {5, 5}, {-3, -4}) 2: (e2, {6, 6, 6, 6, 6, 6, 6, 6, 6}, {-5, -4, -3, -5, -4, -5, -4, -3, -2}) o5 : OIResolution i6 : phi = C.dd_1 o6 = Source: (e1, {5, 5}, {-3, -4}) Target: (e0, {3}, {-2}) o6 : FreeOIModuleMap i7 : G = getBasisElements C_1 o7 = {1e1 , 1e1 } 5,{1, 2, 3, 4, 5},1 5,{1, 2, 3, 4, 5},2 o7 : List i8 : phi G#0 o8 = -x e0 + x e0 + x e0 - x e0 2,2 5,{1, 3, 5},1 2,2 5,{1, 3, 4},1 2,3 5,{1, 2, 5},1 2,3 5,{1, 2, 4},1 10 o8 : (QQ[x , x , x , x , x , x , x , x , x , x ]) in width 5, degrees {2, 2, 2, 2, 2, 2, 2, 2, 2, 2} 2,5 2,4 2,3 2,2 2,1 1,5 1,4 1,3 1,2 1,1 i9 : phi G#1 o9 = x x e0 - x x e0 - x x e0 + x x e0 2,3 1,1 5,{2, 4, 5},1 2,4 1,1 5,{2, 3, 5},1 2,3 1,2 5,{1, 4, 5},1 2,4 1,2 5,{1, 3, 5},1 10 o9 : (QQ[x , x , x , x , x , x , x , x , x , x ]) in width 5, degrees {2, 2, 2, 2, 2, 2, 2, 2, 2, 2} 2,5 2,4 2,3 2,2 2,1 1,5 1,4 1,3 1,2 1,1

## Functions and methods returning an object of class FreeOIModuleMap :

• getSchreyerMap -- get the Schreyer map of a free OI-module if it exists

## For the programmer

The object FreeOIModuleMap is a type, with ancestor classes HashTable < Thing.