# straighteningAlgorithm -- an algorithm for expressing any polytabloid as linear combinations of standard polytabloids

## Synopsis

• Usage:
straighteningAlgorithm(ele)
straighteningAlgorithm(y,coef)
straighteningAlgorithm(y)
• Inputs:
• ele, an instance of the type SpechtModuleElement, a SpecthModuleElement
• y, an instance of the type YoungTableau, a tableau that labels a polytabloid
• coef, an integer, the coefficient of the polytabloid
• Outputs:
• an instance of the type SpechtModuleElement, the same SpechtModuleElement written as a linear combination of standard polytabloids

## Description

The straigtening algorithm works by finding the first term that is not standard. Then, taking as coordinates the first row descent, it calculates the Garnir element of this tableaux. It then rewrites the SpechtModuleElement substituting the term by the linear combination given by the garnir element.

 i1 : p = new Partition from {3,2,1} o1 = Partition{3, 2, 1} o1 : Partition i2 : y = youngTableau(p,{1,2,3,5,4,6}) o2 = | 1 2 3 | | 5 4 | | 6 | o2 : YoungTableau i3 : garnirElement y o3 = - | 1 2 3 | + | 1 2 3 | + | 1 4 3 | - | 1 4 3 | + | 1 5 3 | + | 1 2 3 | | 4 5 | | 4 6 | | 2 5 | | 2 6 | | 2 6 | | 5 4 | | 6 | | 5 | | 6 | | 5 | | 4 | | 6 | o3 : SpechtModuleElement