[GAP Forum] How to find consistent polycyclic presentation
Petr Savicky
savicky at cs.cas.cz
Wed Aug 26 09:51:50 BST 2015
On Wed, Aug 26, 2015 at 12:07:45PM +0530, Vipul Kakkar wrote:
> Dear Members
>
> How can I find consistent polycyclic presentation form
> (1) the group that I chose from GAP library and
> (2) the group that I define by FreeGroup/Relation.
>
> For example, how to find consistent polycyclic presentation
>
> for g:=SmallGroup(81,5); and
>
> for f:=FreeGroup(2); g:=f/[f.1^4, f.2^2, (f.1*f.2)^2];
Dear Vipul Kakkar:
The former group is a pc group:
g:=SmallGroup(81,5);
<pc group of size 81 with 4 generators>
which means that it is already represented using its polycyclic presentation:
http://www.gap-system.org/Manuals/doc/ref/chap46.html#X7EAD57C97EBF7E67
The latter group can be transformed to this form as follows
f:=FreeGroup(2); g:=f/[f.1^4, f.2^2, (f.1*f.2)^2];
hom := IsomorphismPcGroup(g);
gAsPc := Image(hom, g); # Group([ f1, f2 ])
IsPcGroup(gAsPc); # true
This is sufficient for computations with the groups. If you want to display
the defining relations and the group is finite with a small number of the
generators, then the following can be used
printPcGroup := function(G)
local f, i, j, k;
f := Pcgs(G);
Print(f, "\n");
Print(RelativeOrders(f), "\n");
Print("\n");
for i in [ 1..Length(f) ] do
k := RelativeOrderOfPcElement(f, f[i]);
Print("generator ", f[i], "\n");
Print(f[i], "^", k, " = ", f[i]^k, "\n");
for j in [ (i+1)..Length(f) ] do
Print(f[j], "^", f[i], " = ", f[j]^f[i], "\n");
od;
Print("\n");
od;
end;
For the latter group, this yields
printPcGroup(gAsPc);
Pcgs([ f1, f2, f3 ])
[ 2, 2, 2 ]
generator f1
f1^2 = f3
f2^f1 = f2*f3
f3^f1 = f3
generator f2
f2^2 = <identity> of ...
f3^f2 = f3
generator f3
f3^2 = <identity> of ...
Best regards,
Petr Savicky.
More information about the Forum
mailing list