# schurModule -- creates Schur module from a partition and free module

## Synopsis

• Usage:
schurModule(lambda,E)
• Inputs:
• lambda, a list, a list of numbers representing a partition; e.g. {3,1} stands for 2 rows of length 3 and 1.
• E, , a free module
• Outputs:
• M, , The result of application of the Schur functor associated to lambda to E.

## Description

Applies the Schur functor associated to lambda to the free module E. For a detailed definition of the Schur module see p.106 of Fulton "Young Tableaux".

The resulting M comes with cached data M.cache.Schur = {f, finv, AT, ST} where

{"f is a map from exterior_mu E to M;", "finv is a map from M to exterior_mu E;", "AT is a hash table of all tableaux, whose entries increase in every column;", "ST is a hash table of all standard tableaux (tableaux in AT, whose entries nondecrease in every row)." }

Tableaux are represented with objects of class Filling, which is a double list whose entries are lists giving the fillings of the corresponding columns.

 i1 : M=QQ^3; i2 : scan(4, i-> << i+1 << "-th symmetric power of M = " << schurModule({i+1},M) << endl) 3 1-th symmetric power of M = QQ 6 2-th symmetric power of M = QQ 10 3-th symmetric power of M = QQ 15 4-th symmetric power of M = QQ i3 : S = schurModule({3,2,1}, M); i4 : v = sum(numgens S, i-> (i+1)*S_i) -- an element of S represented by a vector o4 = | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | 8 o4 : QQ i5 : printSchurModuleElement(v, S); +-+-+-+ +-+-+-+ +-+-+-+ +-+-+-+ +-+-+-+ +-+-+-+ +-+-+-+ +-+-+-+ 1*|0|0|0| 2*|0|0|1| 3*|0|0|2| 4*|0|0|0| 5*|0|0|1| 6*|0|0|2| 7*|0|1|1| 8*|0|1|2| |1|1| | |1|1| | |1|1| | |1|2| | |1|2| | |1|2| | |1|2| | |1|2| | |2| | | |2| | | |2| | | |2| | | |2| | | |2| | | |2| | | |2| | | +-+-+-+ +-+-+-+ +-+-+-+ +-+-+-+ +-+-+-+ +-+-+-+ +-+-+-+ +-+-+-+

## Caveat

The partition lambda should be a valid nonempty partition.