# Finite Presentation in GAP of infinite index subgroup

Suppose I have a group $G$ with a finite presentation, and I know that $G$ is polycyclic. So I input the group into GAP via generators and relators. Now I want to find a presentation of an infinite index subgroup; I can do this by hand (usually), by doing a Reidemeister-Schreier rewriting, and then simplifying the presentation as best I can. GAP will, in general, not attempt to find presentations of infinite index subgroups. But if I tell GAP the group is polycyclic, are there various algorithms out there such that GAP can in fact give me a finite presentation for this infinite index subgroup?

If that is too much, can GAP do it for certain "nice" subgroups (the commutator, etc.)?

-
If you can convert the presentation to a polycyclic presentation, there are lots of fairly efficient algorithms (efficient as linear algebra over Z). The polycyclic package has lots of information. If the group is actually nilpotent, then there are better algorithms and they can handle a wider variety of inputs. If you mention a more specific group, I can mention more specific techniques, but in general you just want to use the data type of PcpGroup rather than FpGroup. –  Jack Schmidt Jan 20 '11 at 13:10
Hi Jack - Can we start with something easy, say the Klein bottle group <a,b | aabb=1>? Supposing all I know is the presentation and that the group is polycyclic, how can I get GAP to give presentations of, for example, the commutator subgroup? –  user641 Jan 20 '11 at 13:59
Just FWIW: I asked but have yet to hear back on how to automatically convert such a group to a polycyclic presentation. If you can find a polycyclic generating sequence, then you can ask gap for the relative orders and power and conjugate words, and set up the group as a PcpGroup. Once it is a PcpGroup, your question is easy: DisplayPcpGroup( DerivedSubgroup( G ) ); will display a polycyclic presentation with trivial relations omitted, and Display(ImagesSource(IsomorphismFpGroup(DerivedSubgroup(G)))); will display all the relations. –  Jack Schmidt Jan 20 '11 at 23:37
IsomorphismPcpGroup is probably not suitable for you, as it assumes that you are giving it a polycyclic presentation, with omitted polycyclic relations being trivial. In particular, it will abelianize your Klein bottle group. –  Jack Schmidt Jan 20 '11 at 23:38
OK, thanks Jack. So I still need to do a little work in converting to a polycylic presentation. Does DisplayPcpGroup return a presentation? I would like to be able to run Tietze transformations on it. –  user641 Jan 21 '11 at 1:48