next | previous | forward | backward | up | top | index | toc | Macaulay2 website
BettiCharacters > Example 1

Example 1 -- Specht ideals / subspace arrangements

In this example, we identify the Betti characters of the Specht ideal associated with the partition (4,3). The action of the symmetric group on the resolution of this ideal is described in K. Shibata, K. Yanagawa - Minimal free resolutions of the Specht ideals of shapes (n−2,2) and (d,d,1). The same ideal is also the ideal of the 4-equals subspace arrangement in a 7-dimensional affine space. This point of view is explored in C. Berkesch, S. Griffeth, S. Sam - Jack polynomials as fractional quantum Hall states and the Betti numbers of the (k+1)-equals ideal. where the action of the symmetric group on the resolution is also described.

We begin by constructing the ideal using the function spechtPolynomials provided by the package SpechtModule. We compute a minimal free resolution and its Betti table.

i1 : R=QQ[x_1..x_7]

o1 = R

o1 : PolynomialRing
i2 : needsPackage "SpechtModule"

o2 = SpechtModule

o2 : Package
i3 : I=ideal values spechtPolynomials(new Partition from {5,2},R)

o3 = ideal (x x  - x x  - x x  + x x , x x  - x x  - x x  + x x , x x  - x x 
             1 2    2 3    1 7    3 7   1 3    2 3    1 7    2 7   1 2    2 4
     ------------------------------------------------------------------------
     - x x  + x x , x x  - x x  - x x  + x x , x x  - x x  - x x  + x x ,
        1 6    4 6   1 2    2 5    1 7    5 7   1 2    2 4    1 5    4 5 
     ------------------------------------------------------------------------
     x x  - x x  - x x  + x x , x x  - x x  - x x  + x x , x x  - x x  - x x 
      1 2    2 6    1 7    6 7   1 2    2 3    1 6    3 6   1 3    2 3    1 6
     ------------------------------------------------------------------------
     + x x , x x  - x x  - x x  + x x , x x  - x x  - x x  + x x , x x  -
        2 6   1 3    2 3    1 4    2 4   1 3    2 3    1 5    2 5   1 2  
     ------------------------------------------------------------------------
     x x  - x x  + x x , x x  - x x  - x x  + x x , x x  - x x  - x x  +
      2 4    1 7    4 7   1 2    2 5    1 6    5 6   1 2    2 3    1 5  
     ------------------------------------------------------------------------
     x x , x x  - x x  - x x  + x x )
      3 5   1 2    2 3    1 4    3 4

o3 : Ideal of R
i4 : RI=res I

      1      14      35      35      14      1
o4 = R  <-- R   <-- R   <-- R   <-- R   <-- R  <-- 0
                                                    
     0      1       2       3       4       5      6

o4 : ChainComplex
i5 : betti RI

            0  1  2  3  4 5
o5 = total: 1 14 35 35 14 1
         0: 1  .  .  .  . .
         1: . 14 35 35 14 .
         2: .  .  .  .  . 1

o5 : BettiTally

Next we set up the group action on the resolution. The group is the symmetric group on 7 elements. Its conjugacy classes are determined by cycle types, which are in bijection with partitions of 7. Once the action is set up, we compute the Betti characters.

i6 : G = for p in partitions(7) list (
         L := gens R;
         g := for u in p list (
             l := take(L,u);
             L = drop(L,u);
             rotate(1,l)
             );
         matrix { flatten g }
         )

o6 = {| x_2 x_3 x_4 x_5 x_6 x_7 x_1 |, | x_2 x_3 x_4 x_5 x_6 x_1 x_7 |, | x_2
     ------------------------------------------------------------------------
     x_3 x_4 x_5 x_1 x_7 x_6 |, | x_2 x_3 x_4 x_5 x_1 x_6 x_7 |, | x_2 x_3
     ------------------------------------------------------------------------
     x_4 x_1 x_6 x_7 x_5 |, | x_2 x_3 x_4 x_1 x_6 x_5 x_7 |, | x_2 x_3 x_4
     ------------------------------------------------------------------------
     x_1 x_5 x_6 x_7 |, | x_2 x_3 x_1 x_5 x_6 x_4 x_7 |, | x_2 x_3 x_1 x_5
     ------------------------------------------------------------------------
     x_4 x_7 x_6 |, | x_2 x_3 x_1 x_5 x_4 x_6 x_7 |, | x_2 x_3 x_1 x_4 x_5
     ------------------------------------------------------------------------
     x_6 x_7 |, | x_2 x_1 x_4 x_3 x_6 x_5 x_7 |, | x_2 x_1 x_4 x_3 x_5 x_6
     ------------------------------------------------------------------------
     x_7 |, | x_2 x_1 x_3 x_4 x_5 x_6 x_7 |, | x_1 x_2 x_3 x_4 x_5 x_6 x_7 |}

