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.

_______________________________________________
Forum mailing list
Forum@mail.gap-system.org
http://mail.gap-system.org/mailman/listinfo/forum

Reply via email to