Residue sequences of tableaux

A residue sequence for a StandardTableau, or StandardTableauTuple, of size \(n\) is an \(n\)-tuple \((i_1, i_2, \ldots, i_n)\) of elements of \(\ZZ / e\ZZ\) for some positive integer \(e \ge 1\). Such sequences arise in the representation theory of the symmetric group and the closely related cyclotomic Hecke algebras, and cyclotomic quiver Hecke algebras, where the residue sequences play a similar role to weights in the representations of Lie groups and Lie algebras. These Hecke algebras are semisimple when \(e\) is “large enough” and in these cases residue sequences are essentially the same as content sequences (see sage.combinat.partition.Partition.content()) and it is not difficult to see that residue sequences are in bijection with the set of standard tableaux. In the non-semisimple case, when \(e\) is “small”, different standard tableaux can have the same residue sequence. In this case the residue sequences describe how to decompose modules into generalised eigenspaces for the Jucys-Murphy elements for these algebras.

By definition, if \(t\) is a StandardTableau of size \(n\) then the residue sequence of \(t\) is the \(n\)-tuple \((i_1, \ldots, i_n)\) where \(i_m = c - r + e\ZZ\), if \(m\) appears in row \(r\) and column \(c\) of \(t\). If \(p\) is prime then such sequence arise in the representation theory of the symmetric group n characteristic \(p\). More generally, \(e\)-residue sequences arise in he representation theory of the Iwahori-Hecke algebra (see IwahoriHeckeAlgebra) the symmetric group with Hecke parameter at an \(e\)-th root of unity.

More generally, the \(e\)-residue sequence of a StandardTableau of size \(n\) and level \(l\) is the \(n\)-tuple \((i_1, \ldots, i_n)\) determined by \(e\) and a multicharge \(\kappa = (\kappa_1, \ldots, \kappa_l)\) by setting \(i_m = \kappa_k + c - r + e\ZZ\), if \(m\) appears in component \(k\), row \(r\) and column \(c\) of \(t\). These sequences arise in the representation theory of the cyclotomic Hecke algebras of type A, which are also known as Ariki-Koike algebras.

The residue classes are constructed from standard tableaux:

sage: StandardTableau([[1,2],[3,4]]).residue_sequence(2)
2-residue sequence (0,1,1,0) with multicharge (0)
sage: StandardTableau([[1,2],[3,4]]).residue_sequence(3)
3-residue sequence (0,1,2,0) with multicharge (0)

sage: StandardTableauTuple([[[5]],[[1,2],[3,4]]]).residue_sequence(3,[0,0])
3-residue sequence (0,1,2,0,0) with multicharge (0,0)
sage: StandardTableauTuple([[[5]],[[1,2],[3,4]]]).residue_sequence(3,[0,1])
3-residue sequence (1,2,0,1,0) with multicharge (0,1)
sage: StandardTableauTuple([[[5]],[[1,2],[3,4]]]).residue_sequence(3,[0,2])
3-residue sequence (2,0,1,2,0) with multicharge (0,2)

One of the most useful functions of a ResidueSequence is that it can return the StandardTableaux_residue and StandardTableaux_residue_shape that contain all of the tableaux with this residue sequence. Again, these are best accessed via the standard tableaux classes:

sage: res = StandardTableau([[1,2],[3,4]]).residue_sequence(2)
sage: res.standard_tableaux()
Standard tableaux with 2-residue sequence (0,1,1,0) and multicharge (0)
sage: res.standard_tableaux()[:]
[[[1, 2, 4], [3]],
[[1, 2], [3, 4]],
[[1, 2], [3], [4]],
[[1, 3, 4], [2]],
[[1, 3], [2, 4]],
[[1, 3], [2], [4]]]
sage: res.standard_tableaux(shape=[4])
Standard (4)-tableaux with 2-residue sequence (0,1,1,0) and multicharge (0)
sage: res.standard_tableaux(shape=[4])[:]
[]

sage: res=StandardTableauTuple([[[5]],[[1,2],[3,4]]]).residue_sequence(3,[0,0])
sage: res.standard_tableaux()
Standard tableaux with 3-residue sequence (0,1,2,0,0) and multicharge (0,0)
sage: res.standard_tableaux(shape=[[1],[2,2]])[:]
[([[5]], [[1, 2], [3, 4]]), ([[4]], [[1, 2], [3, 5]])]

