A labeled module F is a free module together with two additional pieces of data: a basisList which corresponds to the basis of F, and a list of underlyingModules which were used in the construction of F. The constructor labeledModule can be used to construct a labeled module from a free module. The call labeledModule E, where E is a free module, returns a labeled module with basisList {1,…, rank E} and underlyingModules {E}.ß
For example if A,B are of type LabeledModule, then F=tensorProduct(A,B) constructs the LabeledModule F=A⊗B with basisList equal to the list of pairs {a,b} where a belongs to the basis list of A and b belongs to the basis list of b. The list of underlyingModules of F is {A,B}.
The object LabeledModule is a type, with ancestor classes HashTable < Thing.