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. _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum