# Ariki-Koike Algebra Representations#

AUTHORS:

• Travis Scrimshaw (2023-12-28): Initial version

class sage.algebras.hecke_algebras.ariki_koike_specht_modules.SpechtModule(AK, la)[source]#

Specht module of the Ariki-Koike algebra.

Let $$H_{r,n}(q, u)$$ be the Ariki-Koike algebra with parameters $$q$$ and $$u = (u_1, \ldots, u_r)$$ (note our indexing convention for the $$u$$ parameters differs from sage.algebras.hecke_algebras.ariki_koike_algebra) over a commutative ring $$R$$. Let $$\lambda$$ be a partition tuple of level $$r$$ and size $$n$$. The Specht module of shape $$\lambda$$ is the (right) $$H_{r,n}(q,u)$$-representation $$S^{\lambda}$$ given as free $$R$$-module with basis given by the standard tableau (tuples) of shape $$\lambda$$.

We will now describe the right action of the Ariki-Koike algebra, but we first need to set some notation and definitions. Let $$t$$ be a standard tableau tuple of level $$r$$ and size $$n$$. Define the residue of $$i$$ in $$t$$ to be $$r_t(i) = q^{c-r} u_k$$, where $$i$$ is in cell $$(r, c)$$ of the $$k$$-th tableau.

The action of $$L_i$$ is given by $$t \cdot L_i = r_T(i) t$$. For $$T_i$$, we need to consider the following cases. If $$i, i+1$$ are in the same row (resp. column), then $$t \cdot T_i = q t$$ (resp. $$t \cdot T_i = -t$$). Otherwise if we swap $$i, i+1$$, the resulting tableau tuple $$s$$ is again standard and the action is given by

$t \cdot T_i = \frac{(q - 1) r_t(i)}{r_s(i) - r_t(i)} t + \frac{q r_t(i) - r_s(i)}{r_s(i) - r_t(i)} s.$

Note that $$r_s(i) = r_t(i+1)$$.

Over a field of characteristic $$0$$, the set of Specht modules for all partition tuples of level $$r$$ and size $$n$$ form the complete set of irreducible modules for $$H_{r,n}(q, u)$$ [AK1994]. (The condition on the base ring can be weakened; see Theorem 3.2 of [Mathas2002].)

EXAMPLES:

We construct the Specht module $$S^{(2,1,21)}$$ for $$H_{3,6}(q, u)$$ with generic parameters $$q, u$$ over $$\GF(3)$$ and perform some basic computations. We change the tableaux to use the compact representation to condense the output:

sage: TableauTuples.options.display = 'compact'

sage: R = PolynomialRing(GF(3), 'u', 3)
sage: u = R.gens()
sage: q = R['q'].gen()
sage: H = algebras.ArikiKoike(3, 6, q, u, use_fraction_field=True)
sage: LT = H.LT()
sage: T0, T1, T2, T3, T4, T5 = LT.T()
sage: S = H.specht_module([[2], [1], [2,1]])
sage: S.dimension()
120
sage: elt = S.an_element(); elt
S[1,2|3|4,5/6] - S[1,3|2|4,5/6] + S[1,3|4|2,5/6]
sage: elt * LT.L(3)
u1*S[1,2|3|4,5/6] + (-u0*q)*S[1,3|2|4,5/6] + u0*q*S[1,3|4|2,5/6]
sage: elt * T2
(((-u0-u1)*q-u1)/(-u0*q+u1))*S[1,2|3|4,5/6]
+ (((-u0+u2)*q)/(u0*q-u2))*S[1,2|4|3,5/6]
+ ((-u0*q^2-u0*q-u1)/(-u0*q+u1))*S[1,3|2|4,5/6]
+ ((u0*q^2-u0*q)/(u0*q-u2))*S[1,3|4|2,5/6]
sage: (elt * T3) * T2 == elt * (T3 * T2)
True
sage: elt * T2 * T3 * T2 == elt * T3 * T2 * T3
True
sage: elt * T0 * T1 * T0 * T1 == elt * T1 * T0 * T1 * T0
True
sage: elt * T2 * T5 == elt * T5 * T2
True

sage: TableauTuples.options._reset()

>>> from sage.all import *
>>> TableauTuples.options.display = 'compact'

