Macaulay2 » Documentation
Packages » SpechtModule :: higherSpechtPolynomial(YoungTableau,YoungTableau,PolynomialRing)
next | previous | forward | backward | up | index | toc

higherSpechtPolynomial(YoungTableau,YoungTableau,PolynomialRing) -- the higher Specht polynomial index by the pair of standard tableaux (S,T)

Synopsis

Description

Higher Specht polynomials are a family of polynomials that form a basis of the coinvariant algebra for the symmetric group. The coinvariant algebra is isomorphic as a $S_n$ module to the regular representation of $S_n$. Therefore every Specht modules appears as an irreducible module in this algebra with multiplicity $f^\lambda= {\rm dim} \, S^\lambda $. Higher Specht polynomials decompose this algebra into its irreducible submodules.

Higher Specht polynomials are indexed by pairs of standard tableaux of the same size. The usual construction of these polynomials is as follows.

1. Given two tableaux (S,T) of shape $\lambda$ the index tableau i(S) is calculated and the index monomial $x_T^{i(S)}$ is calculated. 2. The Young symmetrizer $\sum_{\tau \in C(T)} \sum_{R(T)} sgn(\tau)\sigma$ is applied to the index monomial.

The algorithm based on this construction can be used in this method with the optional input Robust => true

A second algorithm for this polynomials is based on a study on the structure of this polynomials.

The outline of this construction is as follow.

1. Calculate the index tableau $i(S)$. 2. Calculate all row permutations of $i(S)$ such that no entries in the same column are equal. 3. For each different tableau $\sigma(i(S))$ in the previous step order the columns in descending order making sure to calculate the sign of the permutation used. 4. For each column in $\sigma(i(S))$ determine the Schur polynomial with partition $\lambda = (a_p-p, \ldots,a_i-i ,\ldots ,a_0) $. 5. For all columns multiply the polynomials obtained in Step 4. Multiply this by the sign obtained in Step 3. 6. For all tableaux $\sigma(i(S))$, add all polynomials obtained in Step 5. 7. Multiply the polynomial in Step 6 by the Specht polynomial of T.

i1 : R = QQ[x_0..x_4]

o1 = R

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

o2 = Partition{2, 2, 1}

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

o3 = | 0 2 |
     | 1 3 |
     | 4 |

o3 : YoungTableau
i4 : T  = youngTableau(p,{0,1,2,3,4})

o4 = | 0 1 |
     | 2 3 |
     | 4 |

o4 : YoungTableau
i5 : time higherSpechtPolynomial(S,T,R)
 -- used 0.00064881s (cpu); 0.00208147s (thread); 0s (gc)

      3 2          2 3      3     2        3 2    3   2      2   3    
o5 = 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 3    0 1 2 3    0 1 2 3    0 1 2 3    0 1 2 4    0 1 2 4  
     ------------------------------------------------------------------------
      3 2        3 2        2 3        2 3        3   2        3 2    
     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 3 4    0 2 3 4    0 2 3 4    1 2 3 4    0 1 3 4    1 2 3 4  
     ------------------------------------------------------------------------
      3     2        3 2    3     2      3   2    2     3        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 4    0 1 2 4    0 2 3 4    0 2 3 4    0 1 2 4    0 1 2 4  
     ------------------------------------------------------------------------
        2   3    2     3    2     3      2   3        2 3        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 3 4    0 2 3 4    1 2 3 4    0 2 3 4    0 1 3 4    1 2 3 4

o5 : R
i6 : time higherSpechtPolynomial(S,T,R, Robust => false)
 -- used 0.00082117s (cpu); 0.00202656s (thread); 0s (gc)

      3 2          2 3      3     2        3 2    3   2      2   3    
o6 = 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 3    0 1 2 3    0 1 2 3    0 1 2 3    0 1 2 4    0 1 2 4  
     ------------------------------------------------------------------------
      3 2        3 2        2 3        2 3        3   2        3 2    
     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 3 4    0 2 3 4    0 2 3 4    1 2 3 4    0 1 3 4    1 2 3 4  
     ------------------------------------------------------------------------
      3     2        3 2    3     2      3   2    2     3        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 4    0 1 2 4    0 2 3 4    0 2 3 4    0 1 2 4    0 1 2 4  
     ------------------------------------------------------------------------
        2   3    2     3    2     3      2   3        2 3        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 3 4    0 2 3 4    1 2 3 4    0 2 3 4    0 1 3 4    1 2 3 4

o6 : R
i7 : time higherSpechtPolynomial(S,T,R, Robust => false, AsExpression => true)
 -- used 0.00400148s (cpu); 0.00334565s (thread); 0s (gc)

o7 = (- x  + x )(- x  + x )(- x  + x )(- x  + x )((x  + x  + x )(x )(x ) + (x )(x )(x ))
         0    2     0    4     2    4     1    3    0    2    4   3   1      4   2   0

o7 : Expression of class Product

See also

Ways to use this method: