combinat- Generate and manipulate various combinatorial objects.

Safe HaskellNone




Skew tableaux are skew partitions filled with numbers.

For example:



newtype SkewTableau a Source #

A skew tableau is represented by a list of offsets and entries


SkewTableau [(Int, [a])] 

skewTableauShape :: SkewTableau a -> SkewPartition Source #

The shape of a skew tableau

skewTableauWeight :: SkewTableau a -> Int Source #

The weight of a tableau is the weight of its shape, or the number of entries

dualSkewTableau :: forall a. SkewTableau a -> SkewTableau a Source #

The dual of a skew tableau, that is, its mirror image to the main diagonal

Semistandard tableau

isSemiStandardSkewTableau :: SkewTableau Int -> Bool Source #

A tableau is semistandard if its entries are weekly increasing horizontally and strictly increasing vertically

isStandardSkewTableau :: SkewTableau Int -> Bool Source #

A tableau is standard if it is semistandard and its content is exactly [1..n], where n is the weight.

semiStandardSkewTableaux :: Int -> SkewPartition -> [SkewTableau Int] Source #

All semi-standard skew tableaux filled with the numbers [1..n]


asciiSkewTableau :: Show a => SkewTableau a -> ASCII Source #

ASCII drawing of a skew tableau (using the English notation)

asciiSkewTableau' Source #


:: Show a 
=> String

string representing the elements of the inner (unfilled) partition

-> PartitionConvention


-> SkewTableau a 

Row / column words

skewTableauRowWord :: SkewTableau a -> [a] Source #

The reversed (right-to-left) rows, concatenated

skewTableauColumnWord :: SkewTableau a -> [a] Source #

The reversed (bottom-to-top) columns, concatenated

fillSkewPartitionWithRowWord :: SkewPartition -> [a] -> SkewTableau a Source #

Fills a skew partition with content, in row word order

fillSkewPartitionWithColumnWord :: SkewPartition -> [a] -> SkewTableau a Source #

Fills a skew partition with content, in column word order

skewTableauRowContent :: SkewTableau Int -> Maybe Partition Source #

If the skew tableau's row word is a lattice word, we can make a partition from its content