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.

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) 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