Skew Tableaux¶
AUTHORS:
- Mike Hansen: Initial version
- Travis Scrimshaw, Arthur Lubovsky (2013-02-11):
Factored out
CombinatorialClass
-
sage.combinat.skew_tableau.
SemistandardSkewTableaux
¶ Semistandard skew tableaux.
This class can be initialized with several optional variables: the size of the skew tableaux (as a nameless integer variable), their shape (as a nameless skew partition variable), their weight (
weight()
, as a nameless second variable after either the size or the shape) and their maximum entry (as an optional keyword variable calledmax_entry
, unless the weight has been specified). If neither the weight nor the maximum entry is specified, the maximum entry defaults to the size of the tableau.Note that “maximum entry” does not literally mean the highest entry; instead it is just an upper bound that no entry is allowed to surpass.
EXAMPLES:
The (infinite) class of all semistandard skew tableaux:
sage: SemistandardSkewTableaux() Semistandard skew tableaux
The (still infinite) class of all semistandard skew tableaux with maximum entry \(2\):
sage: SemistandardSkewTableaux(max_entry=2) Semistandard skew tableaux with maximum entry 2
The class of all semistandard skew tableaux of given size \(3\) and maximum entry \(3\):
sage: SemistandardSkewTableaux(3) Semistandard skew tableaux of size 3 and maximum entry 3
To set a different maximum entry:
sage: SemistandardSkewTableaux(3, max_entry = 7) Semistandard skew tableaux of size 3 and maximum entry 7
Specifying a shape:
sage: SemistandardSkewTableaux([[2,1],[]]) Semistandard skew tableaux of shape [2, 1] / [] and maximum entry 3
Specifying both a shape and a maximum entry:
sage: S = SemistandardSkewTableaux([[2,1],[1]], max_entry = 3); S Semistandard skew tableaux of shape [2, 1] / [1] and maximum entry 3 sage: S.list() [[[None, 1], [1]], [[None, 2], [1]], [[None, 1], [2]], [[None, 3], [1]], [[None, 1], [3]], [[None, 2], [2]], [[None, 3], [2]], [[None, 2], [3]], [[None, 3], [3]]] sage: for n in range(5): ....: print("{} {}".format(n, len(SemistandardSkewTableaux([[2,2,1],[1]], max_entry = n)))) 0 0 1 0 2 1 3 9 4 35
Specifying a shape and a weight:
sage: SemistandardSkewTableaux([[2,1],[]],[2,1]) Semistandard skew tableaux of shape [2, 1] / [] and weight [2, 1]
(the maximum entry is redundant in this case and thus is ignored).
Specifying a size and a weight:
sage: SemistandardSkewTableaux(3, [2,1]) Semistandard skew tableaux of size 3 and weight [2, 1]
Warning
If the shape is not specified, the iterator of this class yields only skew tableaux whose shape is reduced, in the sense that there are no empty rows before the last nonempty row, and there are no empty columns before the last nonempty column. (Otherwise it would go on indefinitely.)
Warning
This class acts as a factory. The resulting classes are mainly useful for iteration. Do not rely on their containment tests, as they are not correct, e. g.:
sage: SkewTableau([[None]]) in SemistandardSkewTableaux(2) True
-
sage.combinat.skew_tableau.
SemistandardSkewTableaux_all
¶ Class of all semistandard skew tableaux, possibly with a given maximum entry.
-
sage.combinat.skew_tableau.
SemistandardSkewTableaux_shape
¶ Class of semistandard skew tableaux of a fixed skew shape \(\lambda / \mu\) with a given max entry.
A semistandard skew tableau with max entry \(i\) is required to have all its entries less or equal to \(i\). It is not required to actually contain an entry \(i\).
INPUT:
p
– A skew partitionmax_entry
– The max entry; defaults to the size ofp
.
Warning
Input is not checked; please use
SemistandardSkewTableaux
to ensure the options are properly parsed.
-
sage.combinat.skew_tableau.
SemistandardSkewTableaux_shape_weight
¶ Class of semistandard skew tableaux of a fixed skew shape \(\lambda / \nu\) and weight \(\mu\).
-
sage.combinat.skew_tableau.
SemistandardSkewTableaux_size
¶ Class of all semistandard skew tableaux of a fixed size \(n\), possibly with a given maximum entry.
-
sage.combinat.skew_tableau.
SemistandardSkewTableaux_size_weight
¶ Class of semistandard tableaux of a fixed size \(n\) and weight \(\mu\).
-
sage.combinat.skew_tableau.
SkewTableau
¶ A skew tableau.
Note that Sage by default uses the English convention for partitions and tableaux. To change this, see
Tableaux.options()
.EXAMPLES:
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 each row from bottom to top:sage: SkewTableau(expr=[[1,1],[[5],[3,4],[1,2]]]) [[None, 1, 2], [None, 3, 4], [5]]
The
chain
form of a skew tableau consists of a list of partitions \(\lambda_1,\lambda_2,\ldots,\), such that all cells in \(\lambda_{i+1}\) that are not in \(\lambda_i\) have entry \(i\):sage: SkewTableau(chain=[[2], [2, 1], [3, 1], [4, 3, 2, 1]]) [[None, None, 2, 3], [1, 3, 3], [3, 3], [3]]
-
sage.combinat.skew_tableau.
SkewTableau_class
¶ This exists solely for unpickling
SkewTableau_class
objects.
-
sage.combinat.skew_tableau.
SkewTableaux
¶ Class of all skew tableaux.
-
sage.combinat.skew_tableau.
StandardSkewTableaux
¶ Standard skew tableaux.
EXAMPLES:
sage: S = StandardSkewTableaux(); S Standard skew tableaux sage: S.cardinality() +Infinity
sage: S = StandardSkewTableaux(2); S Standard skew tableaux of size 2 sage: S.cardinality() 4
sage: StandardSkewTableaux([[3, 2, 1], [1, 1]]).list() [[[None, 2, 3], [None, 4], [1]], [[None, 1, 2], [None, 3], [4]], [[None, 1, 2], [None, 4], [3]], [[None, 1, 3], [None, 4], [2]], [[None, 1, 4], [None, 3], [2]], [[None, 1, 4], [None, 2], [3]], [[None, 1, 3], [None, 2], [4]], [[None, 2, 4], [None, 3], [1]]]
-
sage.combinat.skew_tableau.
StandardSkewTableaux_all
¶ Class of all standard skew tableaux.
-
sage.combinat.skew_tableau.
StandardSkewTableaux_shape
¶ Standard skew tableaux of a fixed skew shape \(\lambda / \mu\).
-
sage.combinat.skew_tableau.
StandardSkewTableaux_size
¶ Standard skew tableaux of a fixed size \(n\).