# Super Tableaux#

AUTHORS:

• Matthew Lancellotti (2007): initial version

• Chaman Agrawal (2019-07-23): Modify standard and semistandard tableaux for super tableaux.

class sage.combinat.super_tableau.SemistandardSuperTableau(parent, t, check=True, preprocessed=False)[source]#

Bases: Tableau

A semistandard super tableau.

A semistandard super tableau is a tableau with primed positive integer entries. As defined in [Muth2019], a semistandard super tableau weakly increases along the rows and down the columns. Also, the letters of even parity (unprimed) strictly increases down the columns, and letters of oddd parity (primed) strictly increases along the rows. Note that Sage uses the English convention for partitions and tableaux; the longer rows are displayed on top.

INPUT:

• t – a tableau, a list of iterables, or an empty list

EXAMPLES:

sage: t = SemistandardSuperTableau([['1p',2,"3'"],[2,3]]); t
[[1', 2, 3'], [2, 3]]
sage: t.shape()
[3, 2]
sage: t.pp() # pretty printing
1' 2 3'
2 3
sage: t = Tableau([["1p",2],[2]])
sage: s = SemistandardSuperTableau(t); s
[[1', 2], [2]]
sage: SemistandardSuperTableau([]) # The empty tableau
[]

>>> from sage.all import *
>>> t = SemistandardSuperTableau([['1p',Integer(2),"3'"],[Integer(2),Integer(3)]]); t
[[1', 2, 3'], [2, 3]]
>>> t.shape()
[3, 2]
>>> t.pp() # pretty printing
1' 2 3'
2 3
>>> t = Tableau([["1p",Integer(2)],[Integer(2)]])
>>> s = SemistandardSuperTableau(t); s
[[1', 2], [2]]
>>> SemistandardSuperTableau([]) # The empty tableau
[]

check()[source]#

Check that self is a valid semistandard super tableau.

class sage.combinat.super_tableau.SemistandardSuperTableaux(**kwds)[source]#

The set of semistandard super tableaux.

A semistandard super tableau is a tableau with primed positive integer entries. As defined in [Muth2019], a semistandard super tableau weakly increases along the rows and down the columns. Also, the letters of even parity (unprimed) strictly increases down the columns, and letters of oddd parity (primed) strictly increases along the rows. Note that Sage uses the English convention for partitions and tableaux; the longer rows are displayed on top.

EXAMPLES:

sage: SST = SemistandardSuperTableaux(); SST
Semistandard super tableaux

>>> from sage.all import *
>>> SST = SemistandardSuperTableaux(); SST
Semistandard super tableaux

Element[source]#
class sage.combinat.super_tableau.SemistandardSuperTableaux_all[source]#

All semistandard super tableaux.

class sage.combinat.super_tableau.StandardSuperTableau(parent, t, check=True, preprocessed=False)[source]#

A standard super tableau.

A standard super tableau is a semistandard super tableau whose entries are in bijection with positive primed integers $$1', 1, 2' \ldots n$$.

INPUT:

• t – a Tableau, a list of iterables, or an empty list

EXAMPLES:

sage: t = StandardSuperTableau([["1'",1,"2'",2,"3'"],[3,"4'"]]); t
[[1', 1, 2', 2, 3'], [3, 4']]
sage: t.shape()
[5, 2]
sage: t.pp() # pretty printing
1' 1 2' 2 3'
3 4'
sage: t.is_standard()
True
sage: StandardSuperTableau([]) # The empty tableau
[]

>>> from sage.all import *
>>> t = StandardSuperTableau([["1'",Integer(1),"2'",Integer(2),"3'"],[Integer(3),"4'"]]); t
[[1', 1, 2', 2, 3'], [3, 4']]
>>> t.shape()
[5, 2]
>>> t.pp() # pretty printing
1' 1 2' 2 3'
3 4'
>>> t.is_standard()
True
>>> StandardSuperTableau([]) # The empty tableau
[]

check()[source]#

Check that self is a standard tableau.

is_standard()[source]#

Return True since self is a standard super tableau.

EXAMPLES:

sage: StandardSuperTableau([['1p', 1], ['2p', 2]]).is_standard()
True

>>> from sage.all import *
>>> StandardSuperTableau([['1p', Integer(1)], ['2p', Integer(2)]]).is_standard()
True

class sage.combinat.super_tableau.StandardSuperTableaux(**kwds)[source]#

The set of standard super tableaux.

A standard super tableau is a tableau whose entries are primed positive integers, which are strictly increasing in rows and down columns and contains each letters from 1’,1,2’…n exactly once.

INPUT:

• n – a non-negative integer or a partition.

EXAMPLES:

sage: SST = StandardSuperTableaux()
sage: SST
Standard super tableaux
sage: SST([["1'",1,"2'",2,"3'"],[3,"4'"]])
[[1', 1, 2', 2, 3'], [3, 4']]
sage: SST = StandardSuperTableaux(3)
sage: SST
Standard super tableaux of size 3
sage: SST.first()
[[1', 1, 2']]
sage: SST.last()
[[1'], [1], [2']]
sage: SST.cardinality()
4
sage: SST.list()
[[[1', 1, 2']], [[1', 2'], [1]], [[1', 1], [2']], [[1'], [1], [2']]]
sage: SST = StandardSuperTableaux([3,2])
sage: SST
Standard super tableaux of shape [3, 2]

>>> from sage.all import *
>>> SST = StandardSuperTableaux()
>>> SST
Standard super tableaux
>>> SST([["1'",Integer(1),"2'",Integer(2),"3'"],[Integer(3),"4'"]])
[[1', 1, 2', 2, 3'], [3, 4']]
>>> SST = StandardSuperTableaux(Integer(3))
>>> SST
Standard super tableaux of size 3
>>> SST.first()
[[1', 1, 2']]
>>> SST.last()
[[1'], [1], [2']]
>>> SST.cardinality()
4
>>> SST.list()
[[[1', 1, 2']], [[1', 2'], [1]], [[1', 1], [2']], [[1'], [1], [2']]]
>>> SST = StandardSuperTableaux([Integer(3),Integer(2)])
>>> SST
Standard super tableaux of shape [3, 2]

Element[source]#

alias of StandardSuperTableau

class sage.combinat.super_tableau.StandardSuperTableaux_all[source]#

All standard super tableaux.

class sage.combinat.super_tableau.StandardSuperTableaux_shape(p)[source]#

Standard super tableaux of a fixed shape $$p$$.

cardinality()[source]#

Return the number of standard super tableaux of given shape.

The standard super tableaux of a fixed shape $$p$$ are in bijection with the corresponding standard tableaux (under the alphabet relabeling). Refer sage.combinat.tableau.StandardTableaux_shape for more details.

EXAMPLES:

sage: StandardSuperTableaux([3,2,1]).cardinality()
16
sage: StandardSuperTableaux([2,2]).cardinality()
2
sage: StandardSuperTableaux([5]).cardinality()
1
sage: StandardSuperTableaux([6,5,5,3]).cardinality()
6651216
sage: StandardSuperTableaux([]).cardinality()
1

>>> from sage.all import *
>>> StandardSuperTableaux([Integer(3),Integer(2),Integer(1)]).cardinality()
16
>>> StandardSuperTableaux([Integer(2),Integer(2)]).cardinality()
2
>>> StandardSuperTableaux([Integer(5)]).cardinality()
1
>>> StandardSuperTableaux([Integer(6),Integer(5),Integer(5),Integer(3)]).cardinality()
6651216
>>> StandardSuperTableaux([]).cardinality()
1

class sage.combinat.super_tableau.StandardSuperTableaux_size(n)[source]#

Standard super tableaux of fixed size $$n$$.

EXAMPLES:

sage: [ t for t in StandardSuperTableaux(1) ]
[[[1']]]
sage: [ t for t in StandardSuperTableaux(2) ]
[[[1', 1]], [[1'], [1]]]
sage: [ t for t in StandardSuperTableaux(3) ]
[[[1', 1, 2']], [[1', 2'], [1]], [[1', 1], [2']], [[1'], [1], [2']]]
sage: StandardSuperTableaux(4)[:]
[[[1', 1, 2', 2]],
[[1', 2', 2], [1]],
[[1', 1, 2], [2']],
[[1', 1, 2'], [2]],
[[1', 2'], [1, 2]],
[[1', 1], [2', 2]],
[[1', 2], [1], [2']],
[[1', 2'], [1], [2]],
[[1', 1], [2'], [2]],
[[1'], [1], [2'], [2]]]

>>> from sage.all import *
>>> [ t for t in StandardSuperTableaux(Integer(1)) ]
[[[1']]]
>>> [ t for t in StandardSuperTableaux(Integer(2)) ]
[[[1', 1]], [[1'], [1]]]
>>> [ t for t in StandardSuperTableaux(Integer(3)) ]
[[[1', 1, 2']], [[1', 2'], [1]], [[1', 1], [2']], [[1'], [1], [2']]]
>>> StandardSuperTableaux(Integer(4))[:]
[[[1', 1, 2', 2]],
[[1', 2', 2], [1]],
[[1', 1, 2], [2']],
[[1', 1, 2'], [2]],
[[1', 2'], [1, 2]],
[[1', 1], [2', 2]],
[[1', 2], [1], [2']],
[[1', 2'], [1], [2]],
[[1', 1], [2'], [2]],
[[1'], [1], [2'], [2]]]

cardinality()[source]#

Return the number of all standard super tableaux of size n.

The standard super tableaux of size $$n$$ are in bijection with the corresponding standard tableaux (under the alphabet relabeling). Refer sage.combinat.tableau.StandardTableaux_size for more details.

EXAMPLES:

sage: StandardSuperTableaux(3).cardinality()
4
sage: ns = [1,2,3,4,5,6]
sage: sts = [StandardSuperTableaux(n) for n in ns]
sage: all(st.cardinality() == len(st.list()) for st in sts)
True
sage: StandardSuperTableaux(50).cardinality()  # long time
27886995605342342839104615869259776

>>> from sage.all import *
>>> StandardSuperTableaux(Integer(3)).cardinality()
4
>>> ns = [Integer(1),Integer(2),Integer(3),Integer(4),Integer(5),Integer(6)]
>>> sts = [StandardSuperTableaux(n) for n in ns]
>>> all(st.cardinality() == len(st.list()) for st in sts)
True
>>> StandardSuperTableaux(Integer(50)).cardinality()  # long time
27886995605342342839104615869259776