TableauxBumpers(S)

tableau.spad line 45 [edit on github]

TableauBumpers implements the Schenstead-Knuth correspondence between sequences and pairs of Young tableaux. The 2 Young tableaux are represented as a single tableau with pairs as components.

bat : Tableau(List(S)) -> List(List(S))

bat(ls) unbumps a tableau ls

bat1 : List(List(List(S))) -> List(List(S))

bat1(llp) unbumps a tableau llp. Operation bat1 is the inverse of tab1.

bumprow : (Mapping(Boolean, S, S), List(S), List(List(S))) -> Record(fs : Boolean, sd : List(S), td : List(List(S)))

bumprow(cf, pr, r) is an auxiliary function which bumps a row r with a pair pr using comparison function cf, and returns a record

bumptab : (Mapping(Boolean, S, S), List(S), List(List(List(S)))) -> List(List(List(S)))

bumptab(cf, pr, t) bumps a tableau t with a pair pr using comparison function cf, returning a new tableau

bumptab1 : (List(S), List(List(List(S)))) -> List(List(List(S)))

bumptab1(pr, t) bumps a tableau t with a pair pr using comparison function <, returning a new tableau

inverse : List(S) -> List(S)

inverse(ls) forms the inverse of a sequence ls

lex : List(List(S)) -> List(List(S))

lex(ls) sorts a list of pairs to lexicographic order

maxrow : (List(S), List(List(List(S))), List(List(S)), List(List(List(S))), List(List(List(S))), List(List(List(S)))) -> Record(f1 : List(S), f2 : List(List(List(S))), f3 : List(List(S)), f4 : List(List(List(S))))

maxrow(a, b, c, d, e) is an auxiliary function for mr

mr : List(List(List(S))) -> Record(f1 : List(S), f2 : List(List(List(S))), f3 : List(List(S)), f4 : List(List(List(S))))

mr(t) is an auxiliary function which finds the position of the maximum element of a tableau t which is in the lowest row, producing a record of results

slex : List(S) -> List(List(S))

slex(ls) sorts the argument sequence ls, then zips (see map) the original argument sequence with the sorted result to a list of pairs

tab : List(S) -> Tableau(List(S))

tab(ls) creates a tableau from ls by first creating a list of pairs using slex, then creating a tableau using tab1.

tab1 : List(List(S)) -> List(List(List(S)))

tab1(lp) creates a tableau from a list of pairs lp

untab : (List(List(S)), List(List(List(S)))) -> List(List(S))

untab(lp, llp) is an auxiliary function which unbumps a tableau llp, using lp to accumulate pairs