18.27 Skew Tableaux

Module: sage.combinat.skew_tableau

Skew Tableaux

Module-level Functions

SemistandardSkewTableaux( [p=None], [mu=None])

Returns a combinatorial class of semistandard skew tableaux.

sage: SemistandardSkewTableaux()
Semistandard skew tableaux

sage: SemistandardSkewTableaux(3)
Semistandard skew tableaux of size 3

sage: SemistandardSkewTableaux([[2,1],[]])
Semistandard skew tableaux of shape [[2, 1], []]

sage: SemistandardSkewTableaux([[2,1],[]],[2,1])
Semistandard skew tableaux of shape [[2, 1], []] and weight [2, 1]

sage: SemistandardSkewTableaux(3, [2,1])
Semistandard skew tableaux of size 3 and weight [2, 1]

SkewTableau( [st=None], [expr=None])

Returns the skew tableau object corresponding to st.

Note that Sage uses the English convention for partitions and tableaux.

sage: st = SkewTableau([[None, 1],[2,3]]); st
[[None, 1], [2, 3]]
sage: st.inner_shape()
[1]
sage: st.outer_shape()
[2, 2]

The expr form of a skew tableau consists of the inner partition followed by a list of the entries in row from bottom to top.

sage: SkewTableau(expr=[[1,1],[[5],[3,4],[1,2]]])
[[None, 1, 2], [None, 3, 4], [5]]

StandardSkewTableaux( [skp=None])

Returns the combinatorial class of standard skew tableaux of shape skp (where skp is a skew partition).

sage: StandardSkewTableaux([[3, 2, 1], [1, 1]]).list()
[[[None, 1, 2], [None, 3], [4]],
 [[None, 1, 2], [None, 4], [3]],
 [[None, 1, 3], [None, 2], [4]],
 [[None, 1, 4], [None, 2], [3]],
 [[None, 1, 3], [None, 4], [2]],
 [[None, 1, 4], [None, 3], [2]],
 [[None, 2, 3], [None, 4], [1]],
 [[None, 2, 4], [None, 3], [1]]]

from_expr( expr)

Returns a SkewTableau from a MuPAD-Combinat expr for a skew tableau. The first list in expr is the inner shape of the skew tableau. The second list are the entries in the rows of the skew tableau from bottom to top.

Provided primarily for compatability with MuPAD-Combinat.

sage: import sage.combinat.skew_tableau as skew_tableau
sage: sage.combinat.skew_tableau.from_expr([[1,1],[[5],[3,4],[1,2]]])
[[None, 1, 2], [None, 3, 4], [5]]

from_shape_and_word( shape, word)

Returns the skew tableau correspnding to the skew partition shape and the word obtained from the row reading.

sage: import sage.combinat.skew_tableau as skew_tableau
sage: t = SkewTableau([[None, 1, 3], [None, 2], [4]])
sage: shape = t.shape()
sage: word  = t.to_word() 
sage: skew_tableau.from_shape_and_word(shape, word)
[[None, 1, 3], [None, 2], [4]]

Class: SemistandardSkewTableaux_all

class SemistandardSkewTableaux_all

Special Functions: __repr__

__repr__( self)

sage: SemistandardSkewTableaux().__repr__()
'Semistandard skew tableaux'

Class: SemistandardSkewTableaux_n

class SemistandardSkewTableaux_n
SemistandardSkewTableaux_n( self, n)

sage: s = SemistandardSkewTableaux(3)
sage: s == loads(dumps(s))
True

Functions: count,$ \,$ iterator

count( self)

sage: SemistandardSkewTableaux(2).count()
8

iterator( self)

sage: SemistandardSkewTableaux(2).list() # indirect doctest
[[[1], [2]],
 [[None, 1], [1]],
 [[None, 2], [1]],
 [[None, 1], [2]],
 [[None, 2], [2]],
 [[1, 1]],
 [[1, 2]],
 [[2, 2]]]

Special Functions: __init__,$ \,$ __repr__

__repr__( self)

sage: SemistandardSkewTableaux(3).__repr__()
'Semistandard skew tableaux of size 3'

Class: SemistandardSkewTableaux_nmu

class SemistandardSkewTableaux_nmu
SemistandardSkewTableaux_nmu( self, n, mu)

sage: s = SemistandardSkewTableaux(3,[2,1])
sage: s == loads(dumps(s))
True

Functions: count,$ \,$ iterator

count( self)

sage: SemistandardSkewTableaux(2,[1,1]).count()
4

iterator( self)

sage: SemistandardSkewTableaux(2,[1,1]).list() # indirect doctest
[[[1], [2]], [[None, 2], [1]], [[None, 1], [2]], [[1, 2]]]

Special Functions: __init__,$ \,$ __repr__

__repr__( self)