o6 : List
i7 : A=action(RI,G)

o7 = ChainComplex with 15 actors

o7 : ActionOnComplex
i8 : elapsedTime c=character A
 -- 1.25811 seconds elapsed

o8 = HashTable{0 => GradedCharacter{{0} => Character{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}}        }
               1 => GradedCharacter{{2} => Character{0, -1, 1, -1, 0, 0, 0, -1, 2, 0, 2, 2, 2, 6, 14}}
               2 => GradedCharacter{{3} => Character{0, 1, 0, 0, -1, 1, -1, -1, -1, -1, -1, 1, -1, 5, 35}}
               3 => GradedCharacter{{4} => Character{0, -1, 0, 0, 1, 1, 1, -1, -1, 1, -1, -1, -1, -5, 35}}
               4 => GradedCharacter{{5} => Character{0, 1, -1, -1, 0, 0, 0, -1, 2, 0, 2, -2, 2, -6, 14}}
               5 => GradedCharacter{{7} => Character{1, -1, -1, 1, -1, 1, -1, 1, 1, -1, 1, -1, 1, -1, 1}}

o8 : HashTable

To make sense of these characters we decompose them against the character table of the symmetric group, which can be computed using the function characterTable provided by the package SpechtModule. First we form a hash table with the irreducible characters. Then we define a function that computes the multiplicities of the irreducible characters in a given character. Finally, we apply this function to the Betti characters computed above.

i9 : irrReps = new HashTable from pack(2,
         mingle {
             partitions 7,
             apply(entries (characterTable 7)#values, r -> mutableMatrix{r})
             }
         )

o9 = HashTable{Partition{1, 1, 1, 1, 1, 1, 1} => | 1 -1 -1 1 -1 1 -1 1 1 -1 1 -1 1 -1 1 |}
               Partition{2, 1, 1, 1, 1, 1} => | -1 0 1 1 1 0 -2 0 -1 -1 3 0 2 -4 6 |
               Partition{2, 2, 1, 1, 1} => | 0 1 -1 -1 0 0 0 -1 2 0 2 -2 2 -6 14 |
               Partition{2, 2, 2, 1} => | 0 0 1 -1 -1 0 2 2 -1 -1 -1 0 2 -4 14 |
               Partition{3, 1, 1, 1, 1} => | 1 0 0 0 -1 -1 -1 0 -1 1 3 3 -1 -5 15 |
               Partition{3, 2, 1, 1} => | 0 -1 0 0 1 1 1 -1 -1 1 -1 -1 -1 -5 35 |
               Partition{3, 2, 2} => | 0 0 -1 1 1 -1 1 0 1 -1 -3 3 1 -1 21 |
               Partition{3, 3, 1} => | 0 0 1 1 -1 -1 -1 0 1 1 -3 -3 1 1 21 |
               Partition{4, 1, 1, 1} => | -1 0 0 0 0 0 0 2 2 0 2 0 -4 0 20 |
               Partition{4, 2, 1} => | 0 1 0 0 -1 1 -1 -1 -1 -1 -1 1 -1 5 35 |
               Partition{4, 3} => | 0 0 -1 -1 1 0 -2 2 -1 1 -1 0 2 4 14 |
               Partition{5, 1, 1} => | 1 0 0 0 1 -1 1 0 -1 -1 3 -3 -1 5 15 |
               Partition{5, 2} => | 0 -1 1 -1 0 0 0 -1 2 0 2 2 2 6 14 |
               Partition{6, 1} => | -1 0 -1 1 -1 0 2 0 -1 1 3 0 2 4 6 |
               Partition{7} => | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 |

o9 : HashTable
i10 : multiplicities = c -> select(
          applyValues(irrReps,
              v -> innerProduct(7,v,mutableMatrix{new List from c})),
          v -> v!=0
          )

o10 = multiplicities

o10 : FunctionClosure
i11 : multiplicities c#0#{0}

o11 = HashTable{Partition{7} => 1}

o11 : HashTable
i12 : multiplicities c#1#{2}

o12 = HashTable{Partition{5, 2} => 1}

o12 : HashTable
i13 : multiplicities c#2#{3}

o13 = HashTable{Partition{4, 2, 1} => 1}

o13 : HashTable
i14 : multiplicities c#3#{4}

o14 = HashTable{Partition{3, 2, 1, 1} => 1}

o14 : HashTable
i15 : multiplicities c#4#{5}

o15 = HashTable{Partition{2, 2, 1, 1, 1} => 1}

o15 : HashTable
i16 : multiplicities c#5#{7}

o16 = HashTable{Partition{1, 1, 1, 1, 1, 1, 1} => 1}

o16 : HashTable

As expected from the general theory, we find a single irreducible representation in each homological degree.