1 | initial version |

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.)

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.