Practical algorithm to calculate power subgroup of a polycyclic group

68 Views Asked by At

I am looking for a practical algorithm to calculate the power subgroup $G^n := \langle g^n \mid g \in G \rangle$ of a (possibly infinite) polycyclic group $G$. A theoretical algorithm is given in [1], but it does not appear to be practical, as it involves enumerating all finite index normal subgroups with index less than a certain integer.

I came up with the following algorithm (given in GAP-code), which reduces the problem to finite polycyclic groups.

PowerSubgroup := function( G, n )
    local L, N, p, Q, Qn;
    L := List( Pcp( G ), g -> g^n );
    N := NormalClosure( G, SubgroupNC( G, L ) );
    p := NaturalHomomorphismByNormalSubgroupNC( G, N );
    Q := Image( p );
    Qn := SubgroupNC( Q, List( Q, q -> q^n ) );
    return PreImage( p, Qn );
end;

Unfortunately, for this finite polycyclic group Q, I couldn't think of anything other than just taking the set of all $n$-th powers. As one may expect, this creates pretty terrible bottleneck. I feel like there might be a more efficient approach, perhaps by exploiting the polycyclic presentation or the derived series somehow...

[1] Baumslag, Gilbert; Cannonito, Frank B.; Robinson, Derek J. S.; Segal, Dan, The algorithmic theory of polycyclic-by-finite groups, J. Algebra 142, No. 1, 118-149 (1991). ZBL0774.20019.

1

There are 1 best solutions below

1
On BEST ANSWER

As an improvement on what you have already, you could compute representatives of the conjugacy classes of $Q$, and then $Q^n$ is the normal closure of the subgroup generated by their $n$-th powers.

I think what I would try is to choose a collection of random elements of the group, let $N$ be the normal closure of the subgroup generated by their $n$-th powers, and then construct $Q/N$. You can check using the Exponent function whether $Q/N$ has exponent dividing $n$. If not, repeat with $Q$ replaced by $Q/N$.