True if the group G is abelian, false otherwise.
True if the stored presentation for G is consistent, false otherwise.
True if the group G is cyclic, false otherwise.
True if the group G is elementary abelian, false otherwise. The following definition is used:A group G is called elementary abelian if it is an abelian p-group of exponent p for some prime p.
True if the group G is finite, false otherwise.
True if the group G is nilpotent, false otherwise. This function uses an algorithm described in [Lo98].
True if the group G is perfect, false otherwise. A polycyclic group G is perfect, if and only if it is trivial.
True if the group G is simple, false otherwise. A polycyclic group is simple, if and only if it is cyclic of prime order.
True if the group G is solvable, false otherwise. Every polycyclic group is solvable.
True if only small integers occur in the presentation of G, false otherwise. The category transfer functions FPGroup and PCGroup currently support only groups with a small presentation.
True if the subgroup H of the group G lies in the centre of G, false otherwise.
True if the subgroup H of the group G is a normal subgroup of G, false otherwise.
The functions described in this section require the existence of a nilpotent covering group. The are based on algorithms published in [Lo98].
Given groups G, H and K with a nilpotent common covering group, return the value true if there exists c in G such that H^c = K. If so, the function returns such a conjugating element as second value.
True if the subgroup H of the nilpotent group G is self-normalising in G, false otherwise.
> F<a,b,c,d,e> := FreeGroup(5); > rels := [ b^a = b*e^2, b^(a^-1) = b*e^-2, d^c = d*e^3, > d^(c^-1) = d*e^-3 ]; > G<a,b,c,d,e> := quo< GrpGPC: F | rels >; > IsNilpotent(G); trueSince G is nilpotent, we can compute intersections of subgroups of G.
We define the subgroups generated by a, ..., e and their nontrivial commutator groups as subgroups of G.
> H1 := sub<G|a>;
> H2 := sub<G|b>;
> H3 := sub<G|c>;
> H4 := sub<G|d>;
> H5 := sub<G|e>;
>
> C12 := CommutatorSubgroup(H1, H2);
> {@ G!x : x in PCGenerators(C12) @};
{@ e^2 @}
> C12 subset H5;
true
>
> C34 := CommutatorSubgroup(H3, H4);
> {@ G!x : x in PCGenerators(C34) @};
{@ e^3 @}
> C34 subset H5;
true
Finally, we compute the intersection C of C12 and C13.
> C := C12 meet C34;
> {@ G!x : x in PCGenerators(C) @};
{@ e^6 @}
This intersection C is cyclic and central in G.
> IsCyclic(C); true > IsCentral(G, C); true
> F<t, a,b, c,d> := FreeGroup(5); > G<t, a,b, c,d> := quo<GrpGPC: F | a^2, b^16, b^a=b^15, > c^2, d^16, d^c=d^15, > t^2, a^t=c, b^t=d, c^t=a, d^t=b>; > IsNilpotent(G); trueSince G is nilpotent, we can compute normalisers and centralisers in G.
We define the (dihedral) subgroup D3 of G generated by ac and bd and compute its normaliser in G and its centraliser in the (dihedral) subgroup D2 of G generated by c and d.
> D2 := sub<G|c,d>;
>
> D3<u,v> := sub<G|a*c, b*d>;
> D3;
GrpGPC : D3 of order 2^5 on 2 PC-generators
PC-Relations:
u^2 = Id(D3),
v^16 = Id(D3),
v^u = v^15
>
> N3 := Normaliser(G, D3);
> PCGenerators(N3, G);
{@ t, a * c, b * d, d^8 @}
>
> C3 := Centraliser(D2, D3);
> PCGenerators(C3, G);
{@ d^8 @}
Finally we compute the centraliser of the element t in G.
> Ct := Centraliser(G, t);
> PCGenerators(Ct, G);
{@ t, a * c, b * d @}