[GAP Forum] semsimple algebras and subalgebras
Willem de Graaf
degraaf at science.unitn.it
Mon Feb 17 08:39:44 GMT 2014
Dear R.N. Tsai,
You asked:
> I'd like to identify
> the subalgebra irreps with concrete subspaces of the main algebra. Is
there
> a (hopefully simple) way to extract this information?
Not directly, however it is not so difficult to write some code for that.
At the bottom of this message please find a GAP function that does that.
It is followed by an example.
One remark: in your piece of code you use the command
Dimension(HighestWeightModule(sub,bra[1][k]))
It is much more efficient to use
DimensionOfHighestWeughtModule( sub, bra[1][k] );
as this avoids constructing the module.
You also asked:
> is there a general way to get the weight of the adjoint rep for an
> arbitrary semisimple algebra?
If the Lie algebra is denoted L, then you can do
wt:= PositiveRootsAsWeights( RootSystem(L) );;
hw:= wt[ Length(wt) ];
I am glad that the sla package is of use to you.
Best wishes,
Willem de Graaf
# function:
DecomposeAdRep:= function( L, K )
# K is a subalgebra of L, both semisimple in char 0;
# we return the decomposition of L as K module.
local cg, e, x, ad, i, spaces, spaces0, h, ww, sp, mat, es, hwv;
cg:= CanonicalGenerators( RootSystem(K) );
e:= List( Basis(L), x -> [ ] );
for x in cg[1] do
ad:= TransposedMat( AdjointMatrix(Basis(L),x) );
for i in [1..Length(ad)] do
Append( e[i], ad[i] );
od;
od;
spaces:= [ List( NullspaceMat(e), u -> u*Basis(L) ) ];
for h in cg[3] do
spaces0:= [ ];
for ww in spaces do
sp:= Basis( Subspace(L,ww), ww );
mat:= List( ww, u-> Coefficients(sp,h*u) );
es:= Eigenspaces( LeftActingDomain(L), mat );
for i in [1..Length(es)] do
Add( spaces0, List( Basis(es[i]), x -> x*ww ) );
od;
od;
spaces:= spaces0;
od;
hwv:= Concatenation( spaces );
spaces:= [ ];
for i in [1..Length(hwv)] do
Add( spaces, MutableBasisOfClosureUnderAction( LeftActingDomain(L),
cg[2], "left", [ hwv[i] ], \*, Zero(L), Dimension(L) ) );
od;
return List( spaces, u -> Subspace(L,BasisVectors(u)) );
end;
# example:
gap> r:= LieAlgebraAndSubalgebras("G2");;
gap> L:= r.liealg;;
gap> K:= r.subalgs[5];;
gap> DecomposeAdRep( L, K );
[ <vector space over Rationals, with 8 generators>,
<vector space over Rationals, with 3 generators>,
<vector space over Rationals, with 3 generators> ]
More information about the Forum
mailing list