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

## Synopsis

• Usage:
higherSpechtPolynomial(S,R)
higherSpechtPolynomial(S,standard,R)
higherSpechtPolynomial(p,R)
higherSpechtPolynomial(R)
• Inputs:
• S, an instance of the type YoungTableau,
• R, ,
• standard, an instance of the type TableauList, The list of standard tableaux of the same shape as S
• p, an instance of the type Partition,
• Optional inputs:
• AsExpression => ..., default value false, an optional argument that returns polynomials as expressions
• Robust => ..., default value false, an optional argument for specifying the algorithm for calculating higherSpechtPolynomials
• Outputs:
• , a hash table with multiple levels depending on the input

## 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 $\lambda$ and a PolynomialRing then it calculates the standard tableaux $ST(\lambda)$ and then stores all polynomials $F_T^S$ such that $T \in ST(\lambda)$. The polynomials are stored in a hash table with the filling of $T$ as the key.

The list $ST(\lambda)$ 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 $\lambda$.

This set forms a basis for one of the copies of the Specht module $S^\lambda$.

 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 $\lambda$ and a polynomial ring is given then the method calculates $ST(\lambda)$. Then it calculates all polynomials $F_T^S$ such that $S,T \in ST(\lambda)$.

This is a basis for the isotypical component $X_\lambda$ in the coinvariant algebra of the symmetric group.

The polynomials are stored by calling for each $S \in ST(\lambda)$ 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 $\lambda$ 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 :

• "higherSpechtPolynomials(Partition,PolynomialRing)"
• "higherSpechtPolynomials(PolynomialRing)"
• "higherSpechtPolynomials(YoungTableau,PolynomialRing)"
• "higherSpechtPolynomials(YoungTableau,TableauList,PolynomialRing)"

## For the programmer

The object higherSpechtPolynomials is .