next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
SpechtModule :: higherSpechtPolynomials

higherSpechtPolynomials -- a method that gives sets of higher Specht polynomials

Synopsis

Description

This methods returns higher Specht polynomials sorted in hash tables depending on the input received.

If the input is just a YoungTableau S of shape λ and a PolynomialRing then it calculates the standard tableaux ST(λ) and then stores all polynomials FTS such that T ∈ST(λ). The polynomials are stored in a hash table with the filling of T as the key.

The list ST(λ) can be provided as an input. This is used to avoid repeating this calculation when this method is called multiple times with the same shape λ.

This set forms a basis for one of the copies of the Specht module Sλ.

i1 : R = QQ[x_0..x_3]

o1 = R

o1 : PolynomialRing
i2 : p = new Partition from {2,2}

o2 = Partition{2, 2}

o2 : Partition
i3 : S  = youngTableau(p,{0,2,1,3})

o3 = | 0 2 |
     | 1 3 |

o3 : YoungTableau
i4 : higherSpechtPolynomials(S,R)

                                2            2      2      2        2          2          2        2
o4 = HashTable{{0, 1, 2, 3} => x x x  - x x x  + x x x  - x x x  - x x x  + x x x  - x x x  + x x x }
                                0 1 2    0 1 2    0 1 3    0 2 3    1 2 3    0 2 3    0 1 3    1 2 3
                                2          2      2          2        2        2          2        2
               {0, 2, 1, 3} => x x x  - x x x  - x x x  + x x x  + x x x  - x x x  - x x x  + x x x
                                0 1 2    0 1 2    0 1 3    0 1 3    0 2 3    1 2 3    0 2 3    1 2 3

o4 : HashTable
i5 : stan = standardTableaux p

o5 = {| 0 1 |, | 0 2 |}
      | 2 3 |  | 1 3 |

o5 : TableauList
i6 : higherSpechtPolynomials(S, stan,R)

                                2            2      2      2        2          2          2        2
o6 = HashTable{{0, 1, 2, 3} => x x x  - x x x  + x x x  - x x x  - x x x  + x x x  - x x x  + x x x }
                                0 1 2    0 1 2    0 1 3    0 2 3    1 2 3    0 2 3    0 1 3    1 2 3
                                2          2      2          2        2        2          2        2
               {0, 2, 1, 3} => x x x  - x x x  - x x x  + x x x  + x x x  - x x x  - x x x  + x x x
                                0 1 2    0 1 2    0 1 3    0 1 3    0 2 3    1 2 3    0 2 3    1 2 3

o6 : HashTable

If only a partition λ and a polynomial ring is given then the method calculates ST(λ). Then it calculates all polynomials FTS such that S,T ∈ST(λ).

This is a basis for the isotypical component Xλ in the coinvariant algebra of the symmetric group.

The polynomials are stored by calling for each S ∈ST(λ) the previous method. The output is stored in another hash table with the key being the filling of the tableau S.

i7 : higherSpechtPolynomials(p,R)

o7 = HashTable{{0, 1, 2, 3} => HashTable{{0, 1, 2, 3} => x x  - x x  - x x  + x x }                                            }
                                                          0 1    1 2    0 3    2 3
                                         {0, 2, 1, 3} => x x  - x x  - x x  + x x
                                                          0 2    1 2    0 3    1 3
                                                          2            2      2      2        2          2          2        2
               {0, 2, 1, 3} => HashTable{{0, 1, 2, 3} => x x x  - x x x  + x x x  - x x x  - x x x  + x x x  - x x x  + x x x }
                                                          0 1 2    0 1 2    0 1 3    0 2 3    1 2 3    0 2 3    0 1 3    1 2 3
                                                          2          2      2          2        2        2          2        2
                                         {0, 2, 1, 3} => x x x  - x x x  - x x x  + x x x  + x x x  - x x x  - x x x  + x x x
                                                          0 1 2    0 1 2    0 1 3    0 1 3    0 2 3    1 2 3    0 2 3    1 2 3

o7 : HashTable

Finally if just a polynomial ring R with n elements is provided then the method calculates all higher Specht polynomials for all partitions λ of n.

The polynomials are calculated by calling the previous method for every partition of n and storing the values in a new hash table with the key being the partition.

i8 : higherSpechtPolynomials(R)

                                                                                             3 2      2 3      3   2      3 2    2   3      2 3    3 2      2 3      3 2      3 2      2 3      2 3      3   2      3 2    3   2    3   2      3 2      3 2    2   3      2 3    2   3    2   3      2 3      2 3
