# Revision history [back]

Here are some equivalent ways to introduce the Iwahori-Hecke algebra, in this particular example for the type $A_3$.

sage: R.<q> = LaurentPolynomialRing(QQ)
sage: Q = q^2
sage: IHA1 = IwahoriHeckeAlgebra( 'A3', Q )
sage: IHA2 = IwahoriHeckeAlgebra( RootSystem('A3'), Q )
sage: IHA3 = IwahoriHeckeAlgebra( CoxeterGroup( 'A3' ), Q )
sage: IHA1 == IHA2
True
sage: IHA1 == IHA3
True

sage: T = IHA1.T()
sage: [ (T[k]-Q)*(T[k]+1) for k in (1,2,3) ]
[0, 0, 0]
sage: T1, T2, T3 = T.algebra_generators()
sage: [ (Tk-Q)*(Tk+1) for Tk in (T1,T2,T3) ]
[0, 0, 0]
sage: T2*T1*T2
T[1,2,1]
sage: T1*T2*T1
T[1,2,1]


I also tried

sage: IHA4 = IwahoriHeckeAlgebra( WeylGroup('A3'), Q )
sage: IHA1 == IHA4
False

sage: IHA1 = IwahoriHeckeAlgebra( 'A3', Q )
sage: IHA5 = IwahoriHeckeAlgebra( CartanType('A3'), Q )
sage: IHA1 == IHA5
True


The equality with IHA4 fails maybe for reasons of internal representation. But one can also work in IHA4.

sage: TT = IHA4.T()
sage: TT[1]^2
-(1-q^2)*T[1] + q^2
sage: TT[1]*TT[2]*TT[1] - TT[2]*TT[1]*TT[2]
0


If the needed research theme / application points to a Coxeter group not listed among the $A,B,C,D,E,F,\dots$ types, then we need to know the Coxeter group in the original post. (How it is constructed, or at least mathematically defined.)