# 58 Automorphism Groups of Special Ag Groups

This chapter describes functions which compute and display information about aut``` groups of finite soluble groups. ```

``` The algorithm used for computing the aut``` 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` 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. ```

``` The performance of the aut``` 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``` 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). ```

``` ```

``` ```

### ` Subsections`

``` AutGroupSagGroup Automorphism Group Elements Operations for Automorphism Group Elements AutGroupStructure AutGroupFactors AutGroupSeries AutGroupConverted 58.1 AutGroupSagGroup AutGroupSagGroup(G) AutGroupSagGroup(G, l) Given a sag 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. If the optional argument l is supplied, the aut 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). inputOut.AutGroup skip The size of the outer aut group is easily computed as follows. inputOut.Sizes 58.2 Automorphism Group Elements An element a of an aut group is a group element record with the following additional components: isAut: Is bound to true if a is an aut record. group: Is the special ag group G on which the aut a acts. images: Is the list of images of the generating set of G under a. That is, a.images[i] is the image of G.generators[i] under the aut. skip The following components may also be defined for an aut group element: inner: If this component is bound, then it is either an element g of G indicating that a is the inner aut of G induced by g, or it is false indicating that a is not an inner aut. weight: This component is set for the elements of the generating set of the full aut group of a sag group. It stores the weight of the generator (see AutGroupStructure). skip Along with most of the functions that can be applied to any group elements (e.g. Order and IsTrivial), the following functions are specific to aut group elements: skip IsAut(a) The function 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 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 For aut group elements a and b, the operator * evaluates to the product a b of the auts. skip a / b For aut group elements a and b, the operator / evaluates to the quotient a b^{-1} of the auts. skip a ^ i For an aut group element a and an integer i, the operator ^ evaluates to the i-th power a^i of a. skip a ^ b For aut group elements a and b, the operator ^ evaluates to the conjugate b^{-1} a b of a by b. skip Comm(a, b) The function 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 group element a, the operator * evaluates to the list whose i-th entry is list[i] * a or a * list[i] respectively. skip list ^ a For a list list and an aut group element a, the operator ^ evaluates to the list whose i-th entry is list[i] ^ a. skip Note that the action of aut 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: inputOut.Orbit 58.4 AutGroupStructure AutGroupStructure(A) The generating set of the aut 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. Let A be the aut 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 auts 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}. The function 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. 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 group has its weight stored in the record component weight. 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 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]. It is also worth noting that the generating set for an aut 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. 58.5 AutGroupFactors AutGroupFactors(A) The function 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. inputOut.Factors Of course, the factors of the returned series can be examine further. For example: inputOut.FactorsExamine 58.6 AutGroupSeries AutGroupSeries(A) The function 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). inputOut.Series skip Each of the subgroups in the list has its weight stored in record component weight. inputOut.SeriesWeights 58.7 AutGroupConverted AutGroupConverted (A) Convert the aut 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. inputOut.Converted Previous Up NextIndex GAP 3.4.4April 1997```