> < ^ From:

^ Subject:

Dear GAP-Forum,

Phil Meier wrote:

> first, many thanks to Tim Hsu for answering my initial question

> on free groups. Now, I have a little problem with the implementation.

Let F be a finitely generated free group and H a finite index subgroup

of F, given by finitely many generators (words in F).

The command FactorCosetOperation(F,H) works well, but what I need

is something like

FactorCosetOperation(F, NormalClosure(F,H)),

but NormalClosure(F,H) doesn't work.

What can I do?

The problem is that GAP4.2 does not contain a special method for

`NormalClosure' for finitely presented groups. Such a method will be

available in the forthcoming release 4.3. Let me know if you need

the corresponding code already now and would like me to mail it to you.

With this extra function the calculation will work:

gap> f:=FreeGroup(2); <free group on the generators [ f1, f2 ]> gap> g:=f/[f.2^3,(f.1*f.2)^4]; <fp group on the generators [ f1, f2 ]> gap> h:=Subgroup(g,[g.2,g.2^g.1,g.1^2]);; gap> n:=Subgroup(g,[g.2,g.1*g.2*g.1,g.1^3*g.2*g.1^-1,g.1^2*g.2*g.1^-2, > g.1*g.2^-1*g.1^3,g.1^-2*g.2*g.1^2]); Group([ f2, f1*f2*f1, f1^3*f2*f1^-1, f1^2*f2*f1^-2, f1*f2^-1*f1^3, f1^-2*f2*f1^2 ]) gap> Index(g,h); 2 gap> Index(g,n); 6 gap> IsSubset(h,n); true gap> IsNormal(g,n); false gap> IsNormal(h,n); true gap> c:=NormalClosure(g,n); Group(<fp, no generators known>) gap> FactorCosetAction(g,c); [ f1, f2 ] -> [ (1,2), () ]

In fact -- once this missing method is available -- one can then use GAP to

simply ask for equality of the groups in question -- internally it will do

essentially the same calculations as suggested by Tim Hsu is his prior mail:

gap> n=Intersection(h,NormalClosure(g,n));

false

gap> h=Intersection(h,NormalClosure(g,n));

true

I hope this is of help,

Alexander Hulpke

Miles-Receive-Header: reply

> < [top]