Macaulay2 » Documentation
Packages » SchurFunctors :: straighten
next | previous | forward | backward | up | index | toc

straighten -- straighten a filling into a linear combination of semistandard tableaux

Description

The straightening algorithm writes an arbitrary tableau as a unique $\mathbb{Z}$-linear combination of semistandard tableaux of the same shape, modulo the Garnir relations. This is the standard way to reduce to the SSYT basis of $S_\lambda(E)$; see Fulton, Young Tableaux, §8.1.

The implementation repeatedly locates a violation with isStandard and resolves it by a Garnir-style column shuffle, keeping track of the intermediate tableaux that still need to be rewritten; the process terminates when every tableau is semistandard. The final output does not depend on the order in which violations are chosen.

Symbolic straightening. Without a module argument the output is a HashTable of Filling keys and integer coefficients:

i1 : T = new Filling from {{2,1,0}}

     +-+
o1 = |2|
     |1|
     |0|
     +-+

o1 : Filling
i2 : straighten T

               +-+
o2 = HashTable{|0| => -1}
               |1|
               |2|
               +-+

o2 : HashTable
i3 : T = new Filling from {{1,0}, {0}}

     +-+-+
o3 = |1|0|
     |0| |
     +-+-+

o3 : Filling
i4 : straighten T

               +-+-+
o4 = HashTable{|0|0| => -1}
               |1| |
               +-+-+

o4 : HashTable

Linearity. straighten is $\mathbb{Z}$-linear in its input, so it extends to formal linear combinations presented as a HashTable of (Filling => ZZ) pairs:

i5 : H = hashTable {
          (new Filling from {{2,1}, {0}}, 1),
          (new Filling from {{1,0}, {2}}, -1)}

               +-+-+
o5 = HashTable{|1|2| => -1}
               |0| |
               +-+-+
               +-+-+
               |2|0| => 1
               |1| |
               +-+-+

o5 : HashTable
i6 : straighten H

               +-+-+
o6 = HashTable{|0|2| => 1 }
               |1| |
               +-+-+
               +-+-+
               |0|1| => -1
               |2| |
               +-+-+
               +-+-+
               |1|2| => -1
               |0| |
               +-+-+

o6 : HashTable

Module evaluation. When a Schur module M is supplied, straighten returns the element of M corresponding to the straightened combination. This is the usual way to lift a combinatorially-specified element to its actual vector representation:

i7 : M = schurModule({1,1,1}, QQ^4);
i8 : v = straighten(new Filling from {{3,2,1}}, M)

o8 = |  0 |
     |  0 |
     |  0 |
     | -1 |

       4
o8 : QQ
i9 : printSchurModuleElement(v, M)
   +-+
-1*|1| 
   |2|
   |3|
   +-+

o9 = stdio

o9 : File

See also

Ways to use straighten:

  • straighten(Filling)
  • straighten(Filling,Module)
  • straighten(HashTable)
  • straighten(HashTable,Module)

For the programmer

The object straighten is a method function.


The source of this document is in /build/reproducible-path/macaulay2-1.26.05+ds/M2/Macaulay2/packages/SchurFunctors.m2:2089:0.