Key
schurModule
(schurModule, List, Module)
Headline
creates Schur module from a partition and free module
Usage
schurModule(lambda,E)
Inputs
lambda:List
a list of numbers representing a partition; e.g. {3,1} stands for 2 rows of length 3 and 1.
E:Module
a free module
Outputs
M:Module
The result of application of the Schur functor associated to lambda to E.
Description
Text
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.
Example
M=QQ^3;
scan(4, i-> << i+1 << "-th symmetric power of M = " << schurModule({i+1},M) << endl)
S = schurModule({3,2,1}, M);
v = sum(numgens S, i-> (i+1)*S_i) -- an element of S represented by a vector
printSchurModuleElement(v, S);
Caveat
The partition lambda should be a valid nonempty partition.
SeeAlso
schur