One of the key features of a labeled module of rank $r$ is that the basis can be labeled by any list of cardinality $r$. This is particularly convenient when working with tensor products, symmetric powers, and exterior powers. For instance, if $A$ is a labeled module with basis labeled by $\{0,\dots, r-1\}$ then it is natural to think of $\wedge^2 A$ as a labeled module with a basis labeled by elements of the lists $$ \{(i,j)| 0\leq i<j\leq r-1\}. $$ When you use apply the functions tensorProduct, symmetricPower and exteriorPower to a labeled module, the output is a labeled module with a natural basis list.
i1 : S=ZZ/101[x,y,z]; |
i2 : A=labeledModule(S^2); o2 : free S-module with labeled basis |
i3 : B=labeledModule(S^4); o3 : free S-module with labeled basis |
i4 : F=A**B 8 o4 = S o4 : free S-module with labeled basis |
i5 : basisList(F) o5 = {{0, 0}, {0, 1}, {0, 2}, {0, 3}, {1, 0}, {1, 1}, {1, 2}, {1, 3}} o5 : List |
i6 : G=exteriorPower(2,B) 6 o6 = S o6 : free S-module with labeled basis |
i7 : basisList(G) o7 = {{0, 1}, {0, 2}, {1, 2}, {0, 3}, {1, 3}, {2, 3}} o7 : List |
The object basisList is a method function.