> < ^ From:

< ^ Subject:

Dear GAP forum,

Keith Briggs asked:

Does anybody know an efficient method for listing all presentations

of a given group with a given number of generators?

Joachim Neub"user and Derek Holt already mentioned that this problem would

be fiendishly complicated, even for the trivial group. From a private

conversation however I realize that the question was slightly misformed and

actually asks for all *generating sets* with $n$ elements for a given group.

This task is doable, not just in theory but even in GAP.

The operation GQuotients(<G>,<H>) will return all epimorphisms of <G> onto

<H>, classified up to equivalence under Aut(H) (in other words: They are

considered equivalen if they have the same kernel).

If <G> is a free group with <n> generators, these epimorphisms correspond to

<n>-generator generating sets of <H> up to Aut(H):

gap> g:=Group((1,2,3),(1,2));; # for example S_3 gap> f:=FreeGroup(2);; gap> q:=GQuotients(f,g); [ [ f1, f2 ] -> [ (1,2,3), (2,3) ], [ f1, f2 ] -> [ (2,3), (1,2,3) ], [ f1, f2 ] -> [ (1,3), (2,3) ] ] # now map the generators of <f> to get the corresponding generating pairs # for <g>. gap> fgens:=GeneratorsOfGroup(f);; gap> List(q,i->Image(i,fgens)); [ [ (2,3), (1,2,3) ], [ (2,3), (1,2,3) ], [ (2,3), (1,3) ] ]

(Just last month Bill Thurston gave another example of using `GQuotients'

for a similar task, you can still find his mail in the forum archive:

http://www-gap.dcs.st-and.ac.uk/~gap/Forum/wpt@math.1/wpt@math.1/Re__gene.5/1.html

which might be of interest as well.)

If you are interested in *counting* generating systems, there is a

special operation `EulerianFunction' which provides this functionality.

Again, the older forum thread mentioned above contains more references about

this.

I hope this is of help,

Alexander Hulpke

> < [top]