Let $G$ be a semisimple algebraic group which acts on a polynomial ring $R$ compatibly with the grading. Let $T\subseteq G$ be a maximal torus and assume the variables in $R$ are weight vectors for the action of $T$.
Suppose C is a minimal $G$-equivariant complex of graded free $R$-modules. Suppose the coordinate basis for the module C_i is a homogeneous basis of weight vectors and the weight of the $j$-th basis vector is $w_j$.
Use this function to obtain the decomposition of the modules in C into highest weight representations. The input is the complex C, the index i and the list of weights $\{w_j\}$.
The output is a hash table with keys equal to the indices of the non zero modules of C (within the selected range). The values are themselves hash tables with keys equal to the degrees of the generators of the corresponding free module. Finally the keys of the nested hash tables are tallies whose keys are the highest weights of certain irreducible representations and those representations.
In the following example, the polynomial ring R is the symmetric algebra over $\mathbb{C}^3 \otimes \mathbb{C}^4$, with the natural action of $G = SL_3 (\mathbb{C}) \times SL_4 (\mathbb{C})$. The complex is the minimal free resolution of the ideal of $2\times 2$ minors of a generic $3\times 4$ matrix. We choose to provide the weights for the module in homological dimension zero, so we input 0 for the second argument. The module in homological dimension zero has rank one and $G$ acts trivially on it hence it has only one weight, the zero weight.
i1 : R=QQ[x_(1,1)..x_(3,4)]; |
i2 : G=genericMatrix(R,4,3) o2 = | x_(1,1) x_(2,1) x_(3,1) | | x_(1,2) x_(2,2) x_(3,2) | | x_(1,3) x_(2,3) x_(3,3) | | x_(1,4) x_(2,4) x_(3,4) | 4 3 o2 : Matrix R <--- R |
i3 : I=minors(2,G); o3 : Ideal of R |
i4 : resI=res I 1 18 52 60 34 12 3 o4 = R <-- R <-- R <-- R <-- R <-- R <-- R <-- 0 0 1 2 3 4 5 6 7 o4 : ChainComplex |
i5 : betti resI 0 1 2 3 4 5 6 o5 = total: 1 18 52 60 34 12 3 0: 1 . . . . . . 1: . 18 52 60 24 . . 2: . . . . 10 12 3 o5 : BettiTally |
i6 : D=dynkinType{{"A",2},{"A",3}}; |
i7 : U={{1,0,1,0,0},{1,0,-1,1,0},{1,0,0,-1,1},{1,0,0,0,-1},{-1,1,1,0,0},{-1,1,-1,1,0},{-1,1,0,-1,1},{-1,1,0,0,-1},{0,-1,1,0,0},{0,-1,-1,1,0},{0,-1,0,-1,1},{0,-1,0,0,-1}}; |
i8 : setWeights(R,D,U) o8 = Tally{{1, 0, 1, 0, 0} => 1} o8 : Tally |
i9 : highestWeightsDecomposition(resI,0,{{0,0,0,0,0}}) o9 = HashTable{0 => HashTable{{0} => Tally{{0, 0, 0, 0, 0} => 1}}} 1 => HashTable{{2} => Tally{{0, 1, 0, 1, 0} => 1}} 2 => HashTable{{3} => Tally{{0, 0, 1, 1, 0} => 1}} {1, 1, 0, 0, 1} => 1 3 => HashTable{{4} => Tally{{1, 0, 1, 0, 1} => 1}} {2, 1, 0, 0, 0} => 1 4 => HashTable{{5} => Tally{{2, 0, 1, 0, 0} => 1}} {6} => Tally{{0, 0, 0, 0, 2} => 1} 5 => HashTable{{7} => Tally{{1, 0, 0, 0, 1} => 1}} 6 => HashTable{{8} => Tally{{0, 1, 0, 0, 0} => 1}} o9 : HashTable |
This shows, for example, that the third module in the complex decomposes as $\mathbb{C}^3\otimes S_{2,1,1} \mathbb{C}^4 \oplus S_{3,1}\mathbb{C}^3$ generated in degree 4. Similarly, the fourth module decomposes as $S_2 \mathbb{C}^3 \otimes \mathbb{C}^4$ in degree 5 and $S_{2,2,2} \mathbb{C}^4$ in degree 6. Here $S_\lambda$ denotes the Schur functor corresponding to the partition $\lambda$.
To obtain only a partial decomposition, we may use the optional argument Range.
i10 : highestWeightsDecomposition(resI,0,{{0,0,0,0,0}},Range=>{0,2}) o10 = HashTable{0 => HashTable{{0} => Tally{{0, 0, 0, 0, 0} => 1}}} 1 => HashTable{{2} => Tally{{0, 1, 0, 1, 0} => 1}} 2 => HashTable{{3} => Tally{{0, 0, 1, 1, 0} => 1}} {1, 1, 0, 0, 1} => 1 o10 : HashTable |
When the first free module in the complex has rank one, as when resolving a quotient of R, then the group $G$ acts trivially on it. Then we may use a simplified version of the command with the complex as the only argument.
i11 : highestWeightsDecomposition(resI) o11 = HashTable{0 => HashTable{{0} => Tally{{0, 0, 0, 0, 0} => 1}}} 1 => HashTable{{2} => Tally{{0, 1, 0, 1, 0} => 1}} 2 => HashTable{{3} => Tally{{0, 0, 1, 1, 0} => 1}} {1, 1, 0, 0, 1} => 1 3 => HashTable{{4} => Tally{{1, 0, 1, 0, 1} => 1}} {2, 1, 0, 0, 0} => 1 4 => HashTable{{5} => Tally{{2, 0, 1, 0, 0} => 1}} {6} => Tally{{0, 0, 0, 0, 2} => 1} 5 => HashTable{{7} => Tally{{1, 0, 0, 0, 1} => 1}} 6 => HashTable{{8} => Tally{{0, 1, 0, 0, 0} => 1}} o11 : HashTable |