This chapter describes functions which compute and display information
about aut
The algorithm used for computing the aut groups of finite soluble groups.
group requires that the soluble
group be given in terms of a special ag presentation. Such presentations
are described in the chapter of the GAP manual which deals with Special
Ag Groups
. Given a group presented by an arbitrary ag presentation, a
special ag presentation can be computed using the function
SpecialAgGroup
.
The aut
The performance of the aut group is returned as a standard GAP group record. Aut
s are
represented by their action on the sag group generating set of the input
group. The order of the aut group is also computed.
group algorithm is highly dependent on the
structure of the input group. Given two groups with the same sequence of
LG-series factor groups it will usually take much less time to compute the
aut group of the one with the larger aut
group. For example, it takes
less than 1 second (Sparc 10/52) to compute the aut group of the exponent
7 extraspecial group of order 7^3. It takes more than 40 seconds to
compute the aut
group of the exponent 49 extraspecial group of order
7^3. The orders of the aut groups are 98784 and 2058 respectively.
It takes only 20 minutes (Sparc 10/52) to compute the aut
group of the
2-generator Burnside group of exponent 6, a group of order 2^{28}cdot
3^{25} whose aut group has order 2^{40}cdot 3^{53}cdot 5cdot 7;
note, however, that it can take substantially longer than this to compute
the aut
groups of some of the groups of order 64 (for nilpotent groups
one should use the function AutomorphismsPGroup
from the ANU PQ package
instead).
The following section describes the function that computes the aut
Given a sag
If the optional argument l is supplied, the aut
inputOut.AutGroup
skip
The size of the outer aut
inputOut.Sizes
An element a of an aut
group
of a sag
(see AutGroupSagGroup). It is followed by a description of
Automorphism Group Elements and Operations for Automorphism Group Elements). Functions for
obtaining some structural information about the aut group are described
next (see AutGroupStructure, AutGroupFactors and AutGroupSeries).
Finally, a function that converts the aut group into a form which may be
more suitable for some applications is described (see AutGroupConverted).
images Subsections
58.1 AutGroupSagGroup
AutGroupSagGroup(G)
AutGroupSagGroup(G, l)
G, the function
AutGroupSagGroup computes the aut
group
of G. It returns a group generated by aut group elements (see
Automorphism Group Elements). The order of the resulting aut
group can
be obtained by applying the function Size
to it.
group of G/G_l is
computed, where G_l is the l-th term of the LG-series of G (see
More
about Special Ag Groups).
group is easily computed as follows.
58.2 Automorphism Group Elements
group is a group element record with the
following additional components:
isAut:
true
Is bound to if a is an aut
record.
group
:
Is the special ag group G on which the aut a acts.
:
a.images[i]
Is the list of images of the generating set of G under a.
That is, is the image of
G.generators[i] under the aut
.
skip
The following components may also be defined for an aut
group element:
inner:
of G induced by g, or it is
If this component is bound, then it is either an element g of
G indicating that a is the inner autfalse
indicating that a is not an inner aut.
weight:
group of a sag group. It stores the weight of the
generator (see AutGroupStructure).
This component is set for the elements of the generating set
of the full aut
skip
Along with most of the functions that can be applied to any group elements
(e.g.
skip
The function Order
and IsTrivial
), the following functions are specific to
aut group elements:
IsAut(a)
IsAut returns
true if a is an aut
record, and
false
otherwise.
skip
IsInnerAut(a)
Returns true
if a is an inner aut, and
false otherwise. If
a.inner is already bound, then the information stored there is used. If
a.inner is not bound,
IsInnerAut determines whether a is an inner
aut
, and sets a.inner
appropriately before returning the answer.
58.3 Operations for Automorphism Group Elements
a = b
For aut
For aut
skip
For aut
skip
For an aut group elements a and b, the operator
= evaluates to
true
if the aut
records correspond to the same aut, and
false otherwise.
Note that this may return
true even when the two records themselves are
different (one of them may have more information stored in it).
a * b
group elements a and b, the operator *
evaluates to the
product a b of the auts.
a / b
group elements a and b, the operator /
evaluates to the
quotient a b^{-1} of the auts.
a ^ i
group element a and an integer i, the operator ^
evaluates to the i-th power a^i of a.
skip
a ^ b
For aut
skip
The function group elements a and b, the operator
^ evaluates to the
conjugate b^{-1} a b of a by b.
Comm(a, b)
Comm returns the commutator a^{-1} b^{-1} a b
of the two aut
group elements a and b.
skip
g ^ a
For a sag group element g and an aut group element a, the operator
^ evaluates to the image g^a of the ag word g under the aut
a.
The sag group element g must be an element of a.group
.
skip
S ^ a
For a subgroup S of a sag group and an aut group element a, the
operator
^ evaluates to the image S^a of the subgroup S under the
aut
a. The subgroup S must be a subgroup of a.group
.
skip
list * a
a * list
For a list list and an aut
skip
For a list list and an aut group element a, the operator
*
evaluates to the list whose i-th entry is
list[i] * a or
a
* list[i] respectively.
list ^ a
group element a, the operator ^
evaluates to the list whose i-th entry is list[i] ^ a
.
skip
Note that the action of aut
inputOut.Orbit
The generating set of the aut
Let A be the aut
The function
The factor of weight i is A_i/A_{i+1}. A factor of even weight is an
elementary abelian group, and it is described by giving its order. A factor
of odd weight is described by giving a generating set for a faithful
representation of it as a matrix group acting on a layer of the LG-series
of G (the weight 2i-1 factor acts on the LG-series layer
G_i/G_{i+1}).
inputOut.Structure
skip
As mentioned earlier, each generator of the aut
inputOut.Weights
skip
Note that the subgroup A_i of A is generated by the elements of the
generating set of A whose weights are at least i. Hence, in analogy to
strong generating sets of permutation groups, the generating set of A is
a strong generating set relative to the chain of subgroups A_i.
skip
The generating set of a matrix group displayed by
It is also worth noting that the generating set for an aut
The function
inputOut.Factors
Of course, the factors of the returned series can be examine further. For
inputOut.FactorsExamine
The function
inputOut.Series
skip
Each of the subgroups in the list has its weight stored in record component
inputOut.SeriesWeights
Convert the aut
inputOut.Converted
group elements on the elements of the sag
group via the operator
^ corresponds to the default action
OnPoints
(see
Other Operations) so that the functions
Orbit and
Stabilizer can
be used in the natural way. For example:
AutGroupStructure(A)
group returned by
AutGroupSagGroup is
closely related to a particular subnormal series of the aut
group. This
function displays a description of the factors of this series.
group of G. Let G=G_1 > G_2 > ldots > G_m >
G_{m+1}=1 be the LG-series of G (see
More about Special Ag Groups).
For 0 leq i leq m let A_{2i+1} be the subgroup of A containing all
those aut
s which induce the identity on G/G_{i+1}. Clearly A_1 = A
and A_{2m+1} = 1. Furthermore, let A_{2i+2} be the subgroup of
A_{2i+1} containing those auts which also act trivially on the quotient
G_i / G_{i+1}. Note that A_2/A_3 is always trivial. Thus the subnormal
series
A = A_1 geq A_2 geq ldots geq A_2m+1 = 1
of A is obtained. The subgroup A_i is the weight i subgroup of A.
The weight of a generator alpha of A is defined to be the least i
such that alpha in A_{i}.
AutGroupStructure takes as input an aut
group A computed
using AutGroupSagGroup
and prints out a description of the non-trivial
factors of the subnormal series of the aut group A.
group has its weight
stored in the record component weight
.
AutGroupStructure
corresponds directly to the list of elements of the corresponding weight in
A.generators
. In the example above, the first matrix listed at weight 5
corresponds to A.generators[3]
, and the last matrix listed at weight 5
corresponds to A.generators[9]
.
group returned
by
AutGroupSagGroup can be heavily redundant. In the example given above,
the weight 5 matrix group can be generated by just three of the seven
elements listed (for example elements 1, 5 and 6). The other four elements
can be discarded from the generating set for the matrix group, and the
corresponding elements of the generating set for A can also be discarded.
AutGroupFactors(A)
AutGroupFactors
takes as input an aut group A computed
by
AutGroupSagGroup and returns a list containing descriptions of the
non-trivial factors A_i/A_{i+1} (see AutGroupStructure). Each element
of this list is either a list [p, e] which indicates that the factor is
elementary abelian of order p^e, or a matrix group which is isomorphic to
the corresponding factor.
AutGroupSeries(A)
AutGroupSeries
takes as input an aut group A computed by
AutGroupSagGroup and returns a list containing those subgroups A_i of
A which give non-trivial quotients A_i / A_{i+1} (see
AutGroupStructure).
weight.
AutGroupConverted (A)
group returned by
AutGroupSagGroup into a group
generated by
GroupHomomorphismByImages records, and return the resulting
group. Note that this function should not be used unless absolutely
necessary, since operations for elements of the resulting group are
substantially slower than operations with aut
records.
April 1997