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 subtracting 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.