GAP4 package QuaGroup
A GAP4 package for doing computations with quantized enveloping algebras. Features include: We note the following: Installation: just gunzip, and untar (or unzoo) in the pkg directory; then, in GAP, you can use RequirePackage( "quagroup" ); to load the package.

Here is the package:



Here are some examples, meant to give an impression of the capabilities of the package.

# We can create quantized enveloping algebras relative to
# root systems of type A-G.
gap> R:= RootSystem( "C", 3 );
<root system of type C3>
gap> U:= QuantizedUEA( R );
QuantumUEA( <root system of type C3>, Qpar = q )


# The generators generate a so-called PBW-type basis;
# in QuaGroup a basis of Lusztig's Z-form is used.
gap> g:= GeneratorsOfAlgebra( U );
[ F1, F2, F3, F4, F5, F6, F7, F8, F9, K1, K1+(q^-1-q)*[ K1 ; 1 ], K2,
K2+(q^-1-q)*[ K2 ; 1 ], K3, K3+(q^-2-q^2)*[ K3 ; 1 ], E1, E2, E3, E4, E5,
E6, E7, E8, E9 ]

gap> g[20]*g[13]*g[3];
(q^2-q^4)*F3*[ K2 ; 1 ]*E5+(q^3)*F3*K2*E5+(-1)*E6+(-q^-4+q^-2+1-q^2)*[ K2 ;
2 ]*E6+(-q^-3+q^-1)*K2[ K2 ; 1 ]*E6


# We can compute irreducible modules.
gap> V:= HighestWeightModule( U, [1,0,1] );
<70-dimensional left-module over QuantumUEA( <root system of type C
3>, Qpar = q )>


# We can also compute the same module as a submodule of a tensor product.
gap> W1:= HighestWeightModule( U, [1,0,0] );
<6-dimensional left-module over QuantumUEA( <root system of type C
3>, Qpar = q )>

gap> W3:= HighestWeightModule( U, [0,0,1] );
<14-dimensional left-module over QuantumUEA( <root system of type C
3>, Qpar = q )>

gap> T:= TensorProductOfAlgebraModules( W1, W3 );
<84-dimensional left-module over QuantumUEA( <root system of type C
3>, Qpar = q )>

gap> W:= SubAlgebraModule( T, [ Basis(T)[1] ] );
<left-module over QuantumUEA( <root system of type C3>, Qpar = q )>
gap> Dimension( W );
70
# (This last computation may take some time).

# We can compare both modules by computing their crystal bases;
# the action of the elements of U on these bases are given
# by the same matrices (because the elements of the crystal bases
# are ordered in the same way).
gap> CV:= CrystalBasis( V );;
gap> CW:= CrystalBasis( W );;
gap> MatrixOfAction( CV, g[7] ) = MatrixOfAction( CW, g[7] );
true

# We can compute elements of the canonical basis of
# the minus part of U.
gap> B:= CanonicalBasis( U );
<canonical basis of QuantumUEA( <root system of type C3>, Qpar = q ) >
gap> PBWElements( B, [1,2,1] );
[ F1*F3^(2)*F9, F1*F3*F8+(q+q^3)*F1*F3^(2)*F9,
(q)*F1*F3*F8+(q^4)*F1*F3^(2)*F9+F1*F7, (q^2)*F1*F3^(2)*F9+F2*F3*F9,
(q)*F1*F3*F8+(q^2+q^4)*F1*F3^(2)*F9+(q^2)*F2*F3*F9+F2*F8,
(q^2)*F1*F3*F8+(q^3+q^5)*F1*F3^(2)*F9+(q+q^3)*F2*F3*F9+(q)*F2*F8+F3*F6,
(q^3)*F1*F3*F8+(q^6)*F1*F3^(2)*F9+(q^2)*F1*F7+(q^4)*F2*F3*F9+(q^2)*F2*F
8+(q)*F3*F6+F5 ]