sage: SemistandardSkewTableaux(3,[2,1]).__repr__()
'Semistandard skew tableaux of size 3 and weight [2, 1]'

Class: SemistandardSkewTableaux_p

class SemistandardSkewTableaux_p
SemistandardSkewTableaux_p( self, p)

sage: s = SemistandardSkewTableaux([[2,1],[]])
sage: s == loads(dumps(s))
True

Functions: count,$ \,$ iterator

count( self)

sage: SemistandardSkewTableaux([[2,1],[]]).count()
8

iterator( self)

sage: SemistandardSkewTableaux([[2,1],[]]).list() #indirect test
[[[1, 1], [2]],
 [[1, 1], [3]],
 [[1, 2], [2]],
 [[1, 3], [2]],
 [[1, 2], [3]],
 [[1, 3], [3]],
 [[2, 2], [3]],
 [[2, 3], [3]]]

Special Functions: __init__,$ \,$ __repr__

__repr__( self)

sage: repr(SemistandardSkewTableaux([[2,1],[]]))
'Semistandard skew tableaux of shape [[2, 1], []]'

Class: SemistandardSkewTableaux_pmu

class SemistandardSkewTableaux_pmu
SemistandardSkewTableaux_pmu( self, p, mu)

sage: s = SemistandardSkewTableaux([[2,1],[]],[2,1])
sage: s == loads(dumps(s))
True

Functions: list

list( self)

sage: SemistandardSkewTableaux([[2,1],[]],[2,1]).list()
[[[1, 1], [2]]]

Special Functions: __init__,$ \,$ __repr__

__repr__( self)

sage: SemistandardSkewTableaux([[2,1],[]],[2,1]).__repr__()
'Semistandard skew tableaux of shape [[2, 1], []] and weight [2, 1]'

Class: SkewTableau_class

class SkewTableau_class
SkewTableau_class( self, t)

TESTS:

sage: st = SkewTableau([[None, 1],[2,3]])
sage: st == loads(dumps(st))
True

Functions: boxes,$ \,$ boxes_by_content,$ \,$ conjugate,$ \,$ entries_by_content,$ \,$ evaluation,$ \,$ filling,$ \,$ inner_shape,$ \,$ inner_size,$ \,$ is_ribbon,$ \,$ is_semistandard,$ \,$ is_standard,$ \,$ outer_shape,$ \,$ outer_size,$ \,$ pp,$ \,$ rectify,$ \,$ restrict,$ \,$ shape,$ \,$ size,$ \,$ slide,$ \,$ to_chain,$ \,$ to_expr,$ \,$ to_ribbon,$ \,$ to_tableau,$ \,$ to_word,$ \,$ to_word_by_column,$ \,$ to_word_by_row,$ \,$ weight

boxes( self)

Returns on the entries in self with content c.

sage: s = SkewTableau([[None,1,2],[3],[6]])
sage: s.boxes()
[(0, 1), (0, 2), (1, 0), (2, 0)]

boxes_by_content( self, c)

Returns the coordinates of the boxes in self with content c.

sage: s = SkewTableau([[None,1,2],[3,4,5],[6]])
sage: s.boxes_by_content(0)
[(1, 1)]
sage: s.boxes_by_content(1)
[(0, 1), (1, 2)]
sage: s.boxes_by_content(2)
[(0, 2)]
sage: s.boxes_by_content(-1)
[(1, 0)]
sage: s.boxes_by_content(-2)
[(2, 0)]

conjugate( self)

Returns the conjugate of the skew tableau.

sage: SkewTableau([[None,1],[2,3]]).conjugate()
[[None, 2], [1, 3]]

entries_by_content( self, c)

Returns on the entries in self with content c.

sage: s = SkewTableau([[None,1,2],[3,4,5],[6]])
sage: s.entries_by_content(0)
[4]
sage: s.entries_by_content(1)
[1, 5]
sage: s.entries_by_content(2)
[2]
sage: s.entries_by_content(-1)
[3]
sage: s.entries_by_content(-2)
[6]

evaluation( self)

Returns the evaluation of the word from skew tableau.

sage: SkewTableau([[1,2],[3,4]]).evaluation()
[1, 1, 1, 1]

filling( self)

Returns a list of the non-empty entries in self.

sage: t = SkewTableau([[None,1],[2,3]])
sage: t.filling()
[[1], [2, 3]]

inner_shape( self)

Returns the inner shape of the tableau.

sage: SkewTableau([[None,1,2],[None,3],[4]]).inner_shape()
[1, 1]

inner_size( self)

Returns the size of the inner shape of the skew tableau.

sage: SkewTableau([[None, 2, 4], [None, 3], [1]]).inner_size()
2
sage: SkewTableau([[None, 2], [1, 3]]).inner_size()
1

