combinat-0.2.6.0: Generation of various combinatorial objects.

Safe HaskellNone
LanguageHaskell98

Math.Combinat.Tableaux

Contents

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

hooks :: Partition -> Tableau (Int, Int) 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

Standard Young tableaux

standardYoungTableaux :: Partition -> [Tableau Int] Source

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

Semistandard Young tableaux

semiStandardYoungTableaux :: Int -> Partition -> [Tableau Int] Source

Semistandard Young tableaux of given shape, "naive" algorithm

countSemiStandardYoungTableaux :: Int -> Partition -> Integer Source

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