Here is a set of programs in GAP4 for computing the space of homomorphisms between two Specht modules for the Iwahori–Hecke algebra of type \(A\).

We refer to the paper of Dipper and James [DJ1,DJ2] for most of the background here. Suppose \(\mathbb F\) is a field of characteristic \(p\geqslant0\), and that \(q\) is a non-zero element of \(\mathbb F\). Let \(e\) be the minimal positive integer such that \(1+q+\cdots+q^{e-1}=0\) in \(\mathbb F\), or 0 if there is no such integer. Then \(e\) is an integer greater than \(1\), or \(e=0\). Given a positive integer \(n\), let \(\mathcal H_n\) denote the Iwahori–Hecke algebra of the symmetric group \(\mathfrak S_n\), with quadratic relations \((T_i-q)(T_i+1)=0\). Given any partition \(\lambda\) of \(n\), let \(S^\lambda\) denote the *Specht module* for \(\mathcal H_n\), as defined in [DJ1].

The purpose of these programs is to compute a basis for the space of homomorphisms \(\operatorname{Hom}_{\mathcal H_n}(S^\lambda,S^\mu)\), when \(\lambda\) and \(\mu\) are partitions of \(n\). Well, almost. In fact, the programs compute a basis for the space \(\operatorname{EHom}_{\mathcal H_n}(S^\lambda,S^\mu)\), which consists only of those homomorphisms which can be expressed as linear combinations of *semistandard* homomorphisms. (In fact, \(\operatorname{Hom}_{\mathcal H_n}(S^\lambda,S^\mu)\) is equal to \(\operatorname{Hom}_{\mathcal H_n}(S^\lambda,S^\mu)\) in all cases except when \(e=2\) and \(\lambda\) is \(2\)-singular. In addition, \(\operatorname{EHom}_{\mathcal H_n}(S^\lambda,S^\mu)\) has the same dimension as the homomorphism space \(\operatorname{Hom}_{\mathcal S_n}(W^{\lambda'},W^{\mu'})\), where \(\mathcal S_n\) denotes the \(q\)-Schur algebra, and \(W^\lambda\) the Weyl module.)

If \(T\) is a \(\lambda\)-tableau of type \(\mu\), then there is a homomorphism \(\Theta_T:S^\lambda\to M^\mu\) (where \(M^\mu\) is the "permutation module" containing \(S^\mu\)). As \(T\) ranges over semistandard tableaux (i.e. those in which the entries are increasing along the rows and strictly increasing down the columns) the homomorphisms obtained in this way are linearly independent, and (provided \(e>2\) or \(\lambda\) is \(2\)-regular) they span \(\operatorname{Hom}_{\mathcal H_n}(S^\lambda,M^\mu)\). \(\operatorname{EHom}_{\mathcal H_n}(S^\lambda,S^\mu)\) denotes the set of linear combinations of semistandard homomorphisms whose image lies in the Specht module \(S^\mu\). The way the programs work is to compose each semistandard homomorphism \(\Theta_T\) with certain "test homomorphisms" \(\psi_{d,t}\) whose kernels intersect precisely in \(S^\mu\). Recent work due to Lyle [L] and the author [F] enable this composition to be expressed in terms of semistandard homomorphisms, which enables one to see whether the composition is zero.

[DJ1] R. Dipper & G. James, "Representations of Hecke algebras of general linear groups", *Proc. London Math. Soc. (3)* **52** (1986), 20–52.

[DJ2] R. Dipper & G. James, "\(q\)-tensor space and \(q\)-Weyl modules", *Trans. Amer. Math. Soc.* **327** (1991), 251–82.

[F] M. Fayers, "An algorithm for semistandardising homomorphisms", arXiv:1109.4522.

[L] S. Lyle, "On homomorphisms indexed by semistandard tableaux", arXiv:1101.3192.

Having read the file spechthom.g into a GAP4 session, you'll have the following commands available.

**workouthoms(\(\lambda\),\(\mu\),\(e\),\(p\))**: computes the homomorphism space as described above. \(\lambda\) and \(\mu\) should be input as decreasing lists with no trailing zeroes. The program will give a record of progress (unless you've invoked the command quiet(), but in any case, the program will give progress updates in the file spechthom.log), and the final output will be a list, each of whose elements represents a basis element of the homomorphism space; this is given in the form of a list of pairs [tableau, coefficient].**makesemi(\(T\)[,\(e\),\(p\)])**: given a tableau \(T\) (whose shape should be a partition but whose type can be any composition), this expresses the homomorphism \(\Theta_T\) as a linear combination of semistandard homomorphisms. The tableau should be entered as the list of its rows, with each row being a list of entries. Note that \(e\) and \(p\) need not be specified, in which case this is done for generic \(q\), i.e. the coefficients will be in \(\mathbb Z[q,q^{-1}]\).**makesemil(\(l\)[,\(e\),\(p\)])**: as above, except that now \(l\) is a list of pairs [tableau,coefficient], and this expresses the corresponding linear combination a linear combination as a linear combination of semistandard homomorphisms. The coefficients probably need to lie in a suitable ring; I'm not sure what will happen if you use coefficients from elsewhere.**compsi(\(T\),\(d\),\(t\)[\(e\),\(p\)])**: computes the composition \(\psi_{d,t}\circ\Theta_T\). Here \(d\) and \(t\) should be positive integers, and \(t\) should be at most the number of \((d+1)\)s appearing in \(T\). Again, \(e\) and \(p\) may be omitted, in which case the composition will be given with coefficients in \(\mathbb Z[q,q^{-1}]\).**compsil(\(l\),\(d\),\(t\)[,\(e\),\(p\)])**: as for compsi, except that now \(l\) is a list representing a linear combination of homomorphisms.

These programs are not malice-proof, and are only mildly idiot-proof, so you should be able to break them easily. But if something goes wrong and you can't see why, please let me know by email. You can also just email to let me know if you find the programs useful. Please cite this website in any publications arising from computations with these programs.