Murphy basis

Chevie.MurphyModule

This module Murphy.jl has been ported in december 2020 from

murphy.g Copyright (C) July 1998 Andrew Mathas mathas@maths.usyd.edu.au University of Sydney

It allows computations with the Murphy basis of an Hecke algebra of type A.

Multiplication of Murphy basis elements is done using the Garnir tableaux as described in (Murphy, 1995). This also lets us convert from the T-basis to the Murphy basis since T_w = M([[1],…,[n]], [[1],…,[n]]) * T_w; we use "M" for the Murphy basis.

As with the T-basis, Murphy basis elements are implemented by ModuleElts. Here the keys are standard tableaux pairs. These are represented by a tuple (mu,s,t) where mu, s and t are integers encoding the partition H.Murphy.partitions[mu] and the named tuples H.Murphy.tableaux[mu][s] (resp t) describing tableaux as explained in the helpstring for initMurphy.

Throughout memory considerations are thrown to the wind as we cache many of the more horrible expansions as we go along in order to save time when we next need them.

julia> W=coxgroup(:A,2)
A₂

julia> H=hecke(W,Pol(:q))
hecke(A₂,q)

julia> l=Tbasis(H).(elements(W))
6-element Vector{HeckeTElt{HeckeAlgebra{Pol{Int64}, Perm{Int16}, FiniteCoxeterGroup{Perm{Int16},Int64}}, Pol{Int64}, Perm{Int16}}}:
 T.
 T₁
 T₂
 T₁₂
 T₂₁
 T₁₂₁

julia> Murphy.SpechtModules(H,false);Murphybasis(H).(l)
6-element Vector{Chevie.Murphy.HeckeMElt{Pol{Int64}, HeckeAlgebra{Pol{Int64}, Perm{Int16}, FiniteCoxeterGroup{Perm{Int16},Int64}}}}:
 M(1/2/3,1/2/3)
 -M(1/2/3,1/2/3)+M(12/3,12/3)
 -M(1/2/3,1/2/3)+q⁻¹M(12/3,12/3)+q⁻¹M(12/3,13/2)+q⁻¹M(13/2,12/3)+q⁻¹M(13/2,13/2)-q⁻¹M(123,123)
 M(1/2/3,1/2/3)-q⁻¹M(12/3,12/3)+(1-q⁻¹)M(12/3,13/2)-q⁻¹M(13/2,12/3)-q⁻¹M(13/2,13/2)+q⁻¹M(123,123)
 M(1/2/3,1/2/3)-q⁻¹M(12/3,12/3)-q⁻¹M(12/3,13/2)+(1-q⁻¹)M(13/2,12/3)-q⁻¹M(13/2,13/2)+q⁻¹M(123,123)
 -M(1/2/3,1/2/3)+(-1+q⁻¹)M(12/3,12/3)+(-1+q⁻¹)M(12/3,13/2)+(-1+q⁻¹)M(13/2,12/3)+q⁻¹M(13/2,13/2)+(1-q⁻¹)M(123,123)
source
Chevie.Murphy.initMurphyFunction

initMurphy(H) for hecke(coxgroup(:A,n-1),q)

Called the first time that the Murphy basis is used. Creates H.Murphy with various components.

  • H.Murphy.partitions contains the partitions of n
  • H.Murphy.Tableaux[mu] contains the tableaux for H.Murphy.partitions[mu]
  • H.Murphy.InfoTableaux[mu] contains InfoTableaux for H.Murphy.Tableaux[mu]

Creating a list of all of the standard tableaux is a big overhead for Specht modules of large dimension so the above arrays work as a cache filled as needed. The bookkeeping to maintain these caches is done in InfoTableau.

source