is_ribbon( self)

Returns True if and only if self is a ribbon, that is if it has no 2x2 boxes.

sage: SkewTableau([[None,1],[2,3]]).is_ribbon()
True
sage: SkewTableau([[None,1,2],[3,4,5]]).is_ribbon()
False

is_semistandard( self)

Returns True if self is a semistandard skew tableau and False otherwise.

sage: SkewTableau([[None, 2, 2], [1, 3]]).is_semistandard()
True
sage: SkewTableau([[None, 2], [2, 4]]).is_semistandard()
True
sage: SkewTableau([[None, 3], [2, 4]]).is_semistandard()
True
sage: SkewTableau([[None, 2], [1, 2]]).is_semistandard()
False

is_standard( self)

Returns True if self is a standard skew tableau and False otherwise.

sage: SkewTableau([[None, 2], [1, 3]]).is_standard()
True
sage: SkewTableau([[None, 2], [2, 4]]).is_standard()
False
sage: SkewTableau([[None, 3], [2, 4]]).is_standard()
False
sage: SkewTableau([[None, 2], [2, 4]]).is_standard()
False

outer_shape( self)

Returns the outer shape of the tableau.

sage: SkewTableau([[None,1,2],[None,3],[4]]).outer_shape()
[3, 2, 1]

outer_size( self)

Returns the size of the outer shape of the skew tableau.

sage: SkewTableau([[None, 2, 4], [None, 3], [1]]).outer_size()
6
sage: SkewTableau([[None, 2], [1, 3]]).outer_size()
4

pp( self)

Returns a pretty print string of the tableau.

sage: SkewTableau([[None,2,3],[None,4],[5]]).pp()
  .  2  3
  .  4
  5

rectify( self)

Returns a Tableau formed by applying the jeu de taquin process to self.

Fulton, William. 'Young Tableaux'. p15

sage: s = SkewTableau([[None,1],[2,3]])
sage: s.rectify()
[[1, 3], [2]]

restrict( self, n)

Returns the restriction of the (semi)standard skew tableau to all the numbers less than or equal to n.

sage: SkewTableau([[None,1],[2],[3]]).restrict(2)
[[None, 1], [2]]
sage: SkewTableau([[None,1],[2],[3]]).restrict(1)
[[None, 1]]
sage: SkewTableau([[None,1],[1],[2]]).restrict(1)
[[None, 1], [1]]

shape( self)

Returns the shape of a tableau t.

sage: SkewTableau([[None,1,2],[None,3],[4]]).shape()
[[3, 2, 1], [1, 1]]

size( self)

Returns the number of boxes in the skew tableau.

sage: SkewTableau([[None, 2, 4], [None, 3], [1]]).size()
4
sage: SkewTableau([[None, 2], [1, 3]]).size()
3

slide( self, [corner=None])

Fulton, William. 'Young Tableaux'. p12-13

sage: st = SkewTableau([[None, None, None, None,2],[None, None, None, None,6], [None, 2, 4, 4], [2, 3, 6], [5,5]])
sage: st.slide([2,0])
[[None, None, None, None, 2], [None, None, None, None, 6], [2, 2, 4, 4],
[3, 5, 6], [5]]

to_chain( self)

Returns the chain of partitions corresponding to the (semi)standard skew tableau.

sage: SkewTableau([[None,1],[2],[3]]).to_chain()
[[1], [2], [2, 1], [2, 1, 1]]
sage: SkewTableau([[None,1],[1],[2]]).to_chain()
[[1], [2, 1], [2, 1, 1]]

to_expr( self)

The first list in a result corresponds to the inner partition of the skew shape. The second list is a list of the rows in the skew tableau read from the bottom up.

Provided for compatability with MuPAD-Combinat. In MuPAD-Combinat, if t is a skew tableau, then to_expr gives the same result as expr(t) would give in MuPAD-Combinat.

sage: SkewTableau([[None,1,1,3],[None,2,2],[1]]).to_expr()
[[1, 1], [[1], [2, 2], [1, 1, 3]]]
sage: SkewTableau([]).to_expr()
[[], []]

to_ribbon( self)

Returns the ribbon version of self.

sage: SkewTableau([[None,1],[2,3]]).to_ribbon()
[[1], [2, 3]]

to_tableau( self)

Returns a tableau with the same filling. This only works if the inner shape of the skew tableau has size zero.

sage: SkewTableau([[1,2],[3,4]]).to_tableau()
[[1, 2], [3, 4]]

to_word( self)

An alias for SkewTableau.to_word_by_row().

sage: SkewTableau([[None,1],[2,3]]).to_word()
[2, 3, 1]
sage: SkewTableau([[None, 2, 4], [None, 3], [1]]).to_word()
[1, 3, 2, 4]

