Erhard Aichinger asked:
I would need functions to compute all automorphisms on a group
and also all homomorphisms from one group to another.
This includes, of course, as a special case, finding all
endomorphisms on a given group. Wouldn't it be possible to
include such functions in a later version of GAP ?
It certainly would be possible, but so far no plans in this direction have
I'll try to explain what's already there and how it could be modified to
suit your needs:
So far GAP contains generic (i.e. not restricted to specific classes of
groups) routines for Automorphism groups and Isomorphism testing (yielding
by composition all isomorphisms of one group to another).
For my personal purposes I extended these routines to the case of
monomorphisms: A -> B and epimorphisms A->>B. These routines will be added
to the library in the next version.
In principle it would be possible without too much problems to extend
it further to the case of all homomorphisms A->B.
As these sets might become pretty large computing might take a significant
portion of time. I did not need this general case so far but if there is
need for it, it could be included in the next version.
If you are in urgent need for routines of this kind, I can provide you
privately with code already now.
There is also a package for automorphisms of solvable groups currently under
development by Michael Smith at ANU, Canberra. We have a preliminary version
privately here at Aachen, it looks quite promising. I reckon it might be
possible to extend the algorithms to endomorphisms, but I'm not aware of any
plans in this direction.
You might also want to have a look at the nearring functions by Christof
N"obauer which can be found (courtesy of Tim Boykett) on our ftp server
(ftp.math.rwth-aachen.de, directory pub/incoming, files nrsg.tar.gz,
extensive documentation in nrsg.diss.ps.gz).
This package contains routines for the computation of endomorphism rings.
The ideas seem to be similar to the mentioned algorithm employed by GAP.
(But as you seem to be in Linz you probably already know about it ...)
I did a few experiments with the automorphism routines. In the examples
I tried it seemed that this routine is limited to groups of moderate
size, while Michael Smith's routines were more efficient (if the group is
solvable). This discrepancy might become even more extreme when searching
Is there any theory of computing endomorphisms on non-abelian
There are some ideas I would not call `theory':
The function I mentioned for computing automorphisms &c. calls a routine
I baptized `morpheus'. This routine tries to find
morphisms by running through all possible tuples of generator images. As the
range is a group one has to run through these tuples only up to conjugacy
(when taking inner automorphisms into consideration).
To speed up computations, generators with only few possible images are
selected for the preimage group. Properties of these generators like
centralizer sizes &c. can be used to prune the search tree.
I don't know further techniques (for the general case). If anyone is aware
of such algorithms I would be interested to hear about them.
(However, I cannot promise anything about including such routines as people
here already have projects they work on; for example I'm currently
working on the completion of my PhD thesis.)