A polycyclic group is a group G with a subnormal series G = G_1 > G_2 > .. > G_(n + 1) = 1 in which every quotient G_i / G_(i + 1) is cyclic. Every polycyclic group G has a presentation of the form
< a_1,..,a_n | a_i ^(m_i)= w_(i,i) (i in I) ,
a_j ^(a_i)= w_(i,j) (1 <= i < j <= n),
a_j ^(a_i^(-1))= w_(-i,j) (1 <= i < j <= n, i not in I) >
where
Infinite polycyclic groups are a comparatively new topic in computational group theory and the number of available algorithms is much smaller than in the case of finite polycyclic groups. For this reason, the data type GrpPC (cf. chapter FINITE SOLUBLE GROUPS) should be preferred for finite polycyclic groups.
Elements of polycyclic groups are words. A word is defined inductively as follows:
Given the polycyclic group G and a sequence Q of length n, containing integers e_1 ... e_n, where 0 <= (e_i) < m_(i) if i in I, construct the element x of G given by x = a_1^(e_1) ... a_n^(e_n).
Construct the identity element of the polycyclic group G.
Throughout this subsection, G will be a polycyclic group with pc-generators a_1, ..., a_n.
Given an element x belonging to the polycyclic group G, where x = a_1^(e_1) ... a_n^(e_n) in normal form, return the sequence Q of n integers defined by Q[i] = (e_i), for i = 1, ..., n.
Given an element x of a polycyclic group G with n pc-generators, where x is of the form a_1^(e_1) ... a_n^(e_n), return a_i^(e_i) for the smallest i such that e_i > 0. If x is the identity of G, then the identity is returned.
Given an element x of a polycyclic group G with n pc-generators, where x is of the form a_1^(e_1) ... a_n^(e_n), return a_i for the smallest i such that e_i > 0. If x is the identity of G, then the identity is returned.
Given an element x of a polycyclic group G with n pc-generators, where x is of the form a_1^(e_1) ... a_n^(e_n), return e_i for the smallest i such that e_i > 0. If x is the identity of G, then 0 is returned.
Given an element x of a polycyclic group G with n pc-generators, where x is of the form a_1^(e_1) ... a_n^(e_n), return the smallest i such that e_i > 0. If x is the identity of G, then n + 1 is returned.Depth returns the maximal value of i, such that x in G_i.
Throughout this subsection, G will be a polycyclic group with pc-generators a_1, ..., a_n.
Product of the element g and the element h, where g and h belong to some common subgroup G of a polycyclic group U. If g and h are given as elements belonging to the same proper subgroup G of U, then the result will be returned as an element of G; if g and h are given as elements belonging to distinct subgroups H and K of U, then the product is returned as an element of G, where G is the smallest subgroup of U known to contain both elements.
Replace g with the product of element g and element h.
The n-th power of the element g, where n is a positive or negative integer.
Replace g with the n-th power of the element g.
Quotient of the element g by the element h, i.e. the element g * h^(-1). Here g and h must belong to some common subgroup G of a polycyclic group U. The rules for determining the parent group of g/h are the same as for g * h.
Replace g with g * h^(-1).
Conjugate of the element g by the element h, i.e. the element h^(-1) * g * h. Here g and h must belong to some common subgroup G of a polycyclic group U. The rules for determining the parent group of g^h are the same as for g * h.
Replace g with the conjugate of the element g by the element h.
Given the n words g_1, ..., g_n belonging to some common subgroup G of a polycyclic group U, compute the left-normed commutator of g_1, ..., g_n. This is defined inductively as follows: (g_1, g_2) = g_1^(-1) * g_2^(-1) * g_1 * g_2 and (g_1, ..., g_n) = ((g_1, ..., g_(n - 1)), g_n).If g_1, ..., g_n are given as elements belonging to the same proper subgroup G of U, then the result will be returned as an element of G; if g_1, ..., g_n are given as elements belonging to distinct subgroups of U, then the product is returned as an element of G, where G is the smallest subgroup of U known to contain all elements.
The order of the element x.
The parent group G of the element x.
Given elements g and h belonging to a common polycyclic group, return true if g and h are the same element, false otherwise.
Given elements g and h belonging to a common polycyclic group, return true if g and h are distinct elements, false otherwise.
True if g is the identity element, false otherwise.
Check: BoolElt Default: true
Given a free group F of rank n with generating set X, and a collection R of polycyclic relations on X, construct the polycyclic group G defined by the polycyclic presentation < X | R >.The construct R denotes a list of polycyclic relations. Thus, an element of R must be one of:
Note the following points:
- A power relation a_i^(m_i) = w_(i, i), i in I subseteq {1, ..., n}, where m_i>1 is an integer, and w_(i, i) is Id(F) or a word in the generators a_(i + 1), ..., a_n for i < n, and w_(i, i) = Id(F) for i = n.
- A conjugate relation a_j^(a_i^e) = w_(e⋅i, j), 1 <= i < j <= n, where w_(e⋅i, j) is a word in the generators a_(i + 1), ..., a_n, e = 1 if i in I and e in {-1, 1} if i notin I.
- A power a_i^(m_i), i in I subseteq {1, ..., n}, where m_i>1 is an integer, which is treated as the power relation a_i^(m_i) = Id(F).
- A set of (a) -- (c).
- A sequence of (a) -- (c).
This constructor returns a polycyclic group because the category GrpGPC is stated. If no category were stated, it would return an fp-group.
- If there is no power relation for some generator a_i, i = 1, ..., n (i.e. i notin I), conjugate relations a_j^(a_i^(-1)) = w_(-i, j) must be present for i<j <= n (except for pairs of commuting generators). If there is a power relation for a_i, on the other hand, conjugate relations involving a_i^(-1) are not permitted.
- Conjugate relations for pairs of commuting generators may be omitted. If no conjugate relations are given for a certain pair of generators, the corresponding generators are assumed to commute.
- The words w_((i, j)) must be in normal form.
- The presentation must be consistent. In particular, right hand sides of conjugate relations must not be the empty word.
The parameter Check may be used to indicate whether or not the presentation should be checked for consistency. Disabling this check can be useful for avoiding runtime errors if the constructor is called in user written loops or functions. The boolean valued function IsConsistent is provided to check presentations obtained with disabled consistency check. It should be noted that the results of working with an inconsistent presentation are undefined, hence it is strongly advised to enable the consistency check in the constructor or to use the function IsConsistent.
The natural homomorphism from F -> G is returned as second return value.
Check: BoolElt Default: true
Class: MonStgElt Default:
Construct the polycyclic group G defined by the consistent polycyclic presentation < x_1, ..., x_n | R >.The construct x_1, ..., x_n defines names for the generators of G that are local to the constructor, i.e. they are used when writing down the relations to the right of the bar. However, no assignment of names to these generators is made. If the user wants to refer to the generators by these (or other) names, then the generators assignment construct must be used on the left hand side of an assignment statement.
The construct R denotes a list of polycyclic relations. The syntax and semantics for the relations clause is identical to that appearing in the quo-constructor above.
A map f from the free group on x_1, ..., x_n to G is returned as second return value.
The parameter Check may be used as described for the quo-constructor.
If R is both, a valid power-conjugate presentation for a finite soluble group (cf. Chapter FINITE SOLUBLE GROUPS) and a consistent polycyclic presentation, this constructor by default returns a group in the category GrpPC. To force creation of a group in the category GrpGPC, the parameter Class must be set to "GrpGPC" in these situations.
> F<a,b,c> := FreeGroup(3);
> rels := [ b^a = b*c, b^(a^-1) = b*c^-1 ];
> G<a,b,c> := quo< GrpGPC : F | rels >;
> G;
GrpGPC : G of infinite order on 3 PC-generators
PC-Relations:
b^a = b * c,
b^(a^-1) = b * c^-1
Note, that the relation b^(a^(-1)) = b * c^(-1) has to be included, although
it can be derived from the relations b^a = b * c and (a, b).
> F<a,b> := FreeGroup(2);
> D<u,v>, pi := quo<GrpGPC: F | a^2, b^a = b^-1>;
> D;
GrpGPC : D of infinite order on 2 PC-generators
PC-Relations:
u^2 = Id(D),
v^u = v^-1
> pi;
Mapping from: GrpFP: F to GrpGPC: D
> e := D ! [1,42];
> e;
u * v^42
> gen := LeadingGenerator(e);
> gen;
u
> Parent(gen);
GrpGPC : D of infinite order on 2 PC-generators
PC-Relations:
u^2 = Id(D),
v^u = v^-1
> exp := LeadingExponent(e);
> exp;
1
We obtain an element of depth 2 from e, by replacing e with its quotient by
the appropriate power of the leading generator.
> e /:= gen^exp; > Depth(e); 2 > e; v^-42 > ElementToSequence(e); [ 0, -42 ]
> G1<a,b> := PolycyclicGroup< a,b | a^2, b^5, b^a=b^4 >;
> G1;
GrpPC : G1 of order 10 = 2 * 5
PC-Relations:
a^2 = Id(G1),
b^5 = Id(G1),
b^a = b^4
> G2<a,b> := PolycyclicGroup< a,b | a^2, b^5, b^a=b^4 : Class := "GrpGPC">;
> G2;
GrpGPC : G2 of order 10 = 2 * 5 on 2 PC-generators
PC-Relations:
a^2 = Id(G2),
b^5 = Id(G2),
b^a = b^4
We construct the infinite dihedral group as a group in the category
GrpGPC from a consistent polycyclic presentation. We do not have to
use the parameter Class in this case.
> G3<a,b> := PolycyclicGroup< a,b | a^2, b^a=b^-1>;
> G3;
GrpGPC : G3 of infinite order on 2 PC-generators
PC-Relations:
a^2 = Id(G3),
b^a = b^-1
The presentation < a, b | a^2, b^4, b^a=b^3 > is not a valid
power-conjugate presentation for the dihedral group of order 8, since the
exponent of b is not prime. However, it is a consistent polycyclic
presentation. Consequently, the constructor PolycyclicGroup without
specifying a value for the parameter Class returns a group in the
category GrpGPC.
> G4<a,b> := PolycyclicGroup< a,b | a^2, b^4, b^a=b^3 >;
> G4;
GrpGPC : G4 of order 2^3 on 2 PC-generators
PC-Relations:
a^2 = Id(G3),
b^4 = Id(G3),
b^a = b^3