Hecke algebras
Chevie.HeckeAlgebras
Chevie.Chars.CharTable
Chevie.HeckeAlgebras.FactSchur
Chevie.HeckeAlgebras.HeckeCoset
Chevie.Chars.representation
Chevie.Chars.representations
Chevie.Garside.α
Chevie.HeckeAlgebras.Tbasis
Chevie.HeckeAlgebras.alt
Chevie.HeckeAlgebras.central_monomials
Chevie.HeckeAlgebras.char_values
Chevie.HeckeAlgebras.class_polynomials
Chevie.HeckeAlgebras.factorized_schur_element
Chevie.HeckeAlgebras.factorized_schur_elements
Chevie.HeckeAlgebras.hecke
Chevie.HeckeAlgebras.hecke
Chevie.HeckeAlgebras.hecke
Chevie.HeckeAlgebras.isrepresentation
Chevie.HeckeAlgebras.schur_elements
Chevie.PermRoot.reflection_representation
Chevie.HeckeAlgebras
— ModuleThis module implements Hecke algebras associated to finite complex reflection groups and arbitrary Coxeter groups (these algebras are called Iwahori-Hecke algebras in this last case), and also implements the character tables, Schur elements and representations of Hecke algebras for finite groups. For Iwahori-Hecke algebras and G(d,1,1)
this module also implements the standard T
basis; see the module KL
for Kazhdan-Lusztig bases.
Let (W,S)
be a Coxeter system and let mₛₜ
be the order of st
for s,t∈ S
. Let R
be a commutative ring with 1 and for s∈ S
let uₛ₀,uₛ₁∈ R
be elements which depend only on the conjugacy class of s
in W
(this is the same as requiring that uₛᵢ=uₜᵢ
whenever mₛₜ
is odd). The Iwahori-Hecke algebra of W
over R
with parameters uₛᵢ
is a deformation of the group algebra of W
over R
defined as follows: it is the unitary associative R
-algebra generated by elements Tₛ, s∈ S
subject to the relations:
$(Tₛ-uₛ₀)(Tₛ-uₛ₁)=0$ for all s∈ S
(the quadratic relations)
$TₛTₜTₛ…= TₜTₛTₜ…$ with mₛₜ
factors on each side (the braid relations)
If uₛ₀=1
and uₛ₁=-1
for all s
then the quadratic relations become Tₛ²=1
and the deformation of the group algebra is trivial.
Since the generators Tₛ
satisfy the braid relations, H
is in fact a quotient of the group algebra of the braid group associated with W
. The braid relations also imply that for any reduced expression s_1⋯ s_m
of w ∈ W
the product Tₛ_1⋯ Tₛ_m
has the same value, that we denote T_w
. We have T_1=1
; if one of the uₛᵢ
is invertible, the {T_w}_{w∈ W}
form an R
-basis of the Iwahori-Hecke algebra which specializes to the canonical basis of the group algebra R[W]
for uₛ₀↦1
and uₛ₁↦-1
.
When one of the uₛᵢ
is invertible, the structure constants (the decomposion of a product T_vT_w
) in the T_w
basis are obtained as follows. Choose a reduced expression for v
, say v=s_1 ⋯ s_k
and apply inductively the formula:
$T_sT_w=T_{sw}$ if l(sw)=l(w)+1
$T_sT_w=-uₛ₀uₛ₁T_{sw}+(uₛ₀+uₛ₁)T_w$ if l(sw)=l(w)-1
.
If one of uₛ₀
or uₛ₁
is invertible in R
, for example uₛ₁
, then by changing the generators to T′ₛ=-Tₛ/uₛ₁
, and setting qₛ=-uₛ₀/uₛ₁
, the braid relations do no change (since when mₛₜ
is odd we have uₛᵢ=uₜᵢ
) but the quadratic relations become (T′ₛ-qₛ)(T′ₛ+1)=0
. This normalisation is the most common form considered in the literature. Another common form in the context of Kazhdan-Lusztig theory, is uₛ₀=√qₛ
and uₛ₁=-√qₛ⁻¹
. The form provided, with two parameters per generator, is often useful, for instance when constructing the Jones polynomial. If for all s
we have uₛ₀=q
, uₛ₁=-1
then we call the corresponding algebra the "one-parameter" or "Spetsial" Iwahori-Hecke algebra associated with W
.
For some Iwahori-Hecke algebras the character table, and in general Kazhdan-Lusztig bases, require a square root of -uₛ₀uₛ₁
. These square roots can be specified with the keyword rootpara
when constructing the algebra; after this the function rootpara(H)
will return the chosen roots. If not specified, we try to extract roots automatically when needed; rootpara(H)
informs on the choices made. Note that some mathematical results require an explicit choice of one of the two possible roots which cannot be automatically made thus require a keyword initialisation.
There is a universal choice for R
and uₛᵢ
: Let uₛᵢ:s∈ S,i∈[0,1]
be indeterminates such that uₛᵢ=uₜᵢ
whenever mₛₜ
is odd, and let A=ℤ[uₛᵢ]
be the corresponding polynomial ring. Then the Hecke algebra H
of W
over A
with parameters uₛᵢ
is called the generic Iwahori-Hecke algebra of W
. Any Hecke algebra H₁
with parameters vₛᵢ
can be obtained by specialization from H
, since there is a unique ring homomorphism f:A → R
such that f(uₛᵢ)=vₛᵢ
for all i
. Then via f
we can identify H₁
to $R⊗ _A H$.
Certain invariants of the irreducible characters of the one-parameter Hecke algebra play a special role in the representation theory of the underlying finite Coxeter groups, namely the a
- and A
-invariants. For basic properties of Iwahori-Hecke algebras and their relevance to the representation theory of finite groups of Lie type, see for example Curtis and Reiner 1987 Sections~67 and 68.
In the following example, we compute the multiplication table for the 0
-Iwahori–Hecke algebra associated with the Coxeter group of type A_2
.
julia> W=coxgroup(:A,2)
A₂
julia> H=hecke(W,0) # One-parameter algebra with `q=0`
hecke(A₂,0)
julia> T=Tbasis(H); # Create the `T` basis
julia> b=T.(elements(W)) # the basis
6-element Vector{HeckeTElt{HeckeAlgebra{Int64, Perm{Int16}, FiniteCoxeterGroup{Perm{Int16},Int64}}, Int64, Perm{Int16}}}:
T.
T₁
T₂
T₁₂
T₂₁
T₁₂₁
julia> b*permutedims(b) # multiplication table
6×6 Matrix{HeckeTElt{HeckeAlgebra{Int64, Perm{Int16}, FiniteCoxeterGroup{Perm{Int16},Int64}}, Int64, Perm{Int16}}}:
T. T₁ T₂ T₁₂ T₂₁ T₁₂₁
T₁ -T₁ T₁₂ -T₁₂ T₁₂₁ -T₁₂₁
T₂ T₂₁ -T₂ T₁₂₁ -T₂₁ -T₁₂₁
T₁₂ T₁₂₁ -T₁₂ -T₁₂₁ -T₁₂₁ T₁₂₁
T₂₁ -T₂₁ T₁₂₁ -T₁₂₁ -T₁₂₁ T₁₂₁
T₁₂₁ -T₁₂₁ -T₁₂₁ T₁₂₁ T₁₂₁ -T₁₂₁
Thus, we work with algebras with arbitrary parameters. We will see that this also works on the level of characters and representations.
For general complex reflection groups, the picture is similar. The Hecke algebras are deformations of the group algebras, generalizing those for real reflection groups.
The definition is as a quotient of the algebra of the braid group. We assume now that W
is a finite reflection group in the complex vector space V
. The braid group associated is the fundamental group Π₁
of the space $(V-\bigcup_{H\in\mathcal H} H)/W$, where $\mathcal H$ is the set of reflecting hyperplanes of W
. This group is generated by braid reflections, elements which by the natural map from the braid group to the reflection group project to distinguished reflections. The braid reflections which project to a given W
-orbit of reflections are conjugate. Let 𝐬
be a representative of such a conjugacy class of braid reflections, let e
be the order of the image of 𝐬
in W
, and let $u_{𝐬,0},…,u_{𝐬,e-1}$ be indeterminates. The generic Hecke algebra of W
is the $ℤ[u_{𝐬,i}^{± 1}]_{𝐬,i}$-algebra quotient of the braid group algebra by the relations $(𝐬-u_{𝐬,0})…(𝐬-u_{𝐬,e-1})=0$, and an arbitrary Hecke algebra for W
is an algebra obtained from this generic algebra by specializing some of the parameters.
The generic Hecke algebras are explicitely described by a presentation of the braid group. The braid group can be presented by homogeneous relations in the braid reflections, called braid relations, described in Broué-Malle-Rouquier 1998 and Bessis-Michel 2003 (some of which were obtained using the VKCURVE GAP3-package, also ported to Julia). Furthermore, these presentations are such that the reflection group is presented by the same relations, plus relations describing the order of the generating reflections, called the order relations. Thus the Hecke algebra has a presentation similar to that of W
, with the same braid relations but the order relations replaced by a deformed version.
If S⊂ W
is the set of distinguished reflections of W
which lift to generating braid reflections in the braid group, for each conjugacy class of an s
of order e
we take indeterminates uₛ₀,…,uₛₑ₋₁
. Then the generic Hecke algebra is the $ℤ[uₛᵢ^{±1}]ₛᵢ$-algebra H
with generators T_s
for each s∈ S
presented by the braid relations and the deformed order relations $(T_s-u_{s,0})…(T_s-u_{s,e-1})=0$.
Ariki, Koike and Malle have computed the character table of some of these algebras, including those for all 2-dimensional reflection groups, see Broué-Malle 1993 and Malle 1996; our data has models of all representation and character tables for real reflection groups; it contains the same for imprimitive groups and for primitive groups of dimension 2 and 3 (these last representations have been computed in Malle-Michel 2010) and contains also models and character tables computed by Michel for G₂₉
and G₃₃
; it contains also partial lists of representations and partial character tables for the remaining groups G₃₁,G₃₂
and G₃₄
, computed by Malle and Michel for G₃₂
and by Michel for the other two algebras.
The quotient of the Hecke algebra obtained by the specialisation $u_{𝐬,i}↦ ζₑⁱ$ is isomorphic to the group algebra of W
. It was conjectured for 20 years that over a splitting ring the Hecke algebra is itself isomorphic to the group algebra of W
over the same ring. This was called the freeness conjecture since the main problem is to show that the Hecke algebra is free of dimension |W|
. This has finally been proved in 2019 thanks to the work of many people including Marin, Pfeiffer, Chavli and Tsuchioka for exceptional groups. Along the way it has been proven that there exists a set {b_w}_{w∈ W}
of elements of the Braid group such that b_1=1
and b_w
maps to w
by the natural quotient map, such that their images T_w
form a basis of the Hecke algebra.
It is conjectured that such a basis T_w
can be chosen such that additionnaly the linear form t
defined by t(T_w)=0
if w≠ 1
and t(1)=1
is a symmetrizing form for the symmetric algebra H
. This is well known for all real reflection groups and has been proved in Malle-Mathas 1998 for imprimitive reflection groups and in Malle-Michel 2010 for some primitive groups of dimension 2 and 3. Chlouveraki and Chavli have handled some other 2-dimensional cases. For each irreducible character φ
of H
we define the Schur element Sᵩ
associated to φ
by the condition that for any element T
of H
we have t(T)=∑ᵩ φ(T)/Sᵩ
. It can be shown that the Schur elements are Laurent polynomials, and they do not depend on the choice of a basis having the above property. Malle has computed these Schur elements, assuming the above conjecture; they are in the Chevie data.
See the function hecke
for various ways of specifying the parameters of a Hecke algebra. Look also at the docstrings of central_monomials, char_values, class_polynomials, schur_elements, isrepresentation, factorized_schur_elements
, and at the methods for Hecke algebras of CharTable, representations, reflrep
.
Taking apart Hecke elements is done with the functions getindex
, setindex!
, keys
, values
, iterate
.
julia> H=hecke(W,Pol(:q))
hecke(A₂,q)
julia> T=Tbasis(H);
julia> h=T(1,2)^2
qT₂₁+(q-1)T₁₂₁
julia> length(h) # h has 2 terms
2
julia> h[W(2,1)] # coefficient of W(2,1)
Pol{Int64}: q
julia> collect(h) # pairs perm=>coeff
2-element Vector{Any}:
(1,2,6)(3,4,5) => q
(1,5)(2,4)(3,6) => q-1
julia> collect(values(h)) # the coefficients
2-element Vector{Pol{Int64}}:
q
q-1
julia> collect(keys(h)) # the corresponding Perms
2-element Vector{Perm{Int16}}:
(1,2,6)(3,4,5)
(1,5)(2,4)(3,6)
julia> h[W(2,1)]=Pol(3)
Pol{Int64}: 3
julia> h
3T₂₁+(q-1)T₁₂₁
finally, benchmarks on julia 1.8
julia> function test_w0(n)
W=coxgroup(:A,n)
Tbasis(hecke(W,Pol(:q)))(longest(W))^2
end
test_w0 (generic function with 1 method)
julia> @btime test_w0(7);
97.210 ms (1776476 allocations: 127.52 MiB)
in GAP3 the analogous function takes 920ms
test_w0:=function(n)local W,T,H;
W:=CoxeterGroup("A",n);H:=Hecke(W,X(Rationals));T:=Basis(H,"T");
return T(LongestCoxeterWord(W))^2;
end;
Chevie.HeckeAlgebras.hecke
— Methodhecke( W [, parameter];rootpara=nothing)
Hecke algebra for the complex reflection group or Coxeter group W
. If no parameter
is given, 1
is assumed which gives the group algebra of W
.
The following forms are accepted for parameter
: if parameter
is not a vector or a tuple, it is replaced by the vector fill(parameter,ngens(W))
. If it is a vector with one entry, it is replaced with fill(parameter[1],ngens(W))
. If parameter
is a vector with more than one entry, it should have length ngens(W)
, each entry representing the parameters for the corresponding generator of W
, and entries corresponding to the same W
-orbit of generators should be identical. Finally, if parameter
is a Tuple
, the tuple should have as many entries as there are hyperplane orbits in W
and each entry will represent the parameters for the corresponding conjugacy class of braid reflections.
An entry in parameter
for a reflection of order e
can be either a single scalar value or a Vector
of length 'e'. If it is a Vector
, it is interpreted as the list [u₀,…,u_(e-1)]
of parameters for that reflection. If it is not a vector, let q
be its value; it is then interpreted as specifying the list of parameters for the Spetsial algebra, which are [q,ζ_e,…,ζ_{e-1}]
(thus the list [q,-1]
of the one-parameter algebra for Coxeter groups).
When printing an Hecke algebra the parameter list is abbreviated using the same conventions.
Computing characters or representations of Hecke algebra needs sometimes to extract roots of the parameters. These roots are extracted automatically (when possible). For Coxeter groups it is possible to give explicit roots by giving a keyword argument rootpara
: if it is a vector it should contain at the i
-th position a square root of -parameter[i][1]*parameter[i][2]
; if a scalar it is replaced by fill(rootpara,ngens(W))
.
Example
julia> W=coxgroup(:B,2)
B₂
julia> @Pol q
Pol{Int64}: q
julia> H=hecke(W,q)
hecke(B₂,q)
julia> H.para
2-element Vector{Vector{Pol{Int64}}}:
[q, -1]
[q, -1]
julia> H=hecke(W,q^2,rootpara=-q)
hecke(B₂,q²,rootpara=-q)
julia> H=hecke(W,q^2)
hecke(B₂,q²)
julia> rootpara(H)
2-element Vector{Pol{Int64}}:
q
q
julia> H
hecke(B₂,q²,rootpara=q)
julia> H=hecke(W,[q^2,q^4],rootpara=[q,q^2])
hecke(B₂,Pol{Int64}[q², q⁴],rootpara=Pol{Int64}[q, q²])
julia> H.para,rootpara(H)
(Vector{Pol{Int64}}[[q², -1], [q⁴, -1]], Pol{Int64}[q, q²])
julia> H=hecke(W,9,rootpara=3)
hecke(B₂,9,rootpara=3)
julia> H.para,rootpara(H)
([[9, -1], [9, -1]], [3, 3])
julia> @Mvp x,y,z,t
julia> H=hecke(W,[[x,y]])
hecke(B₂,Vector{Mvp{Int64, Int64}}[[x, y]])
julia> rootpara(H);H
hecke(B₂,Vector{Mvp{Int64, Int64}}[[x, y]],rootpara=ζ₄x½y½)
julia> H=hecke(W,[[x,y],[z,t]])
hecke(B₂,Vector{Mvp{Int64, Int64}}[[x, y], [z, t]])
julia> rootpara(H);H
hecke(B₂,Vector{Mvp{Int64, Int64}}[[x, y], [z, t]],rootpara=Mvp{Cyc{Int64}, Rational{Int64}}[ζ₄x½y½, ζ₄t½z½])
julia> hecke(coxgroup(:F,4),(q,q^2)).para
4-element Vector{Vector{Pol{Int64}}}:
[q, -1]
[q, -1]
[q², -1]
[q², -1]
julia> hecke(complex_reflection_group(3,1,2),q).para # spetsial parameters
2-element Vector{Vector{Pol{Cyc{Int64}}}}:
[q, ζ₃, ζ₃²]
[q, -1]
Chevie.HeckeAlgebras.Tbasis
— MethodTbasis(H::HeckeAlgebra)
The T
basis of H
. It is defined currently for Iwahori-Hecke algebras and for Hecke algebras of cyclic complex reflection groups G(d,1,1)
. It returns a function, say T
, which can take an argument of the following forms
T(i::Integer)
: the generatorT_s
wheres=H.W(i)
.T(i₁,…,iᵣ)
: the productT(i₁)…T(iᵣ)
T([i₁,…,iᵣ])
: same asT(i₁,…,iᵣ)
T(w)
wherew∈ H.W
: returnsT_w
julia> H=hecke(coxgroup(:A,2),Pol(:q))
hecke(A₂,q)
julia> T=Tbasis(H);T(longest(H.W))^2
q³T.+(q³-2q²+q)T₂₁+(q³-q²)T₂+(q³-q²)T₁+(q³-2q²+2q-1)T₁₂₁+(q³-2q²+q)T₁₂
julia> W=crg(3,1,1)
G₃‚₁‚₁
julia> H=hecke(crg(3,1,1),Pol(:q))
hecke(G₃‚₁‚₁,q)
julia> T=Tbasis(H);T(1)^3
(q-1)T.+(q-1)T₁+qT₁₁
Chevie.HeckeAlgebras.alt
— Functionalt(a::HeckeTElt)
a
should be an element of an Iwahori-Hecke algebra H
. the involution on H
defined by x↦ bar(x)
on coefficients and Tₛ↦ uₛ,₀uₛ,₁Tₛ
. Essentially it corresponds to tensoring with the sign representation.
julia> W=coxgroup(:G,2);H=hecke(W,Pol(:q))
hecke(G₂,q)
julia> T=Tbasis(H);h=T(1,2)*T(2,1)
q²T.+(q²-q)T₁+(q-1)T₁₂₁
julia> alt(h)
q⁻²T.+(q⁻²-q⁻³)T₁+(q⁻³-q⁻⁴)T₁₂₁
Chevie.Garside.α
— Methodα(a::HeckeTElt)
the anti-involution on the Hecke algebra defined by $T_w↦ T_{inv(w)}$.
Chevie.Chars.CharTable
— MethodCharTable(H::HeckeAlgebra or HeckeCoset)
returns the CharTable
of the Hecke algebra H
. For the primitive groups G₃₁, G₃₂, G₃₄
there are Unknown()
entries corresponding to missing representations (see representation
). The columns of the CharTable
are labelled by classnames(H.W)
and contain the character values for the corresponding element given by classreps(H.W)
.
julia> H=hecke(crg(4),Pol())
hecke(G₄,q)
julia> CharTable(H)
CharTable(hecke(G₄,q))
┌────┬──────────────────────────────────────┐
│ │. z 212 12 z12 1 1z│
├────┼──────────────────────────────────────┤
│φ₁‚₀│1 q⁶ q³ q² q⁸ q q⁷│
│φ₁‚₄│1 1 1 ζ₃² ζ₃² ζ₃ ζ₃│
│φ₁‚₈│1 1 1 ζ₃ ζ₃ ζ₃² ζ₃²│
│φ₂‚₅│2 -2 . 1 -1 -1 1│
│φ₂‚₃│2 -2q³ . ζ₃²q -ζ₃²q⁴ q+ζ₃² -q⁴-ζ₃²q³│
│φ₂‚₁│2 -2q³ . ζ₃q -ζ₃q⁴ q+ζ₃ -q⁴-ζ₃q³│
│φ₃‚₂│3 3q² -q . . q-1 q³-q²│
└────┴──────────────────────────────────────┘
Chevie.HeckeAlgebras.central_monomials
— Functioncentral_monomials(H)
Let H
be an Hecke algebra for the finite reflection group W
. The function returns the scalars by which the image in H
of π
acts on the irreducible representations of H
.
When W
is irreducible, π
is the generator of the center of the pure braid group. In general, it is the product of such elements for each irreducible component. When W
is a Coxeter group, the image of π in H
is $T_{w_0}^2$.
julia> H=hecke(coxgroup(:H,3),Pol(:q))
hecke(H₃,q)
julia> central_monomials(H)
10-element Vector{Pol{Cyc{Int64}}}:
1
q³⁰
q¹²
q¹⁸
q¹⁰
q¹⁰
q²⁰
q²⁰
q¹⁵
q¹⁵
Chevie.HeckeAlgebras.class_polynomials
— Functionclass_polynomials(h::HeckeElt)
returns the class polynomials of the element h
of the Iwahori-Hecke algebra or coset given by h.H
with respect to the T
basis for a set R
of representatives of minimal length in the conjugacy classes of the Coxeter group or coset H.W
. Such minimal length representatives are given by classreps(H.W)
. The vector p
of these polynomials has the property that if X
is the matrix of the values of the irreducible characters of H
on T_w
(for w∈ R
), then the product X*p
is the list of values of the irreducible characters on h
.
julia> W=coxsym(4)
𝔖 ₄
julia> H=hecke(W,Pol(:q))
hecke(𝔖 ₄,q)
julia> h=Tbasis(H,longest(W))
T₁₂₁₃₂₁
julia> p=class_polynomials(h)
5-element Vector{Pol{Int64}}:
0
0
q²
q³-2q²+q
q³-q²+q-1
The class polynomials were introduced in Geck-Pfeiffer1993.
Chevie.HeckeAlgebras.char_values
— Functionchar_values(h::HeckeTElt)
h
is an element of an Iwahori-Hecke algebra H
. The function returns the values of the irreducible characters of H
on h
(the method used is to convert to the T
basis, and then use class_polynomials
).
julia> W=coxgroup(:B,2)
B₂
julia> H=hecke(W,q^2;rootpara=q)
hecke(B₂,q²,rootpara=q)
julia> char_values(Cpbasis(H)(1,2,1))
5-element Vector{Pol{Int64}}:
-q-q⁻¹
q+q⁻¹
0
q³+2q+2q⁻¹+q⁻³
0
char_values(H::HeckeAlgebra,v::Vector{<:Integer})
For an Iwahori-Hecke algebra this computes the character values of H
on the Tbasis(H)(v)
.
For H
the Hecke algebra of a complex reflection group W
this routine computes character values on a lift of the element of W
defined by the word v
in gens(W)
.
For complex reflection groups the character table of the generic Hecke algebra of W
has been computed (not entirely for 3 exceptions, see representation
) in the sense that, if s₁,…,sₙ
are generators of the braid group lifting the Broué-Malle-Rouquier-Bessis-Michel generators of W
, there is at least one element v
in each conjugacy class of W
and one expression in the generators for it such that the character values of the image Tᵥ
in the Hecke algebra of the lift to the braid group are known. Such an expression in the generators will be called a known word (the list of known words is obtained by word.(conjugacy_classes(W))
. If the word v
is known, the computation is quick using the character table. If not, the function computes the trace of Tᵥ
in each irreducible representation. The values returned are Unknown()
for missing representations (see representation
).
julia> W=crg(4)
G₄
julia> H=hecke(W,Pol(:q))
hecke(G₄,q)
julia> char_values(H,[2,1,2])
7-element Vector{Pol{Cyc{Int64}}}:
q³
1
1
0
0
0
-q
Chevie.HeckeAlgebras.schur_elements
— Functionschur_elements(H)
returns the list of Schur elements for the Hecke algebra H
julia> H=hecke(complex_reflection_group(4),Pol(:q))
hecke(G₄,q)
julia> s=schur_elements(H)
7-element Vector{Pol{Cyc{Rational{Int64}}}}:
q⁸+2q⁷+3q⁶+4q⁵+4q⁴+4q³+3q²+2q+1
2√-3+(6+4√-3)q⁻¹+12q⁻²+(6-4√-3)q⁻³-2√-3q⁻⁴
-2√-3+(6-4√-3)q⁻¹+12q⁻²+(6+4√-3)q⁻³+2√-3q⁻⁴
2+2q⁻¹+4q⁻²+2q⁻³+2q⁻⁴
ζ₃²√-3q³+(3-√-3)q²+3q+3+√-3-ζ₃√-3q⁻¹
-ζ₃√-3q³+(3+√-3)q²+3q+3-√-3+ζ₃²√-3q⁻¹
q²+2q+2+2q⁻¹+q⁻²
julia> CycPol.(s)
7-element Vector{CycPol{Cyc{Rational{Int64}}}}:
Φ₂²Φ₃Φ₄Φ₆
2√-3q⁻⁴Φ₂²Φ′₃Φ′₆
-2√-3q⁻⁴Φ₂²Φ″₃Φ″₆
2q⁻⁴Φ₃Φ₄
ζ₃²√-3q⁻¹Φ₂²Φ′₃Φ″₆
-ζ₃√-3q⁻¹Φ₂²Φ″₃Φ′₆
q⁻²Φ₂²Φ₄
Chevie.HeckeAlgebras.factorized_schur_element
— Functionfactorized_schur_element(H,phi)
returns the factorized schur_element
(see factorized_schur_elements
) of the Hecke algebra H
for the irreducible character of H
of parameter phi
(see charinfo(W).charparams
)
julia> W=complex_reflection_group(4)
G₄
julia> @Mvp x,y; H=hecke(W,[[1,x,y]])
hecke(G₄,Vector{Mvp{Int64, Int64}}[[1, x, y]])
julia> factorized_schur_element(H,[[2,5]])
-x⁻¹y(xy+1)(x-1)Φ₆(xy⁻¹)(y-1)
Chevie.HeckeAlgebras.factorized_schur_elements
— Functionfactorized_schur_elements(H)
Let H
be a Hecke algebra for the complex reflection group W
, whose parameters are all (Laurent) monomials in some variables x₁,…,xₙ
, and let K be the field of definition of W
. Then Maria Chlouveraki has shown that the Schur elements of H
take the particular form M ∏ᵩ φ(Mᵩ)
where φ
runs over a list of K-cyclotomic polynomials, and M
and Mᵩ
are (Laurent) monomials (in possibly some fractional powers) of the variables xᵢ
. The function factorized_schur_elements
returns a data structure (see HeckeAlgebras.FactSchur
) which shows this factorization.
julia> W=complex_reflection_group(4)
G₄
julia> @Mvp x,y; H=hecke(W,[[1,x,y]])
hecke(G₄,Vector{Mvp{Int64, Int64}}[[1, x, y]])
julia> factorized_schur_elements(H)
7-element Vector{Chevie.HeckeAlgebras.FactSchur}:
x⁻⁴y⁻⁴(xy+1)Φ₁Φ₆(x)Φ₁Φ₆(y)
(x²y⁻¹+1)Φ₁Φ₆(x)Φ₁Φ₆(xy⁻¹)
-x⁻⁴y⁵Φ₁Φ₆(xy⁻¹)(xy⁻²+1)Φ₁Φ₆(y)
-x⁻¹y(xy+1)(x-1)Φ₆(xy⁻¹)(y-1)
-x⁻⁴y(x²y⁻¹+1)(x-1)(xy⁻¹-1)Φ₆(y)
x⁻¹y⁻¹Φ₆(x)(xy⁻¹-1)(xy⁻²+1)(y-1)
x⁻²y(x²y⁻¹+1)(xy+1)(xy⁻²+1)
Chevie.HeckeAlgebras.FactSchur
— TypeA FactSchur
representing a Schur element of the form M∏ᵩφ(Mᵩ)
(see factorized_schur_element
) is a struct
with a field factor
which holds the monomial M
, and a field vcyc
which holds a list of NamedTuples
describing each factor Mᵩ
in the product. An element of vcyc
representing a term φ(Mᵩ)
is itself a NamedTuple
with fields monomial
holding Mᵩ
(as an Mvp
with a single term), and a field pol
holding a CycPol
(see CycPol
) representing φ
.
A few operations are implemented for FactSchur
, like *, lcm
. They can be evaluated partially or completely keeping as much as possible the factored form.
julia> @Mvp x,y; W=crg(4); H=hecke(W,[[1,x,y]])
hecke(G₄,Vector{Mvp{Int64, Int64}}[[1, x, y]])
julia> p=factorized_schur_element(H,[[2,5]])
-x⁻¹y(xy+1)(x-1)Φ₆(xy⁻¹)(y-1)
julia> q=p(;x=E(3)) # partial evaluation
ζ₃²√-3y⁻¹Φ₁Φ₂Φ′₆²(y)
julia> q(;y=2//1)
-9√-3/2
In contrast, the next operation expands p
to an Mvp
:
julia> HeckeAlgebras.expand(p)
Mvp{Cyc{Rational{Int64}},Rational{Int64}}: -x³y+x³+x²y²-2x²+x²y⁻¹-xy³+2xy-xy⁻¹+y³-2y²+1+x⁻¹y²-x⁻¹y
Chevie.Chars.representation
— Methodrepresentation(H::HeckeAlgebra or HeckeCoset,i)
returns, for the i
-th irreducible representation of the Hecke algebra or Hecke coset H
, a list of matrices images of the generators of H
in a model of the representation (for Hecke cosets, the result is a NamedTuple
with fields gens
, a representation of hecke(H)
, and F
, the matrix for the automorphism of H
in the representation).
This function is based on the classification, and is not yet fully implemented for the Hecke algebras of the groups G₃₁
, G₃₂
and G₃₄
: we have 50 representations out of 59 for type G₃₁
, 30 representations out of 102 for type G₃₂
and 38 representations out of 169 for type G₃₄
; nothing
is returned for a missing representation.
julia> W=crg(24)
G₂₄
julia> H=hecke(W,Pol(:q))
hecke(G₂₄,q)
julia> representation(H,3)
3-element Vector{Matrix{Pol{Cyc{Int64}}}}:
[q 0 0; -q -1 0; -q 0 -1]
[-1 0 -1; 0 -1 ((1-√-7)/2)q; 0 0 q]
[-1 -1 0; 0 q 0; 0 (1+√-7)/2 -1]
The models implemented for imprimitive types G(de,e,n)
for n>2
and de>1
(this includes Coxeter type Dₙ
), excepted for G(2,2,4), G(3,3,3), G(3,3,4), G(3,3,5)
and G(4,4,3)
, involve rational fractions.
julia> H=hecke(coxgroup(:D,5),Pol())
hecke(D₅,q)
julia> representation(H,7)
5-element Vector{Matrix{Frac{Pol{Int64}}}}:
[q 0 0 0; 0 -1 0 0; 0 0 -1 0; 0 0 0 -1]
[q 0 0 0; 0 -1 0 0; 0 0 -1 0; 0 0 0 -1]
[1/(-q-1) q/(q+1) 0 0; (q²+q+1)/(q+1) q²/(q+1) 0 0; 0 0 -1 0; 0 0 0 -1]
[-1 0 0 0; 0 1/(-q²-q-1) (-q²-q)/(-q²-q-1) 0; 0 (q³+q²+q+1)/(q²+q+1) q³/(q²+q+1) 0; 0 0 0 -1]
[-1 0 0 0; 0 -1 0 0; 0 0 1/(-q³-q²-q-1) (-q³-q²-q)/(-q³-q²-q-1); 0 0 (q⁴+q³+q²+q+1)/(q³+q²+q+1) q⁴/(q³+q²+q+1)]
Chevie.Chars.representations
— Methodrepresentations(H)
returns the list of representations of the Hecke algebra or Hecke coset H
(see representation
).
julia> WF=rootdatum("2B2")
²B₂
julia> H=hecke(WF,Pol(:x)^2;rootpara=Pol())
hecke(²B₂,x²,rootpara=x)
julia> representations(H)
3-element Vector{NamedTuple{(:gens, :F)}}:
(gens = Matrix{Pol{Int64}}[[x²;;], [x²;;]], F = [1;;])
(gens = [[-1;;], [-1;;]], F = [1;;])
(gens = Matrix{Pol{Cyc{Int64}}}[[-1 0; √2x x²], [x² √2x; 0 -1]], F = [0 -1; -1 0])
Chevie.HeckeAlgebras.isrepresentation
— Functionisrepresentation(H::HeckeAlgebra,r)
returns true
or false
, according to whether a given set r
of elements corresponding to the standard generators of the reflection group H.W
defines a representation of the Hecke algebra H
or not.
julia> H=hecke(coxgroup(:F,4))
hecke(F₄,1)
julia> isrepresentation(H,reflrep(H))
true
julia> isrepresentation(H,Tbasis(H).(1:4))
true
Chevie.PermRoot.reflection_representation
— Methodreflection_representation(H::HeckeAlgebra)
or reflrep(H)
returns a list of matrices for the generators of H
which give the reflection representation of the Iwahori-Hecke algebra H
.
julia> W=coxgroup(:B,2);H=hecke(W,Pol(:q))
hecke(B₂,q)
julia> reflrep(H)
2-element Vector{Matrix{Pol{Int64}}}:
[-1 0; -q q]
[q -2; 0 -1]
julia> H=hecke(coxgroup(:H,3))
hecke(H₃,1)
julia> reflrep(H)
3-element Vector{Matrix{Cyc{Int64}}}:
[-1 0 0; -1 1 0; 0 0 1]
[1 (-3-√5)/2 0; 0 -1 0; 0 -1 1]
[1 0 0; 0 1 -1; 0 0 -1]
Chevie.HeckeAlgebras.HeckeCoset
— TypeHeckeCoset
s are Hϕ
where H
is an Iwahori-Hecke algebra of some Coxeter group W
on which the automorphism ϕ
of some Spets Wϕ
acts by ϕ(T_w)=T_{ϕ(w)}
. For Weyl groups, this corresponds to the action of the Frobenius automorphism on the commuting algebra of the induced of the trivial representation from the rational points of some F
-stable Borel subgroup to 𝐆 ^F
.
julia> WF=rootdatum(:u,3)
u₃
julia> HF=hecke(WF,Pol(:v)^2;rootpara=Pol())
hecke(u₃,v²,rootpara=v)
julia> CharTable(HF)
CharTable(hecke(u₃,v²,rootpara=v))
┌───┬──────────┐
│ │ 111 21 3│
├───┼──────────┤
│111│ -1 1 -1│
│21 │-2v³ . v│
│3 │ v⁶ 1 v²│
└───┴──────────┘
Thanks to the work of Xuhua He and Sian Nie, 'class_polynomials' also make sense for these cosets. This is used to compute such character tables.
Chevie.HeckeAlgebras.hecke
— Methodhecke(HF::HeckeCoset)
returns the underlying Hecke algebra
Chevie.HeckeAlgebras.hecke
— Methodhecke(WF::Spets, H)
hecke(WF::Spets, params)
Construct a HeckeCoset
from a Coxeter coset WF
and an Hecke algebra associated to Group(WF)
. The second form is equivalent to Hecke(WF,Hecke(Group(WF),params))
. See the doc for HeckeCoset
.