TableauxBumpers SΒΆ

tableau.spad line 48

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.

bat1: List List List S -> List List S
bat1(llp) unbumps a tableau llp. Operation bat1 is the inverse of tab1.
bat: Tableau List S -> List List S
bat(ls) unbumps a tableau ls
bumprow: ((S, S) -> Boolean, 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
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
bumptab: ((S, S) -> Boolean, 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
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 <l-`-list-functions3``_map>`) the original argument sequence with the sorted result to a list of pairs
tab1: List List S -> List List List S
tab1(lp) creates a tableau from a list of pairs lp
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.
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