7

The following commands

gap> G:=SmallGroup(6,1);
<pc group of size 6 with 2 generators>
gap> GeneratorsOfGroup(G);
[ f1, f2 ]
gap>

display the generators of $G$ in a rather abstract way. The command StructureDescription helps to understand the structure of the group, but does not tell anything about generators or generating sets. In particular, how do I get the size of a minimal generating set of some group ?

How can I display the generators or a minimal generating set more concrete, for example a^2=b^3=ab^2=e or something like that ? $f_1$ and $f_2$ is not helpful to understand the structure of a group.

UPDATE : I just found an answer that could help me. The following commands give the relations of the group.

gap> H:=Image(IsomorphismFpGroup(G));
<fp group of size 6 on the generators [ F1, F2 ]>
gap> RelatorsOfFpGroup(H);
[ F1^2, F2^-1*F1^-1*F2*F1*F2^-1, F2^3 ]
gap>

Is this a presentation of the given group ?

ahulpke
  • 20,399
Peter
  • 86,576
  • Easy asked a very similar question, but the answers did not tell me how I can display human-readable generators / genrating sets. – Peter Jan 19 '16 at 17:40

2 Answers2

5

For a pc group (polycyclic presentation), RelatorsOfFpGroup(Range(IsomorphismFpGroup(G))) will return defining relators in these generators which can be interpreted as either expressing generator powers or generator commutators in terms of "lower order" generators. This can represents some semidirect product structure.

Otherwise one would have to find "nice" generators by hand, the question Presentation for hand calculation might give a bit of an idea how to do so.

You can compute a minimal (with respect to cardinality) generating set as

gap> MinimalGeneratingSet(G);
[ f1, f2 ]

(this will work only for solvable groups. In general there is SmallGeneratingSet that does not guarantee minimal cardinality), but in this case it will give you the same generators as before. MinimalGeneratingSet will only give a generating set of minimal cardinality -- it is not a generating set with respect to which a presentation would be particularly nice.

ahulpke
  • 20,399
  • Does that mean that it is impossible to find a minimal generating set of a group with GAP ? – Peter Jan 19 '16 at 17:57
  • @Peter No, you can use MinimalGeneratingSet (for solvable groups only) or SmallGeneratingSet, but these in general are just chosen to be minimal by cardinality and do not satisfy any particular niceness conditions. – ahulpke Jan 19 '16 at 18:46
  • @Peter: also look at SimplifiedFpGroup usage here – Olexandr Konovalov Jan 19 '16 at 21:20
  • @Alex my intent is to give a group, lets say, SmallGroup(16,2) and then calculate a minimal generating set for that group. Can I do this in GAP ? – Peter Jan 19 '16 at 21:24
  • @Peter Added remark on minimal generating set. – ahulpke Jan 19 '16 at 21:31
0

You might like to try:

G:=SmallGroup(6,1);
Print(StructureDescription(G),"\t");
MinimalGeneratingSet(G);
F:=FreeGroup("a", "b");
words:=[F.1, F.2];
iso:=IsomorphismFpGroupByGenerators(G,MinimalGeneratingSet(G));
fp:=Image(iso);
P:=PresentationViaCosetTable(fp, F, words);
gout := FpGroupPresentation( P );
Print(RelatorsOfFpGroup(gout),"\n");

Which will give as output:

S3      [ a^2, b^3, (a*b)^2 ]

The generator set is a, b.