This is the basic construction for a LabeledModule. Given a free module $M$ of rank $r$, this constructs a labeled module with basis labeled by $\{0,..,r-1\}$ and no underlying modules.
i1 : S = ZZ/101[a,b,c]; |
i2 : E = labeledModule S^3 3 o2 = S o2 : free S-module with labeled basis |
i3 : basisList E o3 = {0, 1, 2} o3 : List |
i4 : underlyingModules E o4 = {} o4 : List |
i5 : module E 3 o5 = S o5 : S-module, free |
i6 : rank E o6 = 3 |
For technical reasons, it is often convenient to construct a rank $1$ free module whose generator is labeled by the empty set. This is constructed by labeledModule S.
i7 : S = ZZ/101[a,b,c]; |
i8 : F = labeledModule S 1 o8 = S o8 : free S-module with labeled basis |
i9 : basisList F o9 = {{}} o9 : List |
i10 : underlyingModules F o10 = {} o10 : List |
i11 : module F 1 o11 = S o11 : S-module, free |
i12 : E = labeledModule S^1 1 o12 = S o12 : free S-module with labeled basis |
i13 : basisList E o13 = {0} o13 : List |
i14 : underlyingModules E o14 = {} o14 : List |
The object labeledModule is a method function.