>>> R = PolynomialRing(GF(Integer(3)), 'u', Integer(3))
>>> u = R.gens()
>>> q = R['q'].gen()
>>> H = algebras.ArikiKoike(Integer(3), Integer(6), q, u, use_fraction_field=True)
>>> LT = H.LT()
>>> T0, T1, T2, T3, T4, T5 = LT.T()
>>> S = H.specht_module([[Integer(2)], [Integer(1)], [Integer(2),Integer(1)]])
>>> S.dimension()
120
>>> elt = S.an_element(); elt
S[1,2|3|4,5/6] - S[1,3|2|4,5/6] + S[1,3|4|2,5/6]
>>> elt * LT.L(Integer(3))
u1*S[1,2|3|4,5/6] + (-u0*q)*S[1,3|2|4,5/6] + u0*q*S[1,3|4|2,5/6]
>>> elt * T2
(((-u0-u1)*q-u1)/(-u0*q+u1))*S[1,2|3|4,5/6]
+ (((-u0+u2)*q)/(u0*q-u2))*S[1,2|4|3,5/6]
+ ((-u0*q^2-u0*q-u1)/(-u0*q+u1))*S[1,3|2|4,5/6]
+ ((u0*q^2-u0*q)/(u0*q-u2))*S[1,3|4|2,5/6]
>>> (elt * T3) * T2 == elt * (T3 * T2)
True
>>> elt * T2 * T3 * T2 == elt * T3 * T2 * T3
True
>>> elt * T0 * T1 * T0 * T1 == elt * T1 * T0 * T1 * T0
True
>>> elt * T2 * T5 == elt * T5 * T2
True

>>> TableauTuples.options._reset()


REFERENCES:

class Element[source]#
L(i)[source]#

Return the (right) action of $$L_i$$ on self.

INPUT:

• i – an integer or a list of integers

EXAMPLES:

sage: TableauTuples.options.display = 'compact'  # compact tableau printing
sage: AK = algebras.ArikiKoike(3, 6, use_fraction_field=True)
sage: S = AK.specht_module([[2], [], [3,1]])
sage: elt = S.an_element(); elt
S[1,2|-|3,4,5/6] + 2*S[1,3|-|2,4,5/6]
+ 3*S[2,3|-|1,4,5/6] + S[2,4|-|1,3,5/6]
sage: elt.L(1)
u0*S[1,2|-|3,4,5/6] + 2*u0*S[1,3|-|2,4,5/6]
+ 3*u2*S[2,3|-|1,4,5/6] + u2*S[2,4|-|1,3,5/6]
sage: elt.L(2)
u0*q*S[1,2|-|3,4,5/6] + 2*u2*S[1,3|-|2,4,5/6]
+ 3*u0*S[2,3|-|1,4,5/6] + u0*S[2,4|-|1,3,5/6]
sage: elt.L(6)
u2/q*S[1,2|-|3,4,5/6] + 2*u2/q*S[1,3|-|2,4,5/6]
+ 3*u2/q*S[2,3|-|1,4,5/6] + u2/q*S[2,4|-|1,3,5/6]
sage: elt.L([3,3,3])
u2^3*S[1,2|-|3,4,5/6] + 2*u0^3*q^3*S[1,3|-|2,4,5/6]
+ 3*u0^3*q^3*S[2,3|-|1,4,5/6] + u2^3*q^3*S[2,4|-|1,3,5/6]
sage: LT = AK.LT()
sage: elt.L([3,3,3]) == elt * (LT.L(3)^3)
True
sage: TableauTuples.options._reset()  # reset

>>> from sage.all import *
>>> TableauTuples.options.display = 'compact'  # compact tableau printing
>>> AK = algebras.ArikiKoike(Integer(3), Integer(6), use_fraction_field=True)
>>> S = AK.specht_module([[Integer(2)], [], [Integer(3),Integer(1)]])
>>> elt = S.an_element(); elt
S[1,2|-|3,4,5/6] + 2*S[1,3|-|2,4,5/6]
+ 3*S[2,3|-|1,4,5/6] + S[2,4|-|1,3,5/6]
>>> elt.L(Integer(1))
u0*S[1,2|-|3,4,5/6] + 2*u0*S[1,3|-|2,4,5/6]
+ 3*u2*S[2,3|-|1,4,5/6] + u2*S[2,4|-|1,3,5/6]
>>> elt.L(Integer(2))
u0*q*S[1,2|-|3,4,5/6] + 2*u2*S[1,3|-|2,4,5/6]
+ 3*u0*S[2,3|-|1,4,5/6] + u0*S[2,4|-|1,3,5/6]
>>> elt.L(Integer(6))
u2/q*S[1,2|-|3,4,5/6] + 2*u2/q*S[1,3|-|2,4,5/6]
+ 3*u2/q*S[2,3|-|1,4,5/6] + u2/q*S[2,4|-|1,3,5/6]
>>> elt.L([Integer(3),Integer(3),Integer(3)])
u2^3*S[1,2|-|3,4,5/6] + 2*u0^3*q^3*S[1,3|-|2,4,5/6]
+ 3*u0^3*q^3*S[2,3|-|1,4,5/6] + u2^3*q^3*S[2,4|-|1,3,5/6]
>>> LT = AK.LT()
>>> elt.L([Integer(3),Integer(3),Integer(3)]) == elt * (LT.L(Integer(3))**Integer(3))
True
>>> TableauTuples.options._reset()  # reset

