# makeFreeOIModule -- make a FreeOIModule object

## Synopsis

• Usage:
makeFreeOIModule(e,L,P)
• Inputs:
• Optional inputs:
• DegreeShifts => ..., default value null
• OIMonomialOrder => ..., default value Lex
• Outputs:

## Description

Makes a free OI-module of the form $\bigoplus_{i=1}^s\mathbf{F}^{\text{OI}, d_i}$ over the PolynomialOIAlgebra object P with $L=\{d_1,\ldots,d_s\}$ and basis symbol e.

The DegreeShifts option is used to specify a shift of grading. This option must be set to either null for no shifts, or a list of integers describing the desired shifts.

The OIMonomialOrder option must be set to either Lex, for the lexicographic order, or a list of elements of some free OI-module for the Schreyer order. See below for examples.

## Example 1: Lex

 i1 : P = makePolynomialOIAlgebra(2, x, QQ); i2 : F = makeFreeOIModule(e, {1,1,2}, P, DegreeShifts => {3,2,1}) o2 = Basis symbol: e Basis element widths: {1, 1, 2} Degree shifts: {3, 2, 1} Polynomial OI-algebra: (2, x, QQ, RowUpColUp) Monomial order: Lex o2 : FreeOIModule

## Example 2: Schreyer

 i3 : F = makeFreeOIModule(e, {1,1}, P); i4 : installGeneratorsInWidth(F, 2); i5 : b = x_(1,1)*e_(2,{1},1)+x_(2,1)*e_(2,{1},2); i6 : G = makeFreeOIModule(d, {2}, P, DegreeShifts => {-degree b}, OIMonomialOrder => {b}) o6 = Basis symbol: d Basis element widths: {2} Degree shifts: {-1} Polynomial OI-algebra: (2, x, QQ, RowUpColUp) Monomial order: Schreyer o6 : FreeOIModule

## Ways to use makeFreeOIModule :

• makeFreeOIModule(Symbol,List,PolynomialOIAlgebra)

## For the programmer

The object makeFreeOIModule is .