Ribbon Tableaux¶
-
sage.combinat.ribbon_tableau.
MultiSkewTableau
¶ A multi skew tableau which is a tuple of skew tableaux.
EXAMPLES:
sage: s = MultiSkewTableau([ [[None,1],[2,3]], [[1,2],[2]] ]) sage: s.size() 6 sage: s.weight() [2, 3, 1] sage: s.shape() [[2, 2] / [1], [2, 1] / []]
-
sage.combinat.ribbon_tableau.
MultiSkewTableaux
¶ Multiskew tableaux.
-
sage.combinat.ribbon_tableau.
RibbonTableau
¶ A ribbon tableau.
A ribbon is a connected skew shape which does not contain any \(2 \times 2\) boxes. A ribbon tableau is a skew tableau whose shape is partitioned into ribbons, each of which is filled with identical entries.
EXAMPLES:
sage: rt = RibbonTableau([[None, 1],[2,3]]); rt [[None, 1], [2, 3]] sage: rt.inner_shape() [1] sage: rt.outer_shape() [2, 2] sage: rt = RibbonTableau([[None, None, 0, 0, 0], [None, 0, 0, 2], [1, 0, 1]]); rt.pp() . . 0 0 0 . 0 0 2 1 0 1
In the previous example, each ribbon is uniquely determined by a non-zero entry. The 0 entries are used to fill in the rest of the skew shape.
Note
Sanity checks are not performed; lists can contain any object.
sage: RibbonTableau(expr=[[1,1],[[5],[3,4],[1,2]]]) [[None, 1, 2], [None, 3, 4], [5]]
-
sage.combinat.ribbon_tableau.
RibbonTableau_class
¶ This exists solely for unpickling
RibbonTableau_class
objects.
-
sage.combinat.ribbon_tableau.
RibbonTableaux
¶ Ribbon tableaux.
A ribbon tableau is a skew tableau whose skew shape
shape
is tiled by ribbons of lengthlength
. The weightweight
is calculated from the labels on the ribbons.Note
Here we impose the condition that the ribbon tableaux are semistandard.
INPUT(Optional):
shape
– skew shape as a list of lists or an object of type SkewPartitionlength
– integer,shape
is partitioned into ribbons of lengthlength
weight
– list of integers, computed from the values of non-zero entries labeling the ribbons
EXAMPLES:
sage: RibbonTableaux([[2,1],[]], [1,1,1], 1) Ribbon tableaux of shape [2, 1] / [] and weight [1, 1, 1] with 1-ribbons sage: R = RibbonTableaux([[5,4,3],[2,1]], [2,1], 3) sage: for i in R: i.pp(); print("\n") . . 0 0 0 . 0 0 2 1 0 1 . . 1 0 0 . 0 0 0 1 0 2 . . 0 0 0 . 1 0 1 2 0 0
REFERENCES:
[vanLeeuwen91] Marc. A. A. van Leeuwen, Edge sequences, ribbon tableaux, and an action of affine permutations. Europe J. Combinatorics. 20 (1999). http://wwwmathlabo.univ-poitiers.fr/~maavl/pdf/edgeseqs.pdf
-
sage.combinat.ribbon_tableau.
RibbonTableaux_shape_weight_length
¶ Ribbon tableaux of a given shape, weight, and length.
-
sage.combinat.ribbon_tableau.
SemistandardMultiSkewTableaux
¶ Semistandard multi skew tableaux.
A multi skew tableau is a \(k\)-tuple of skew tableaux of given shape with a specified total weight.
EXAMPLES:
sage: S = SemistandardMultiSkewTableaux([ [[2,1],[]], [[2,2],[1]] ], [2,2,2]); S Semistandard multi skew tableaux of shape [[2, 1] / [], [2, 2] / [1]] and weight [2, 2, 2] sage: S.list() [[[[1, 1], [2]], [[None, 2], [3, 3]]], [[[1, 2], [2]], [[None, 1], [3, 3]]], [[[1, 3], [2]], [[None, 2], [1, 3]]], [[[1, 3], [2]], [[None, 1], [2, 3]]], [[[1, 1], [3]], [[None, 2], [2, 3]]], [[[1, 2], [3]], [[None, 2], [1, 3]]], [[[1, 2], [3]], [[None, 1], [2, 3]]], [[[2, 2], [3]], [[None, 1], [1, 3]]], [[[1, 3], [3]], [[None, 1], [2, 2]]], [[[2, 3], [3]], [[None, 1], [1, 2]]]]
-
sage.combinat.ribbon_tableau.
cospin_polynomial
(part, weight, length)¶ Return the cospin polynomial associated to
part
,weight
, andlength
.EXAMPLES:
sage: from sage.combinat.ribbon_tableau import cospin_polynomial sage: cospin_polynomial([6,6,6],[4,2],3) t^4 + t^3 + 2*t^2 + t + 1 sage: cospin_polynomial([3,3,3,2,1], [3,1], 3) 1 sage: cospin_polynomial([3,3,3,2,1], [2,2], 3) t + 1 sage: cospin_polynomial([3,3,3,2,1], [2,1,1], 3) t^2 + 2*t + 2 sage: cospin_polynomial([3,3,3,2,1], [1,1,1,1], 3) t^3 + 3*t^2 + 5*t + 3 sage: cospin_polynomial([5,4,3,2,1,1,1], [2,2,1], 3) 2*t^2 + 6*t + 2 sage: cospin_polynomial([[6]*6, [3,3]], [4,4,2], 3) 3*t^4 + 6*t^3 + 9*t^2 + 5*t + 3
-
sage.combinat.ribbon_tableau.
count_rec
(nexts, current, part, weight, length)¶ INPUT:
nexts, current, part
– skew partitionsweight
– non-negative integer listlength
– integer
-
sage.combinat.ribbon_tableau.
graph_implementation_rec
(skp, weight, length, function)¶
-
sage.combinat.ribbon_tableau.
insertion_tableau
(skp, perm, evaluation, tableau, length)¶ INPUT:
skp
– skew partitionsperm, evaluation
– non-negative integerstableau
– skew tableaulength
– integer
-
sage.combinat.ribbon_tableau.
list_rec
(nexts, current, part, weight, length)¶ INPUT:
nexts, current, part
– skew partitionsweight
– non-negative integer listlength
– integer
-
sage.combinat.ribbon_tableau.
spin_polynomial
(part, weight, length)¶ Returns the spin polynomial associated to
part
,weight
, andlength
.EXAMPLES:
sage: from sage.combinat.ribbon_tableau import spin_polynomial sage: spin_polynomial([6,6,6],[4,2],3) t^6 + t^5 + 2*t^4 + t^3 + t^2 sage: spin_polynomial([6,6,6],[4,1,1],3) t^6 + 2*t^5 + 3*t^4 + 2*t^3 + t^2 sage: spin_polynomial([3,3,3,2,1], [2,2], 3) t^(7/2) + t^(5/2) sage: spin_polynomial([3,3,3,2,1], [2,1,1], 3) 2*t^(7/2) + 2*t^(5/2) + t^(3/2) sage: spin_polynomial([3,3,3,2,1], [1,1,1,1], 3) 3*t^(7/2) + 5*t^(5/2) + 3*t^(3/2) + sqrt(t) sage: spin_polynomial([5,4,3,2,1,1,1], [2,2,1], 3) 2*t^(9/2) + 6*t^(7/2) + 2*t^(5/2) sage: spin_polynomial([[6]*6, [3,3]], [4,4,2], 3) 3*t^9 + 5*t^8 + 9*t^7 + 6*t^6 + 3*t^5
-
sage.combinat.ribbon_tableau.
spin_polynomial_square
(part, weight, length)¶ Returns the spin polynomial associated with
part
,weight
, andlength
, with the substitution \(t \to t^2\) made.EXAMPLES:
sage: from sage.combinat.ribbon_tableau import spin_polynomial_square sage: spin_polynomial_square([6,6,6],[4,2],3) t^12 + t^10 + 2*t^8 + t^6 + t^4 sage: spin_polynomial_square([6,6,6],[4,1,1],3) t^12 + 2*t^10 + 3*t^8 + 2*t^6 + t^4 sage: spin_polynomial_square([3,3,3,2,1], [2,2], 3) t^7 + t^5 sage: spin_polynomial_square([3,3,3,2,1], [2,1,1], 3) 2*t^7 + 2*t^5 + t^3 sage: spin_polynomial_square([3,3,3,2,1], [1,1,1,1], 3) 3*t^7 + 5*t^5 + 3*t^3 + t sage: spin_polynomial_square([5,4,3,2,1,1,1], [2,2,1], 3) 2*t^9 + 6*t^7 + 2*t^5 sage: spin_polynomial_square([[6]*6, [3,3]], [4,4,2], 3) 3*t^18 + 5*t^16 + 9*t^14 + 6*t^12 + 3*t^10
-
sage.combinat.ribbon_tableau.
spin_rec
(t, nexts, current, part, weight, length)¶ Routine used for constructing the spin polynomial.
INPUT:
weight
– list of non-negative integerslength
– the length of the ribbons we’re tiling witht
– the variable
EXAMPLES:
sage: from sage.combinat.ribbon_tableau import spin_rec sage: sp = SkewPartition sage: t = ZZ['t'].gen() sage: spin_rec(t, [], [[[], [3, 3]]], sp([[2, 2, 2], []]), [2], 3) [t^4] sage: spin_rec(t, [[0], [t^4]], [[[2, 1, 1, 1, 1], [0, 3]], [[2, 2, 2], [3, 0]]], sp([[2, 2, 2, 2, 1], []]), [2, 1], 3) [t^5] sage: spin_rec(t, [], [[[], [3, 3, 0]]], sp([[3, 3], []]), [2], 3) [t^2] sage: spin_rec(t, [[t^4], [t^3], [t^2]], [[[2, 2, 2], [0, 0, 3]], [[3, 2, 1], [0, 3, 0]], [[3, 3], [3, 0, 0]]], sp([[3, 3, 3], []]), [2, 1], 3) [t^6 + t^4 + t^2] sage: spin_rec(t, [[t^5], [t^4], [t^6 + t^4 + t^2]], [[[2, 2, 2, 2, 1], [0, 0, 3]], [[3, 3, 1, 1, 1], [0, 3, 0]], [[3, 3, 3], [3, 0, 0]]], sp([[3, 3, 3, 2, 1], []]), [2, 1, 1], 3) [2*t^7 + 2*t^5 + t^3]