Let G be a finite polycyclic group with PAG-system (g_1, ..., g_n) as described in Words in Finite Polycyclic Groups. Let U be a subgroup of G. A generating system (u_1, ..., u_r) of U is called the canonical generating system, CGS for short, of U with respect to (g_1, ..., g_n) if and only if
cl (i) & (u_1, ..., u_r) is a PAG-system for U,
(ii) &
delta( u_i ) > delta( u_j ) for
i > j,
(iii) & lambda( u_i ) = 1 for
i = 1, ..., r,
(iv) & nu_(delta(u_i))(u_j)
= 0 for i neqj.
If a generating system (u_1, ..., u_r) fulfills only conditions (i) and (ii) this system is called an induced generating system, IGS for short, of U. With respect to the PAG-system of G a CGS but not an IGS of U is unique.
If a power-commutator or power-conjugate presentation of G is known,
a finite polycyclic group with collector can be initialized in GAP
using AgGroupFpGroup (see AgGroupFpGroup). AgGroup
(see AgGroup) converts other types of finite solvable groups, for instance
solvable permutation groups, into an ag group. The collector can be changed
by ChangeCollector (see ChangeCollector). The elements of these
group are called ag words.
A canonical generating system of a subgroup U of G is
returned by Cgs (see Cgs) if a generating set of ag words for
U is known. See Generating Systems of Ag Groups for details.
We call G a parent, that is a ag group with collector and U a subgroup, that is a group which is obtained as subgroup of a parent group. An ag group is either a parent group with PAG system or a subgroup of such a parent group.
Although parent groups need only an AG-system, only AgGroupFpGroup
(see AgGroupFpGroup) and RefinedAgSeries (see
RefinedAgSeries) work correctly with a parent group represented by an AG-system
which is not a PAG-system, because subgroups are identified by canonical
generating systems with respect to the PAG-system of the parent group.
Inconsistent power-conjugate or power-commutator presentations are not
allowed (see IsConsistent). Some functions support factor group arguments.
See Factor Groups of Ag Groups and FactorArg for details.
Our standard example in the following sections is the symmetric group of
degree 4, defined by the following sequence of GAP
statements. You should enter them before running any example. For details on
AbstractGenerators see AbstractGenerator.
gap> a := AbstractGenerator( "a" );; # (1,2)
gap> b := AbstractGenerator( "b" );; # (1,2,3)
gap> c := AbstractGenerator( "c" );; # (1,3)(2,4)
gap> d := AbstractGenerator( "d" );; # (1,2)(3,4)
gap> s4 := AgGroupFpGroup( rec(
> generators := [ a, b, c, d ],
> relators := [ a^2, b^3, c^2, d^2, Comm( b, a ) / b,
> Comm( c, a ) / d, Comm( d, a ),
> Comm( c, b ) / ( c*d ), Comm( d, b ) / c,
> Comm( d, c ) ] ) );;
gap> s4.name := "s4";;
gap> a := s4.generators[1];; b := s4.generators[2];;
gap> c := s4.generators[3];; d := s4.generators[4];;
~~~