combinat-0.2.7.2: Generate and manipulate various combinatorial objects.

Math.Combinat.Tableaux

Description

Young tableaux and similar gadgets. See e.g. William Fulton: Young Tableaux, with Applications to Representation theory and Geometry (CUP 1997).

The convention is that we use the English notation, and we store the tableaux as lists of the rows.

That is, the following standard Young tableau of shape [5,4,1]

``` 1  3  4  6  7
2  5  8 10
9```

is encoded conveniently as

```[ [ 1 , 3 , 4 , 6 , 7 ]
, [ 2 , 5 , 8 ,10 ]
, [ 9 ]
]```

Synopsis

# Basic stuff

type Tableau a = [[a]] Source

content :: Tableau a -> [a] Source

An element `(i,j)` of the resulting tableau (which has shape of the given partition) means that the vertical part of the hook has length `i`, and the horizontal part `j`. The hook length is thus `i+j-1`.

Example:

```> mapM_ print \$ hooks \$ toPartition [5,4,1]
[(3,5),(2,4),(2,3),(2,2),(1,1)]
[(2,4),(1,3),(1,2),(1,1)]
[(1,1)]```

# Row and column words

rowWord :: Tableau a -> [a] Source

isLatticeWord :: [Int] -> Bool Source

Checks whether a sequence of positive integers is a lattice word, which means that in every initial part of the sequence any number `i` occurs at least as often as the number `i+1`

# Standard Young tableaux

Standard Young tableaux of a given shape. Adapted from John Stembridge, http://www.math.lsa.umich.edu/~jrs/software/SFexamples/tableaux.

hook-length formula

# Semistandard Young tableaux

Semistandard Young tableaux of given shape, "naive" algorithm

Stanley's hook formula (cf. Fulton page 55)