Hecke Character Basis#
The basis of symmetric functions given by characters of the Hecke algebra (of type \(A\)).
AUTHORS:
Travis Scrimshaw (2017-08): Initial version
- class sage.combinat.sf.hecke.HeckeCharacter(sym, q)[source]#
Bases:
SymmetricFunctionAlgebra_multiplicative
Basis of the symmetric functions that gives the characters of the Hecke algebra in analogy to the Frobenius formula for the symmetric group.
Consider the Hecke algebra \(H_n(q)\) with quadratic relations
\[T_i^2 = (q - 1) T_i + q.\]Let \(\mu\) be a partition of \(n\) with length \(\ell\). The character \(\chi\) of a \(H_n(q)\)-representation is completely determined by the elements \(T_{\gamma_{\mu}}\), where
\[\gamma_{\mu} = (\mu_1, \ldots, 1) (\mu_2 + \mu_1, \ldots, 1 + \mu_1) \cdots (n, \ldots, 1 + \sum_{i < \ell} \mu_i),\](written in cycle notation). We define a basis of the symmetric functions by
\[\bar{q}_{\mu} = \sum_{\lambda \vdash n} \chi^{\lambda}(T_{\gamma_{\mu}}) s_{\lambda}.\]INPUT:
sym
– the ring of symmetric functionsq
– (default:'q'
) the parameter \(q\)
EXAMPLES:
sage: q = ZZ['q'].fraction_field().gen() sage: Sym = SymmetricFunctions(q.parent()) sage: qbar = Sym.hecke_character(q) sage: qbar[2] * qbar[3] * qbar[3,1] qbar[3, 3, 2, 1] sage: s = Sym.s() sage: s(qbar([2])) -s[1, 1] + q*s[2] sage: s(qbar([4])) -s[1, 1, 1, 1] + q*s[2, 1, 1] - q^2*s[3, 1] + q^3*s[4] sage: qbar(s[2]) (1/(q+1))*qbar[1, 1] + (1/(q+1))*qbar[2] sage: qbar(s[1,1]) (q/(q+1))*qbar[1, 1] - (1/(q+1))*qbar[2] sage: s(qbar[2,1]) -s[1, 1, 1] + (q-1)*s[2, 1] + q*s[3] sage: qbar(s[2,1]) (q/(q^2+q+1))*qbar[1, 1, 1] + ((q-1)/(q^2+q+1))*qbar[2, 1] - (1/(q^2+q+1))*qbar[3]
>>> from sage.all import * >>> q = ZZ['q'].fraction_field().gen() >>> Sym = SymmetricFunctions(q.parent()) >>> qbar = Sym.hecke_character(q) >>> qbar[Integer(2)] * qbar[Integer(3)] * qbar[Integer(3),Integer(1)] qbar[3, 3, 2, 1] >>> s = Sym.s() >>> s(qbar([Integer(2)])) -s[1, 1] + q*s[2] >>> s(qbar([Integer(4)])) -s[1, 1, 1, 1] + q*s[2, 1, 1] - q^2*s[3, 1] + q^3*s[4] >>> qbar(s[Integer(2)]) (1/(q+1))*qbar[1, 1] + (1/(q+1))*qbar[2] >>> qbar(s[Integer(1),Integer(1)]) (q/(q+1))*qbar[1, 1] - (1/(q+1))*qbar[2] >>> s(qbar[Integer(2),Integer(1)]) -s[1, 1, 1] + (q-1)*s[2, 1] + q*s[3] >>> qbar(s[Integer(2),Integer(1)]) (q/(q^2+q+1))*qbar[1, 1, 1] + ((q-1)/(q^2+q+1))*qbar[2, 1] - (1/(q^2+q+1))*qbar[3]
We compute character tables for Hecke algebras, which correspond to the transition matrix from the \(\bar{q}\) basis to the Schur basis:
sage: qbar.transition_matrix(s, 1) [1] sage: qbar.transition_matrix(s, 2) [ q -1] [ 1 1] sage: qbar.transition_matrix(s, 3) [ q^2 -q 1] [ q q - 1 -1] [ 1 2 1] sage: qbar.transition_matrix(s, 4) [ q^3 -q^2 0 q -1] [ q^2 q^2 - q -q -q + 1 1] [ q^2 q^2 - 2*q q^2 + 1 -2*q + 1 1] [ q 2*q - 1 q - 1 q - 2 -1] [ 1 3 2 3 1]
>>> from sage.all import * >>> qbar.transition_matrix(s, Integer(1)) [1] >>> qbar.transition_matrix(s, Integer(2)) [ q -1] [ 1 1] >>> qbar.transition_matrix(s, Integer(3)) [ q^2 -q 1] [ q q - 1 -1] [ 1 2 1] >>> qbar.transition_matrix(s, Integer(4)) [ q^3 -q^2 0 q -1] [ q^2 q^2 - q -q -q + 1 1] [ q^2 q^2 - 2*q q^2 + 1 -2*q + 1 1] [ q 2*q - 1 q - 1 q - 2 -1] [ 1 3 2 3 1]
We can do computations with a specialized \(q\) to a generic element of the base ring. We compute some examples with \(q = 2\):
sage: qbar = Sym.qbar(q=2) sage: s = Sym.schur() sage: qbar(s[2,1]) 2/7*qbar[1, 1, 1] + 1/7*qbar[2, 1] - 1/7*qbar[3] sage: s(qbar[2,1]) -s[1, 1, 1] + s[2, 1] + 2*s[3]
>>> from sage.all import * >>> qbar = Sym.qbar(q=Integer(2)) >>> s = Sym.schur() >>> qbar(s[Integer(2),Integer(1)]) 2/7*qbar[1, 1, 1] + 1/7*qbar[2, 1] - 1/7*qbar[3] >>> s(qbar[Integer(2),Integer(1)]) -s[1, 1, 1] + s[2, 1] + 2*s[3]
REFERENCES:
- construction()[source]#
Return a pair
(F, R)
, whereF
is aSymmetricFunctionsFunctor
and \(R\) is a ring, such thatF(R)
returnsself
.EXAMPLES:
sage: qbar = SymmetricFunctions(QQ['q']).qbar('q') sage: qbar.construction() (SymmetricFunctionsFunctor[Hecke character with q=q], Univariate Polynomial Ring in q over Rational Field)
>>> from sage.all import * >>> qbar = SymmetricFunctions(QQ['q']).qbar('q') >>> qbar.construction() (SymmetricFunctionsFunctor[Hecke character with q=q], Univariate Polynomial Ring in q over Rational Field)
- coproduct_on_generators(r)[source]#
Return the coproduct on the generator \(\bar{q}_r\) of
self
.Define the coproduct on \(\bar{q}_r\) by
\[\Delta(\bar{q}_r) = \bar{q}_0 \otimes \bar{q}_r + (q - 1) \sum_{j=1}^{r-1} \bar{q}_j \otimes \bar{q}_{r-j} + \bar{q}_r \otimes \bar{q}_0.\]EXAMPLES:
sage: q = ZZ['q'].fraction_field().gen() sage: Sym = SymmetricFunctions(q.parent()) sage: qbar = Sym.hecke_character() sage: s = Sym.s() sage: qbar[2].coproduct() qbar[] # qbar[2] + (q-1)*qbar[1] # qbar[1] + qbar[2] # qbar[]
>>> from sage.all import * >>> q = ZZ['q'].fraction_field().gen() >>> Sym = SymmetricFunctions(q.parent()) >>> qbar = Sym.hecke_character() >>> s = Sym.s() >>> qbar[Integer(2)].coproduct() qbar[] # qbar[2] + (q-1)*qbar[1] # qbar[1] + qbar[2] # qbar[]