straighten Tstraighten Hstraighten(T, M)straighten(H, M)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:
|
|
|
|
Linearity. straighten is $\mathbb{Z}$-linear in its input, so it extends to formal linear combinations presented as a HashTable of (Filling => ZZ) pairs:
|
|
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:
|
|
|
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.