o8 = HashTable{Partition{1, 1, 1, 1} => HashTable{{0, 1, 2, 3} => HashTable{{0, 1, 2, 3} => x x x  - x x x  - x x x  + x x x  + x x x  - x x x  - x x x  + x x x  + x x x  - x x x  - x x x  + x x x  + x x x  - x x x  - x x x  + x x x  + x x x  - x x x  - x x x  + x x x  + x x x  - x x x  - x x x  + x x x }}}
                                                                                             0 1 2    0 1 2    0 1 2    0 1 2    0 1 2    0 1 2    0 1 3    0 1 3    0 2 3    1 2 3    0 2 3    1 2 3    0 1 3    0 1 3    0 2 3    1 2 3    0 2 3    1 2 3    0 1 3    0 1 3    0 2 3    1 2 3    0 2 3    1 2 3
                                                                                            2        2    2      2        2      2
               Partition{2, 1, 1} => HashTable{{0, 1, 2, 3} => HashTable{{0, 1, 2, 3} => - x x  + x x  + x x  - x x  - x x  + x x }            }
                                                                                            0 2    0 2    0 3    2 3    0 3    2 3
                                                                                            2        2    2      2        2      2
                                                                         {0, 2, 1, 3} => - x x  + x x  + x x  - x x  - x x  + x x
                                                                                            0 1    0 1    0 3    1 3    0 3    1 3
                                                                                            2        2    2      2        2      2
                                                                         {0, 3, 1, 2} => - x x  + x x  + x x  - x x  - x x  + x x
                                                                                            0 1    0 1    0 2    1 2    0 2    1 2
                                                                                            2            2    2          2          2        2
                                               {0, 2, 1, 3} => HashTable{{0, 1, 2, 3} => - x x x  + x x x  + x x x  - x x x  - x x x  + x x x }
                                                                                            0 1 2    0 1 2    0 1 3    1 2 3    0 1 3    1 2 3
                                                                                            2          2      2        2            2        2
                                                                         {0, 2, 1, 3} => - x x x  + x x x  + x x x  - x x x  - x x x  + x x x
                                                                                            0 1 2    0 1 2    0 2 3    1 2 3    0 2 3    1 2 3
                                                                                            2          2      2        2          2        2
                                                                         {0, 3, 1, 2} => - x x x  + x x x  + x x x  - x x x  - x x x  + x x x
                                                                                            0 1 3    0 1 3    0 2 3    1 2 3    0 2 3    1 2 3
                                                                                            2 2        2 2    2 2      2 2        2 2    2   2
                                               {0, 3, 1, 2} => HashTable{{0, 1, 2, 3} => - x x x  + x x x  + x x x  - x x x  - x x x  + x x x }
                                                                                            0 1 2    0 1 2    0 1 3    1 2 3    0 1 3    1 2 3
                                                                                            2   2      2 2    2 2      2 2        2 2      2 2
                                                                         {0, 2, 1, 3} => - x x x  + x x x  + x x x  - x x x  - x x x  + x x x
                                                                                            0 1 2    0 1 2    0 2 3    1 2 3    0 2 3    1 2 3
                                                                                            2   2      2 2    2   2    2   2      2 2      2 2
                                                                         {0, 3, 1, 2} => - x x x  + x x x  + x x x  - x x x  - x x x  + x x x
                                                                                            0 1 3    0 1 3    0 2 3    1 2 3    0 2 3    1 2 3
               Partition{2, 2} => HashTable{{0, 1, 2, 3} => HashTable{{0, 1, 2, 3} => x x  - x x  - x x  + x x }                                            }
                                                                                       0 1    1 2    0 3    2 3
                                                                      {0, 2, 1, 3} => x x  - x x  - x x  + x x
                                                                                       0 2    1 2    0 3    1 3
                                                                                       2            2      2      2        2          2          2        2
                                            {0, 2, 1, 3} => HashTable{{0, 1, 2, 3} => x x x  - x x x  + x x x  - x x x  - x x x  + x x x  - x x x  + x x x }
                                                                                       0 1 2    0 1 2    0 1 3    0 2 3    1 2 3    0 2 3    0 1 3    1 2 3
                                                                                       2          2      2          2        2        2          2        2
                                                                      {0, 2, 1, 3} => x x x  - x x x  - x x x  + x x x  + x x x  - x x x  - x x x  + x x x
                                                                                       0 1 2    0 1 2    0 1 3    0 1 3    0 2 3    1 2 3    0 2 3    1 2 3
               Partition{3, 1} => HashTable{{0, 1, 2, 3} => HashTable{{0, 1, 2, 3} => - x  + x }                  }
                                                                                         0    3
                                                                      {0, 1, 3, 2} => - x  + x
                                                                                         0    2
                                                                      {0, 2, 3, 1} => - x  + x
                                                                                         0    1
                                            {0, 1, 3, 2} => HashTable{{0, 1, 2, 3} => - x x  - x x  + x x  + x x }
                                                                                         0 1    0 2    1 3    2 3
                                                                      {0, 1, 3, 2} => - x x  + x x  - x x  + x x
                                                                                         0 1    1 2    0 3    2 3
                                                                      {0, 2, 3, 1} => - x x  + x x  - x x  + x x
                                                                                         0 2    1 2    0 3    1 3
                                            {0, 2, 3, 1} => HashTable{{0, 1, 2, 3} => - x x x  + x x x }
                                                                                         0 1 2    1 2 3
                                                                      {0, 1, 3, 2} => - x x x  + x x x
                                                                                         0 1 3    1 2 3
                                                                      {0, 2, 3, 1} => - x x x  + x x x
                                                                                         0 2 3    1 2 3
               Partition{4} => HashTable{{0, 1, 2, 3} => HashTable{{0, 1, 2, 3} => 1}}

o8 : HashTable

Ways to use higherSpechtPolynomials :