[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