[GAP Forum] Modules over general and not so general algebras

Johannes Hahn johannes.hahn at uni-jena.de
Fri Feb 1 14:38:08 GMT 2013


Hi everyone.

Is there an elegant way to implement (finite-dimensional) modules over 
my favorite algebra? My algebra is finite dimensional and I would GAP 
tell this if it needs to know, but I don't want to spell out an explicit 
basis and structure constants for the algebra. (More to the point: I 
work with Hecke algebras and they get way to big for this, if the 
Coxeter group is big, say E_7, E_8)

I do not actually need the algebra, I just want to do some computations 
with the matrices of the representation. There seems no way to define an 
algebra by generators and relations because GAP seemingly wants to do 
some calculations and of course this goes wrong in the general case and 
even in my special case GAP doesn't know that there are normalforms for 
the elements of my algebra etc. (And I cannot find a way to tell GAP this)

The next best thing would be to just forget the relations for a moment 
and think of the modules as algebra morphisms from the free algebra on 
the (small) set of generators into a full matrix algebra. If you have 
that, one could implement a filter that checks the defining relations of 
my favorite algebra for such morphisms manually.
GAP knows free algebras and it knows matrix algebras and it has an 
operation for defining algebra morphisms by their images, but 
interestingly, even this does not work.

If I just try to get the morphism Q<x,y> \to Q, x \mapsto 1, y\mapsto 1 
doing this:
 > F:=FreeAssociativeAlgebraWithOne(Rationals,2);
<algebra-with-one over Rationals, with 2 generators>
 > f := AlgebraHomomorphismByImages(F,FullMatrixAlgebra(Rationals,1), 
GeneratorsOfAlgebraWithOne(F),[ [[1]], [[1]] ]);
then GAP enters an infinite loop for some reason.
This behaviour is completely mysterious to me. Why on earth would GAP 
even consider to do *any* computation in that situation? There is 
exactly nothing else to know about a general algebra morphism on a free 
algebra other than the data that already has been given. The only thing 
to do here is to take the input data, wrap it into an object, set some 
filters to true and return that object.
Why does GAP try to compute anything here instead of just giving me my 
morphism so I can start working with it?

Should there be a compelling reason for GAP to behave this way (although 
I really can't think of any...), then my question immediatly changes 
into: What is an elegant way to implement matrix representation of Hecke 
algebras without having to tell GAP an explicit basis and structure 
constants for the algebra?

Right now I'm just working with plain records to store information about 
the representation but this seems very inelegant to me. There are no 
"real" objects, no types, no possibility for method-selection based on 
additional information... (and I can't figure out how to implement 
Hecke-Matrix-Representation objects for myself... I'm not sure yet if 
GAP really behaves differently than the manual claims or if I'm just to 
stupid to read the manual correctly.)

Best wishes
Johannes Hahn.



More information about the Forum mailing list