These residue sequences are particularly useful in the graded representation theory of the cyclotomic KLR algebrasand the cyclotomic Hecke algebras of type~A; see [DJM1998] and [BK2009].

This module implements the following classes:

Todo

Strictly speaking this module implements residue sequences of type \(A^{(1)}_e\). Residue sequences of other types also need to be implemented.

AUTHORS:

  • Andrew Mathas (2016-07-01): Initial version
sage.combinat.tableau_residues.ResidueSequence

A residue sequence.

The residue sequence of a tableau \(t\) (of partition or partition tuple shape) is the sequence \((i_1, i_2, \ldots, i_n)\) where \(i_k\) is the residue of \(l\) in \(t\), for \(k = 1, 2, \ldots, n\), where \(n\) is the size of \(t\). Residue sequences are important in the representation theory of the cyclotomic Hecke algebras of type \(G(r, 1, n)\), and of the cyclotomic quiver Hecke algebras, because they determine the eigenvalues of the Jucys-Murphy elements upon all modules. More precisely, they index and completely determine the irreducible representations of the (cyclotomic) Gelfand-Tsetlin algebras.

Rather than being called directly, residue sequences are best accessed via the standard tableaux classes StandardTableau and StandardTableauTuple.

INPUT:

Can be of the form:

  • ResidueSequence(e, res),
  • ResidueSequence(e, multicharge, res),

where e is a positive integer not equal to 1 and res is a sequence of integers (the residues).

EXAMPLES:

sage: res = StandardTableauTuple([[[1,3],[6]],[[2,7],[4],[5]]]).residue_sequence(3,(0,5))
sage: res
3-residue sequence (0,2,1,1,0,2,0) with multicharge (0,2)
sage: res.quantum_characteristic()
3
sage: res.level()
2
sage: res.size()
7
sage: res.residues()
[0, 2, 1, 1, 0, 2, 0]
sage: res.restrict(2)
3-residue sequence (0,2) with multicharge (0,2)
sage: res.standard_tableaux([[2,1],[1],[2,1]])
Standard (2,1|1|2,1)-tableaux with 3-residue sequence (0,2,1,1,0,2,0) and multicharge (0,2)
sage: res.standard_tableaux([[2,2],[3]]).list()
[]
sage: res.standard_tableaux([[2,2],[3]])[:]
[]
sage: res.standard_tableaux()
Standard tableaux with 3-residue sequence (0,2,1,1,0,2,0) and multicharge (0,2)
sage: res.standard_tableaux()[:10]
[([[1, 3, 6, 7], [2, 5], [4]], []),
 ([[1, 3, 6], [2, 5], [4], [7]], []),
 ([[1, 3], [2, 5], [4, 6], [7]], []),
 ([[1, 3], [2, 5], [4], [7]], [[6]]),
 ([[1, 3], [2, 5], [4]], [[6, 7]]),
 ([[1, 3, 6, 7], [2], [4], [5]], []),
 ([[1, 3, 6], [2, 7], [4], [5]], []),
 ([[1, 3], [2, 7], [4], [5], [6]], []),
 ([[1, 3], [2, 7], [4], [5]], [[6]]),
 ([[1, 3], [2], [4], [5]], [[6, 7]])]

The TestSuite fails _test_pickling because __getitem__ does not support slices, so we skip this.

sage.combinat.tableau_residues.ResidueSequences

A parent class for ResidueSequence.

This class exists because ResidueSequence needs to have a parent. Apart form being a parent the only useful method that it provides is cell_residue(), which is a short-hand for computing the residue of a cell using the ResidueSequence.quantum_characteristic() and ResidueSequence.multicharge() for the residue class.

EXAMPLES:

sage: from sage.combinat.tableau_residues import ResidueSequences
sage: ResidueSequences(e=0, multicharge=(0,1,2))
0-residue sequences with multicharge (0, 1, 2)
sage: ResidueSequences(e=0, multicharge=(0,1,2)) == ResidueSequences(e=0, multicharge=(0,1,2))
True
sage: ResidueSequences(e=0, multicharge=(0,1,2)) == ResidueSequences(e=3, multicharge=(0,1,2))
False
sage: ResidueSequences(e=0, multicharge=(0,1,2)).element_class
<class 'sage.combinat.tableau_residues.ResidueSequences_with_category.element_class'>