Specht(e)
Specht(e, p)
Specht(e, p, val [,HeckeRing])
Let R be a field of characteristic 0, q a non--zero element of
R, and let e be the smallest positive integer such that
1+q+ldots+q^e-1=0 (we set <e>=0 if no such integer
exists). The record returned by Specht(e)
allows calculations in
the Grothendieck rings of the Hecke algebras H
of type A which are
defined over R and have parameter q. (The Hecke algebra is
described in Chapter Iwahori-Hecke algebras; see also Hecke
Hecke.) Below we also describe how to consider Hecke algebras
defined over fields of positive characteristic.
Specht
returns a record which contains, among other things,
functions S
, P
, and D
which correspond to the Specht modules,
projective indecomposable modules, and the simple modules for the
family of Hecke algebras determined by R and q. Specht allows
manipulation of arbitrary linear combinations of these ``modules'',
as well as a way of inducing and restricting them, ``multiplying''
them, and converting between these three natural bases of the
Grothendieck ring. Multiplication of modules corresponds to taking a
tensor product, and then inducing (thus giving a module for a larger
Hecke algebra).
gap> RequirePackage("specht"); H:=Specht(5); Specht(e=5, S(), P(), D(), Pq()) gap> H.D(3,2,1); D(3,2,1) gap> H.S( last ); S(6)-S(4,2)+S(3,2,1) gap> InducedModule(H.P(3,2,1)); P(4,2,1)+P(3,3,1)+P(3,2,2)+2*P(3,2,1,1) gap> H.S(last); S(4,2,1)+S(3,3,1)+S(3,2,2)+2*S(3,2,1,1)+S(2,2,2,1)+S(2,2,1,1,1) gap> H.D(3,1)*H.D(3); D(7)+2*D(6,1)+D(5,2)+D(5,1,1)+2*D(4,3)+D(4,2,1)+D(3,3,1) gap> RestrictedModule(last); 4*D(6)+3*D(5,1)+5*D(4,2)+2*D(4,1,1)+2*D(3,3)+2*D(3,2,1) gap> H.S(last); S(6)+3*S(5,1)+3*S(4,2)+2*S(4,1,1)+2*S(3,3)+2*S(3,2,1) gap> H.P(last); P(6)+3*P(5,1)+2*P(4,2)+2*P(4,1,1)+2*P(3,3)
The way in which the partitions indexing the modules are printed can
be changed using SpechtPrettyPrint
SpechtPrettyPrint.
There is also a function Schur
Schur for doing calculations with
the q--Schur algebra. See DecompositionMatrix
DecompositionMatrix, and CrystalDecompositionMatrix
CrystalDecompositionMatrix.
This function requires the package ``specht'' (see RequirePackage). medskip
The functions H.S
, H.P
, and H.D
The functions H.S
, H.P
, and H.D
return records which correspond
to Specht modules, projective indecomposable modules, and simple
modules respectively. Each of these three functions can be called in
four different ways, as we now describe.
bigskip
H.S
(mu) qquad H.P
(mu) qquad H.D
(mu)
In the first form, mu is a partition (either a list, or a sequence of integers), and the corresponding Specht module, PIM, or simple module (respectively), is returned.
gap> H.P(4,3,2); P(4,3,2)
bigskip
H.S
(x) qquad H.P
(x) qquad H.D
(x)
Here, x is an H--module. In this form, H.S
rewrites x as a
linear combination of Specht modules, if possible. Similarly, H.P
and H.D
rewrite x as a linear combination of PIMs and simple
modules respectively. These conversions require knowledge of the
relevant decomposition matrix of H; if this is not known then
false
is returned (over fields of characteristic zero, all of the
decomposition matrices are known via the algorithm of [LLT]; various
other decomposition matrices are included with Specht). For example,
H.S
(H.P
(mu)) returns sum_nu d_numu S
(nu), or
false
if some of these decomposition multiplicities are not known.
gap> H.D( H.P(4,3,2) ); D(5,3,1)+2*D(4,3,2)+D(2,2,2,2,1) gap> H.S( H.D( H.S(1,1,1,1,1) ) ); -S(5)+S(4,1)-S(3,1,1)+S(2,1,1,1)
As the last example shows, Specht does not always behave as
expected. The reason for this is that Specht modules indexed by
e--singular partitions can always be written as a linear combination
of Specht modules which involve only e--regular partitions. As such,
it is not always clear when two elements are equal in the Grothendieck
ring. Consequently, to test whether two modules are equal you should
first rewrite both modules in the D
--basis; this is not done by
Specht because it would be very inefficient.
bigskip
H.S
(d, mu) qquad H.P
(d, mu) qquad H.D
(d, mu)
In the third form, d is a decomposition matrix and mu is a
partition. This is useful when you are trying to calculate a new
decomposition matrix d because it allows you to do calculations
using the known entries of d to deduce information about the unknown
ones. When used in this way, H.P
and H.D
use d to rewrite
P
(mu) and D
(mu) respectively as a linear combination of
Specht modules, and H.S
uses d to write S
(mu) as a linear
combination of simple modules. If the values of the unknown entries in
d are needed, false
is returned.
gap> H:=Specht(3,3); # e = 3, p = 3 = characteristic of 'R' Specht(e=3, p=3, S(), P(), D()) gap> d:=InducedDecompositionMatrix(DecompositionMatrix(H,14));; # Inducing.... The following projectives are missing from <d>: [ 15 ] [ 8, 7 ] gap> H.P(d,4,3,3,2,2,1); S(4,3,3,2,2,1)+S(4,3,3,2,1,1,1)+S(4,3,2,2,2,1,1)+S(3,3,3,2,2,1,1) gap> H.S(d,7, 3, 3, 2); D(11,2,1,1)+D(10,3,1,1)+D(8,5,1,1)+D(8,3,3,1)+D(7,6,1,1)+D(7,3,3,2) gap> H.D(d,14,1); false
The final example returned false
because the partitions (14,1)
and
(15)
have the same 3--core (and P
(15) is missing from d).
bigskip
H.S
(d, x) qquad H.P
(d, x) qquad H.D
(d, x)
In the final form, d is a decomposition matrix and x is a
module. All three functions rewrite x in their respective basis
using d. Again this is only useful when you are trying to calculate
a new decomposition matrix because, for any ``known'' decomposition
matrix d, H.S(x)
and H.S
(d, x) are equivalent (and
similarly for H.P
and H.D
).
gap> H.S(d, H.D(d,10,5) ); -S(13,2)+S(10,5)
GAP 3.4.4