# How to find presentation of a group using GAP?

I have a group from Small Group Library and I want to find its presentation using GAP.

I have tried to use PresentationFpGroup(G) but failed.

• Try IsomorphismFpGroup – Derek Holt Apr 29 '14 at 11:17
• I've recently shown how to use IsomorphismFpGroup  at this answer. Please see also ?SimplifiedFpGroup in GAP. – Alexander Konovalov Apr 29 '14 at 20:06
• @AlexanderKonovalov: Could we do this question, as you kindly did it below, for finite semigroups? However, this question was for 3 years ago. Regards. – mrs Feb 9 '18 at 7:50
• @ResidentDementor Why don't you post a new question, formulated for finite semigroups, on this site? – Alexander Konovalov Feb 9 '18 at 9:31

## Overview.

If G is the group you want a presentation for, first use

H:=Image(IsomorphismFpGroup(G));


to transform G into a FPGroup type. GAP will output the generators. Then follow up with

RelatorsOfFpGroup(H);


to see the relations.

### Remark.

Sometimes it may be helpful to call SimplifiedFpGroup like here:

H:=SimplifiedFpGroup(Image(IsomorphismFpGroup(G)));


in order to obtain a presentation of a simpler form.

## Example.

The following example demonstrates this for the dihedral group of order 256. First we will figure out its ID and extract it from the Small Groups Library:

gap> D:=DihedralGroup(256);
<pc group of size 256 with 8 generators>
gap> IdGroup(D);
[ 256, 539 ]
gap> G:=SmallGroup(256,539);
<pc group of size 256 with 8 generators>


It is given by a presentation of special kind, called polycyclic presentation. This is very efficient to process this group on a computer, but not very efficient for processing by humans:

gap> H:=Image(IsomorphismFpGroup(G));
<fp group of size 256 on the generators [ F1, F2, F3, F4, F5, F6, F7, F8 ]>
gap> RelatorsOfFpGroup(H);
[ F1^2, F2^-1*F1^-1*F2*F1*F3^-1, F3^-1*F1^-1*F3*F1*F4^-1, F4^-1*F1^-1*F4*F1*F5^-1,
F5^-1*F1^-1*F5*F1*F6^-1, F6^-1*F1^-1*F6*F1*F7^-1, F7^-1*F1^-1*F7*F1*F8^-1,
F8^-1*F1^-1*F8*F1, F2^2, F3^-1*F2^-1*F3*F2*F4^-1, F4^-1*F2^-1*F4*F2*F5^-1,
F5^-1*F2^-1*F5*F2*F6^-1, F6^-1*F2^-1*F6*F2*F7^-1, F7^-1*F2^-1*F7*F2*F8^-1,
F8^-1*F2^-1*F8*F2, F3^2*F5^-1*F4^-1, F4^-1*F3^-1*F4*F3, F5^-1*F3^-1*F5*F3,
F6^-1*F3^-1*F6*F3, F7^-1*F3^-1*F7*F3, F8^-1*F3^-1*F8*F3, F4^2*F6^-1*F5^-1,
F5^-1*F4^-1*F5*F4, F6^-1*F4^-1*F6*F4, F7^-1*F4^-1*F7*F4, F8^-1*F4^-1*F8*F4,
F5^2*F7^-1*F6^-1, F6^-1*F5^-1*F6*F5, F7^-1*F5^-1*F7*F5, F8^-1*F5^-1*F8*F5,
F6^2*F8^-1*F7^-1, F7^-1*F6^-1*F7*F6, F8^-1*F6^-1*F8*F6, F7^2*F8^-1, F8^-1*F7^-1*F8*F7,
F8^2 ]


Luckily, in this case SimplifiedFpGroup produces much shorter presentation:

gap> K:=SimplifiedFpGroup(H);
<fp group on the generators [ F1, F2 ]>
gap> RelatorsOfFpGroup(K);
[ F1^2, F2^2, (F1*F2)^128 ]


Just to show that all these three groups are isomorphic,

gap> List([G,H,K],StructureDescription);
[ "D256", "D256", "D256" ]


Note that if the connection to the original group is important, then the operation IsomorphismSimplifiedFpGroup should be used instead of SimplifiedFpGroup. Furthermore, if for some concrete group the resulting presentation is unsatisfying, then one could try more sophisticated interactive use of Tietze transformation commands available in GAP (see here).

• I, personally, preferred to know the answer of this question when we have semigroups instead of groups, however; there are some similar codes. +1 – mrs Feb 2 '18 at 16:46
• @Resident feel free to edit in a section to include that code in this answer. It is CW, so there is no owner. – Alexander Gruber Feb 4 '18 at 4:37
• @AlexanderGruber: Dear Alexander, what should we do for questions about GAP so far? Should them ask at MSE or at Stackoverflow. Sometimes, I am wonder where to ask them. I don't want to make any defects in whole system. If you think, they should be there, please send my questions about GAP to there site. Regards. – mrs Feb 9 '18 at 7:57
• @Resident Dementor I would ask GAP questions on MSE. They are on-topic both here and on StackOverflow, but I wager it is more likely to get an answer at MSE. In other news, there is a GAP email list that serves as a forum and is very active, so you may want to look into that if you're using GAP often. – Alexander Gruber Feb 10 '18 at 4:27