I ended up writing my own hack for a group algebra for some recent
work and would be interested in writing more complete code for it over
the summer. I would like to be able to do (almost) all of the
calculations below in SAGE:
http://magma.maths.usyd.edu.au/magma/htmlhelp/part10.htm
Here's my long-term take on this question (anyone else please feel
free to chime in and agree/disagree).
There should really be a GroupAlgebra class, derived from Algebra (in
algebra.py). Currently the functionality of Algebra, and its
subclasses, is quite limited. There's some code for quarternion
algebras, but it's not too efficient yet. I imagine that a
GroupAlgebra would have a base ring R, and an associated group G. If
the group G was finite, one could represent elements by vectors of
elements of R; if G was infinite (or just really big), perhaps one
would want a sparse representation. If G is abelian, and R
commutative, special measures could be taken to speed up the
arithmetic. (Does anyone do group algebras over non-commutative
rings....? I don't know...). There would be coercions from R into R
[G] and also from G into R[G] (assuming R is unital). There would be
a specialisation for the case that R is a field. Then the harder
stuff: decomposition into irreducibles, etc, which actually involves
writing tricky code, or perhaps this has already been written.... I
have no idea, I'm not a representation theory sort of guy.
One could probably already define these things in SAGE as a quotient
of a free algebra, but I bet it wouldn't be too efficient that way,
and not very useful.
So I guess we eventually want to see this:
sage: G = SymmetricGroup(3)
sage: ZZ[G]
Group Algebra of Symmetric group of order 3! as a permutation group
over Integer Ring
David
In the sparse case, when you create the vectors of elements of R
just use "sparse = True". Of course, if G is infinite that won't work
until I implement FreeModule(R,infinity).
> commutative, special measures could be taken to speed up the
> arithmetic. (Does anyone do group algebras over non-commutative
> rings....? I don't know...). There would be coercions from R into R
> [G] and also from G into R[G] (assuming R is unital). There would be
> a specialisation for the case that R is a field. Then the harder
> stuff: decomposition into irreducibles, etc, which actually involves
> writing tricky code, or perhaps this has already been written.... I
> have no idea, I'm not a representation theory sort of guy.
At least if R is a finite field, I bet it's all available through GAP
somehow, though probably not so easy to use. This is the sort
of thing that "meataxe" is supposed to address. I think over QQ
or a number field it's a pretty hard problem, but MAGMA does
some things using clever tricks (and perhaps is sometimes misleading
(=wrong) in its output...)
> One could probably already define these things in SAGE as a quotient
> of a free algebra, but I bet it wouldn't be too efficient that way,
> and not very useful.
>
> So I guess we eventually want to see this:
>
> sage: G = SymmetricGroup(3)
> sage: ZZ[G]
> Group Algebra of Symmetric group of order 3! as a permutation group
> over Integer Ring
Yep, I like that.
William
Did you look at LAGUNA or UnitLib?
I thnk Alexander Konovalov is the best GAP person to talk
to about this (kono...@member.ams.org).
>
> I ended up writing my own hack for a group algebra for some recent
> work and would be interested in writing more complete code for it over
> the summer. I would like to be able to do (almost) all of the
> calculations below in SAGE:
> http://magma.maths.usyd.edu.au/magma/htmlhelp/part10.htm
This is very ambitious but I think would be a great contribution!
>
> >
>
The module decomposition problem is only easier over finite fields
because the modules are finite; the theory is more subtle than in
characteristic zero. It is computationally harder to find the
splittings since the generating basis elements can be large (in
terms of a fixed group algebra basis), but my understanding is
that the character theory and resulting representation theory is
better understood. Doing local decompositions over p-adics
integer rings and number/function rings would give insight into both
the modular theory (i.e. over finite fields) and characteristic zero,
so the computational infrastructure should be set up generically.
--David
Yeah, I looked at LAGUNA, and it wasn't exactly what I was looking
for. I guess I'm more interested in the looking at the group algebras
as K[G]-modules.
If I understand correctly, the following is a special case: given a
semisimple K[G],
you want to know the simple subalgebras occurring in its Wedderburn
decomposition.
This is the output of the GAP package Wedderga. Only finite fields and
subfields of
cyclotomic fields are supported. Alexander Konovalov is a co-author of that too.
Both LAGUNA and Wedderga are GPL'd. Moreover, I am in frequent contact with
AK and would be happy to pass along any questions for you, if you'd like.
>
> >
>