Goto Chapter: Top 1 2 3 4 5 Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

3 The underlying function
 3.1 The underlying function

3 The underlying function

3.1 The underlying function

Underlying the method installation for AutomorphismGroup is the function AutomorphismGroupPGroup. This function is intended for expert users who wish to influence the steps of the algorithm. Note also that AutomorphismGroup will always choose default values.

3.1-1 AutomorphismGroupPGroup
‣ AutomorphismGroupPGroup( G[, flag] )( function )

The input is a finite p-group as above and an optional flag which can be true or false. Here the filters for G need not be set, but they should be true for G. The possible values for flag are considered later in Chapter 4. If flag is not supplied, the algorithm proceeds similarly to the method installed for AutomorphismGroup, but it produces slightly more detailed output. The output of the function is a record which contains the following fields:

glAutos

a set of automorphisms which together with agAutos generate the automorphism group;

glOrder

an integer whose product with the agOrders gives the size of the automorphism group;

agAutos

a polycyclic generating sequence for a soluble normal subgroup of the automorphism group;

agOrder

the relative orders corresponding to agAutos;

one

the identity element of the automorphism group;

group

the underlying group G;

size

the size of the automorphism group.

We do not return an automorphism group in the standard form because we wish to distinguish between agAutos and glAutos; the latter act non-trivially on the Frattini quotient of G. This hybrid-group description of the automorphism group permits more efficient computations with it. The following function converts the output of AutomorphismGroupPGroup to the output of AutomorphismGroup.

3.1-2 ConvertHybridAutGroup
‣ ConvertHybridAutGroup( A )( function )

Returns: A record.

Let A be the automorphism group of a p-group G as computed by AutomorphismGroupPGroup. Then ConvertHybridAutGroup can compute a pc group isomorphic to the solvable part of A stored in the record component A.agGroup. This solvable part forms a subgroup of the automorphism group which contains at least the automorphisms centralizing the Frattini factor of G. The pc group facilitates various further computations with A.

gap> LoadPackage("autpgrp", false);
true
gap> H := PcGroupCode(297368117289422176, 729);  # SmallGroup (729, 34);
<pc group of size 729 with 6 generators>
gap> A := AutomorphismGroupPGroup(H);
#I  step 1: 3^2 -- init automorphisms
#I  step 2: 3^1 -- aut grp has size 8
#I  step 3: 3^2 -- aut grp has size 72
#I  step 4: 3^1 -- aut grp has size 5832
#I  final step: convert
rec(
  agAutos :=
    [ Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f2, f1, f3^2, f5^2, f4^2, f6^2 ],
      Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f1, f2^2, f3^2*f5, f4^2*f6, f5,
          f6 ], Pcgs([ f1, f2, f3, f4, f5, f6 ]) ->
        [ f1^2, f2^2, f3*f4^2*f5^2*f6, f4^2*f6, f5^2*f6, f6 ],
      Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f1*f3, f2, f3*f5^2, f4*f6^2, f5,
          f6 ], Pcgs([ f1, f2, f3, f4, f5, f6 ]) ->
        [ f1, f2*f3, f3*f4, f4, f5*f6, f6 ],
      Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f1*f4, f2, f3*f6^2, f4, f5, f6 ],
      Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f1, f2*f4, f3, f4, f5, f6 ],
      Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f1*f5, f2, f3, f4, f5, f6 ],
      Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f1, f2*f5, f3*f6, f4, f5, f6 ],
      Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f1*f6, f2, f3, f4, f5, f6 ],
      Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f1, f2*f6, f3, f4, f5, f6 ] ],
  agOrder := [ 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3 ], glAutos := [  ],
  glOper := [  ], glOrder := 1, group := <pc group of size 729 with
    6 generators>, one := IdentityMapping( <pc group of size 729 with
    6 generators> ), size := 52488 )
gap> ConvertHybridAutGroup( A );
<group of size 52488 with 11 generators>

3.1-3 PcGroupAutPGroup
‣ PcGroupAutPGroup( A )( function )

This function computes a pc presentation for the solvable part of the automorphism group A defined by A.agGroup. A is the output of the function AutomorphismGroupPGroup.

gap> H := PcGroupCode(297368117289422176, 729);;  # SmallGroup (729, 34);
gap> A := AutomorphismGroupPGroup(H);;
#I  step 1: 3^2 -- init automorphisms
#I  step 2: 3^1 -- aut grp has size 8
#I  step 3: 3^2 -- aut grp has size 72
#I  step 4: 3^1 -- aut grp has size 5832
#I  final step: convert
gap> B := PcGroupAutPGroup( A );
<pc group of size 52488 with 11 generators>
gap> I := InnerAutGroupPGroup( B );
Group([ f5, f4^2*f8, f6^2*f9^2, f11^2, f10^2, <identity> of ... ])
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 Ind

generated by GAPDoc2HTML