Consider the exceptional group of type G2; we denote V(a,b) the highest weight representation of G2 with highest weight aω1 + bω2, where ω1 and ω2 are the fundamental weights for G2 (see Fulton, Harris - Representation Theory, Ch, 22.3 for a construction of the representations appearing in this example). We work over the polynomial ring Sym(V(1,0)), which has a natural action of G2. For lack of a better notation, we index the variables in R by their weight (recall that variables in R must be weight vectors). Consider the maximal ideal m generated by the variables of R. This ideal is clearly stable under the action of G2. Moreover the minimal free resolution of R/I is the Koszul complex over the variables of R (see Eisenbud - Commutative Algebra, Ch. 17).
i1 : R=QQ[x_(-2, 1),x_(-1, 0),x_(-1, 1),x_(0, 0),x_(1,-1),x_(1, 0),x_(2,-1)] o1 = R o1 : PolynomialRing |
i2 : m=ideal vars R; o2 : Ideal of R |
i3 : K=koszul gens m; betti K 0 1 2 3 4 5 6 7 o4 = total: 1 7 21 35 35 21 7 1 0: 1 7 21 35 35 21 7 1 o4 : BettiTally |
Now we define the list of weights of the variables and attach it to the ring.
i5 : W={{-2, 1},{-1, 0},{-1, 1},{0, 0},{1,-1},{1, 0},{2,-1}} o5 = {{-2, 1}, {-1, 0}, {-1, 1}, {0, 0}, {1, -1}, {1, 0}, {2, -1}} o5 : List |
i6 : D=dynkinType{{"G",2}}; setWeights(R,D,W) o7 = Tally{{1, 0} => 1} o7 : Tally |
We can ask to decompose the complex K up to homological degree 3 using the option Range:
i8 : highestWeightsDecomposition(K,Range=>{0,3}) o8 = HashTable{0 => HashTable{{0} => Tally{{0, 0} => 1}}} 1 => HashTable{{1} => Tally{{1, 0} => 1}} 2 => HashTable{{2} => Tally{{0, 1} => 1}} {1, 0} => 1 3 => HashTable{{3} => Tally{{0, 0} => 1}} {1, 0} => 1 {2, 0} => 1 o8 : HashTable |
Then the first half of K is:
R ←V(1,0) ⊗R(-1) ←(V(0,1)⊕V(1,0)) ⊗R(-2) ←(V(0,0)⊕V(1,0)⊕V(2,0)) ⊗R(-3) ←...
The second half can be reconstructed using the duality of the Koszul complex and the fact that all the representations in the first half are self dual.While the quotient ring R/m is isomorphic to C, the trivial representation of G2, it may be more interesting to decompose some graded components of m.
i9 : highestWeightsDecomposition(m,0,4) o9 = HashTable{0 => Tally{} } 1 => Tally{{1, 0} => 1} 2 => Tally{{0, 0} => 1} {2, 0} => 1 3 => Tally{{1, 0} => 1} {3, 0} => 1 4 => Tally{{0, 0} => 1} {2, 0} => 1 {4, 0} => 1 o9 : HashTable |
Since m is generated by the variables, it contains all graded components of R except for the one in degree zero. In particular, the graded components of R and m coincide in degree 1 and higher, which is illustrated up to degree 4 by the computation below.
i10 : highestWeightsDecomposition(R,0,4) o10 = HashTable{0 => Tally{{0, 0} => 1}} 1 => Tally{{1, 0} => 1} 2 => Tally{{0, 0} => 1} {2, 0} => 1 3 => Tally{{1, 0} => 1} {3, 0} => 1 4 => Tally{{0, 0} => 1} {2, 0} => 1 {4, 0} => 1 o10 : HashTable |