Polytabloids of shape $p$ are elements of the module of tabloids of the form $\sum_{\tau \in C(T)}\sum_{\sigma \in R(T)}sgn(\tau) \tau\sigma(T)$ where T is a tabloid of shape $p$.
The set of polytabloids generates the Specht Module of shape $p$.
In other words the element in a SpechtModule are linear combinations of polytabloids. This is the way such elements are implemented in this package.
The constructor takes just one polytabloid and a coefficient
i1 : p = new Partition from {3,2,1}
o1 = Partition{3, 2, 1}
o1 : Partition
|
i2 : y = youngTableau(p,{2,0,3,4,5,1})
o2 = | 2 0 3 |
| 4 5 |
| 1 |
o2 : YoungTableau
|
i3 : e = spechtModuleElement(y,-2)
o3 = -2 | 2 0 3 |
| 4 5 |
| 1 |
o3 : SpechtModuleElement
|
More complex elements can be made by adding or substracting previously build elements and multiplying by any element of the base field (which is assumed to be \mathbb{Q}).
i4 : y2 = youngTableau(p,{5,0,2,4,1,3})
o4 = | 5 0 2 |
| 4 1 |
| 3 |
o4 : YoungTableau
|
i5 : e2 = spechtModuleElement(y2)
o5 = | 5 0 2 |
| 4 1 |
| 3 |
o5 : SpechtModuleElement
|
i6 : e+e2
o6 = -2 | 2 0 3 | + | 5 0 2 |
| 4 5 | | 4 1 |
| 1 | | 3 |
o6 : SpechtModuleElement
|
i7 : e-e2
o7 = -2 | 2 0 3 | - | 5 0 2 |
| 4 5 | | 4 1 |
| 1 | | 3 |
o7 : SpechtModuleElement
|
i8 : 3*oo
o8 = -6 | 2 0 3 | - 3 | 5 0 2 |
| 4 5 | | 4 1 |
| 1 | | 3 |
o8 : SpechtModuleElement
|
The element SpechtModuleElement is implemented as a MutableHashTable. The keys are the filling of the tableaux that label the polytabloids and they point to their respective coefficients
i9 : peek oo
o9 = SpechtModuleElement{partition => Partition{3, 2, 1} }
values => MutableHashTable{...2...}
|
i10 : peek ooo#values
o10 = MutableHashTable{{2, 0, 3, 4, 5, 1} => -6}
{5, 0, 2, 4, 1, 3} => -3
|
The method terms is used to retrieve the polytabloid with their respective coefficient. This is given as a list of pairs of tableaux and coefficients.
i11 : terms (3*(e-e2))
o11 = {(| 2 0 3 |, -6), (| 5 0 2 |, -3)}
| 4 5 | | 4 1 |
| 1 | | 3 |
o11 : List
|
A method was implemented to apply a permutation to a SpechtModuleElement. The action is defined by permuting the entries of the tableaux that label the polytabloids.
i12 : {0,1,2,3,4,5} (3*(e-e2))
o12 = -6 | 2 0 3 | - 3 | 5 0 2 |
| 4 5 | | 4 1 |
| 1 | | 3 |
o12 : SpechtModuleElement
|
i13 : {1,0,2,3,4,5} (3*(e-e2))
o13 = -6 | 2 1 3 | - 3 | 5 1 2 |
| 4 5 | | 4 0 |
| 0 | | 3 |
o13 : SpechtModuleElement
|
The object SpechtModuleElement is a type, with ancestor classes HashTable < Thing.