T(i)[source]#

Return the (right) action of $$T_i$$ on self.

INPUT:

• i – an integer or a list of integers

EXAMPLES:

sage: TableauTuples.options.display = 'compact'  # compact tableau printing
sage: AK = algebras.ArikiKoike(3, 10, use_fraction_field=True)
sage: q = AK.q()
sage: S = AK.specht_module([[2,1], [], [3,2,2]])
sage: P = S.basis().keys()
sage: t = P([[[2,4],[8]], [], [[1,5,7],[3,6],[9,10]]])
sage: b = S.basis()[t]
sage: b.T(2)
((u2*q-u2)/(-u0*q+u2))*S[2,4/8|-|1,5,7/3,6/9,10]
+ ((u0*q^2-u2)/(-u0*q+u2))*S[3,4/8|-|1,5,7/2,6/9,10]
sage: b.T(6)
((-q)/(q+1))*S[2,4/8|-|1,5,6/3,7/9,10]
+ (q^2/(q+1))*S[2,4/8|-|1,5,7/3,6/9,10]
sage: b.T([2,1,2]) == b.T([1,2,1])
True
sage: b.T(9)
q*S[2,4/8|-|1,5,7/3,6/9,10]
sage: all(b.T([i,i]) == (q-1)*b.T(i) + q*b for i in range(1,10))
True
sage: b.T(0)
u2*S[2,4/8|-|1,5,7/3,6/9,10]
sage: b.T([0,1,0,1]) == b.T([1,0,1,0])
True
sage: TableauTuples.options._reset()  # reset

>>> from sage.all import *
>>> TableauTuples.options.display = 'compact'  # compact tableau printing
>>> AK = algebras.ArikiKoike(Integer(3), Integer(10), use_fraction_field=True)
>>> q = AK.q()
>>> S = AK.specht_module([[Integer(2),Integer(1)], [], [Integer(3),Integer(2),Integer(2)]])
>>> P = S.basis().keys()
>>> t = P([[[Integer(2),Integer(4)],[Integer(8)]], [], [[Integer(1),Integer(5),Integer(7)],[Integer(3),Integer(6)],[Integer(9),Integer(10)]]])
>>> b = S.basis()[t]
>>> b.T(Integer(2))
((u2*q-u2)/(-u0*q+u2))*S[2,4/8|-|1,5,7/3,6/9,10]
+ ((u0*q^2-u2)/(-u0*q+u2))*S[3,4/8|-|1,5,7/2,6/9,10]
>>> b.T(Integer(6))
((-q)/(q+1))*S[2,4/8|-|1,5,6/3,7/9,10]
+ (q^2/(q+1))*S[2,4/8|-|1,5,7/3,6/9,10]
>>> b.T([Integer(2),Integer(1),Integer(2)]) == b.T([Integer(1),Integer(2),Integer(1)])
True
>>> b.T(Integer(9))
q*S[2,4/8|-|1,5,7/3,6/9,10]
>>> all(b.T([i,i]) == (q-Integer(1))*b.T(i) + q*b for i in range(Integer(1),Integer(10)))
True
>>> b.T(Integer(0))
u2*S[2,4/8|-|1,5,7/3,6/9,10]
>>> b.T([Integer(0),Integer(1),Integer(0),Integer(1)]) == b.T([Integer(1),Integer(0),Integer(1),Integer(0)])
True
>>> TableauTuples.options._reset()  # reset

ariki_koike_algebra()[source]#

Return the Ariki-Koike algebra that self is a representation of.

EXAMPLES:

sage: AK = algebras.ArikiKoike(3, 6)
sage: S = AK.specht_module([[2], [], [3,1]])
sage: S.ariki_koike_algebra() is AK
True

>>> from sage.all import *
>>> AK = algebras.ArikiKoike(Integer(3), Integer(6))
>>> S = AK.specht_module([[Integer(2)], [], [Integer(3),Integer(1)]])
>>> S.ariki_koike_algebra() is AK
True