to_word_by_column( self)

Returns the word obtained from a column reading of the skew tableau

sage: s = SkewTableau([[None,1],[2,3]])
sage: s.pp()
  .  1
  2  3
sage: s.to_word_by_column()
[1, 3, 2]

sage: s = SkewTableau([[None, 2, 4], [None, 3], [1]])
sage: s.pp()
.  2  4
.  3
1
sage: s.to_word_by_column()
[4, 2, 3, 1]

to_word_by_row( self)

Returns a word obtained from a row reading of the skew tableau.

sage: s = SkewTableau([[None,1],[2,3]])
sage: s.pp()
  .  1
  2  3
sage: s.to_word_by_row()
[2, 3, 1]
sage: s = SkewTableau([[None, 2, 4], [None, 3], [1]])
sage: s.pp()
  .  2  4
  .  3
  1
sage: s.to_word_by_row()
[1, 3, 2, 4]

weight( self)

Returns the evaluation of the word from skew tableau.

sage: SkewTableau([[1,2],[3,4]]).evaluation()
[1, 1, 1, 1]

Special Functions: __init__

Class: StandardSkewTableaux_all

class StandardSkewTableaux_all

Functions: count,$ \,$ iterator

count( self)

sage: StandardSkewTableaux().count()
+Infinity

iterator( self)

sage: StandardSkewTableaux().list() #indirect doctest
Traceback (most recent call last):
...
NotImplementedError

Special Functions: __contains__,$ \,$ __repr__

__contains__( self, x)

sage: [[None, 2], [1, 3]] in StandardSkewTableaux()
True
sage: [[None, 2], [2, 4]] in StandardSkewTableaux()
False
sage: [[None, 3], [2, 4]] in StandardSkewTableaux()
False
sage: [[None, 2], [2, 4]] in StandardSkewTableaux()
False

__repr__( self)

sage: StandardSkewTableaux() #indirect doctest
Standard skew tableaux

Class: StandardSkewTableaux_n

class StandardSkewTableaux_n
StandardSkewTableaux_n( self, n)

sage: s = StandardSkewTableaux(3)
sage: s == loads(dumps(s))
True

Functions: count,$ \,$ iterator

count( self)

sage: StandardSkewTableaux(1).count()
1
sage: StandardSkewTableaux(2).count()
4
sage: StandardSkewTableaux(3).count()
24
sage: StandardSkewTableaux(4).count()
194

iterator( self)

sage: StandardSkewTableaux(2).list() #indirect doctest
[[[1], [2]], [[None, 1], [2]], [[None, 2], [1]], [[1, 2]]]

Special Functions: __init__,$ \,$ __repr__

__repr__( self)

sage: StandardSkewTableaux(3) #indirect doctest
Standard skew tableaux of size 3

Class: StandardSkewTableaux_skewpartition

class StandardSkewTableaux_skewpartition
StandardSkewTableaux_skewpartition( self, skp)

TESTS:

sage: S = StandardSkewTableaux([[3, 2, 1], [1, 1]])
sage: S == loads(dumps(S))
True

Functions: count,$ \,$ iterator,$ \,$ list

count( self)

Returns the number of standard skew tableaux with shape of the skew partition skp.

sage: StandardSkewTableaux([[3, 2, 1], [1, 1]]).count()
8

iterator( self)

An iterator for all the standard skew tableau with shape of the skew partition skp. The standard skew tableaux are ordered lexicographically by the word obtained from their row reading.

sage: [st for st in StandardSkewTableaux([[3, 2, 1], [1, 1]])] # indirect doctest
[[[None, 1, 2], [None, 3], [4]],
 [[None, 1, 2], [None, 4], [3]],
 [[None, 1, 3], [None, 2], [4]],
 [[None, 1, 4], [None, 2], [3]],
 [[None, 1, 3], [None, 4], [2]],
 [[None, 1, 4], [None, 3], [2]],
 [[None, 2, 3], [None, 4], [1]],
 [[None, 2, 4], [None, 3], [1]]]

list( self)

Returns a list for all the standard skew tableaux with shape of the skew partition skp. The standard skew tableaux are ordered lexicographically by the word obtained from their row reading.

sage: StandardSkewTableaux([[3, 2, 1], [1, 1]]).list()
[[[None, 1, 2], [None, 3], [4]],
 [[None, 1, 2], [None, 4], [3]],
 [[None, 1, 3], [None, 2], [4]],
 [[None, 1, 4], [None, 2], [3]],
 [[None, 1, 3], [None, 4], [2]],
 [[None, 1, 4], [None, 3], [2]],
 [[None, 2, 3], [None, 4], [1]],
 [[None, 2, 4], [None, 3], [1]]]

Special Functions: __init__

See About this document... for information on suggesting changes.