  
  [1X3 [33X[0;0YThe underlying function[133X[101X
  
  
  [1X3.1 [33X[0;0YThe underlying function[133X[101X
  
  [33X[0;0YUnderlying  the  method  installation  for [10XAutomorphismGroup[110X is the function
  [10XAutomorphismGroupPGroup[110X. This function is intended for expert users who wish
  to  influence  the  steps of the algorithm. Note also that [10XAutomorphismGroup[110X
  will always choose default values.[133X
  
  [1X3.1-1 AutomorphismGroupPGroup[101X
  
  [33X[1;0Y[29X[2XAutomorphismGroupPGroup[102X( [3XG[103X[, [3Xflag[103X] ) [32X function[133X
  
  [33X[0;0YThe  input  is  a  finite [22Xp[122X-group as above and an optional [3Xflag[103X which can be
  true  or  false.  Here the filters for [3XG[103X need not be set, but they should be
  true  for [3XG[103X. The possible values for [3Xflag[103X are considered later in Chapter [14X4[114X.
  If  [3Xflag[103X  is  not  supplied,  the algorithm proceeds similarly to the method
  installed  for  [10XAutomorphismGroup[110X,  but  it  produces slightly more detailed
  output.  The output of the function is a record which contains the following
  fields:[133X
  
  [8X [10XglAutos[110X[8X [108X
        [33X[0;6Ya  set  of  automorphisms  which  together  with  [10XagAutos[110X generate the
        automorphism group;[133X
  
  [8X [10XglOrder[110X[8X [108X
        [33X[0;6Yan  integer  whose  product  with  the  [10XagOrders[110X gives the size of the
        automorphism group;[133X
  
  [8X [10XagAutos[110X[8X [108X
        [33X[0;6Ya  polycyclic generating sequence for a soluble normal subgroup of the
        automorphism group;[133X
  
  [8X [10XagOrder[110X[8X [108X
        [33X[0;6Ythe relative orders corresponding to [10XagAutos[110X;[133X
  
  [8X [10Xone[110X[8X [108X
        [33X[0;6Ythe identity element of the automorphism group;[133X
  
  [8X [10Xgroup[110X[8X [108X
        [33X[0;6Ythe underlying group [3XG[103X;[133X
  
  [8X [10Xsize[110X[8X [108X
        [33X[0;6Ythe size of the automorphism group.[133X
  
  [33X[0;0YWe  do not return an automorphism group in the standard form because we wish
  to  distinguish between [10XagAutos[110X and [10XglAutos[110X; the latter act non-trivially on
  the   Frattini   quotient   of  [3XG[103X.  This  hybrid-group  description  of  the
  automorphism   group  permits  more  efficient  computations  with  it.  The
  following  function  converts  the  output of [10XAutomorphismGroupPGroup[110X to the
  output of [10XAutomorphismGroup[110X.[133X
  
  [1X3.1-2 ConvertHybridAutGroup[101X
  
  [33X[1;0Y[29X[2XConvertHybridAutGroup[102X( [3XA[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10YA record.[133X
  
  [33X[0;0YLet   [3XA[103X   be   the  automorphism  group  of  a  [22Xp[122X-group  [22XG[122X  as  computed  by
  [10XAutomorphismGroupPGroup[110X.  Then  [2XConvertHybridAutGroup[102X can compute a pc group
  isomorphic  to  the  solvable  part  of  [3XA[103X  stored  in  the record component
  [10X[3XA[103X[10X.agGroup[110X.  This  solvable  part  forms a subgroup of the automorphism group
  which  contains  at least the automorphisms centralizing the Frattini factor
  of [22XG[122X. The pc group facilitates various further computations with [3XA[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XLoadPackage("autpgrp", false);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XH := PcGroupCode(297368117289422176, 729);  # SmallGroup (729, 34);[127X[104X
    [4X[28X<pc group of size 729 with 6 generators>[128X[104X
    [4X[25Xgap>[125X [27XA := AutomorphismGroupPGroup(H);[127X[104X
    [4X[28X#I  step 1: 3^2 -- init automorphisms[128X[104X
    [4X[28X#I  step 2: 3^1 -- aut grp has size 8[128X[104X
    [4X[28X#I  step 3: 3^2 -- aut grp has size 72[128X[104X
    [4X[28X#I  step 4: 3^1 -- aut grp has size 5832[128X[104X
    [4X[28X#I  final step: convert[128X[104X
    [4X[28Xrec([128X[104X
    [4X[28X  agAutos :=[128X[104X
    [4X[28X    [ Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f2, f1, f3^2, f5^2, f4^2, f6^2 ],[128X[104X
    [4X[28X      Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f1, f2^2, f3^2*f5, f4^2*f6, f5,[128X[104X
    [4X[28X          f6 ], Pcgs([ f1, f2, f3, f4, f5, f6 ]) ->[128X[104X
    [4X[28X        [ f1^2, f2^2, f3*f4^2*f5^2*f6, f4^2*f6, f5^2*f6, f6 ],[128X[104X
    [4X[28X      Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f1*f3, f2, f3*f5^2, f4*f6^2, f5,[128X[104X
    [4X[28X          f6 ], Pcgs([ f1, f2, f3, f4, f5, f6 ]) ->[128X[104X
    [4X[28X        [ f1, f2*f3, f3*f4, f4, f5*f6, f6 ],[128X[104X
    [4X[28X      Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f1*f4, f2, f3*f6^2, f4, f5, f6 ],[128X[104X
    [4X[28X      Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f1, f2*f4, f3, f4, f5, f6 ],[128X[104X
    [4X[28X      Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f1*f5, f2, f3, f4, f5, f6 ],[128X[104X
    [4X[28X      Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f1, f2*f5, f3*f6, f4, f5, f6 ],[128X[104X
    [4X[28X      Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f1*f6, f2, f3, f4, f5, f6 ],[128X[104X
    [4X[28X      Pcgs([ f1, f2, f3, f4, f5, f6 ]) -> [ f1, f2*f6, f3, f4, f5, f6 ] ],[128X[104X
    [4X[28X  agOrder := [ 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3 ], glAutos := [  ],[128X[104X
    [4X[28X  glOper := [  ], glOrder := 1, group := <pc group of size 729 with[128X[104X
    [4X[28X    6 generators>, one := IdentityMapping( <pc group of size 729 with[128X[104X
    [4X[28X    6 generators> ), size := 52488 )[128X[104X
    [4X[25Xgap>[125X [27XConvertHybridAutGroup( A );[127X[104X
    [4X[28X<group of size 52488 with 11 generators>[128X[104X
  [4X[32X[104X
  
  [1X3.1-3 PcGroupAutPGroup[101X
  
  [33X[1;0Y[29X[2XPcGroupAutPGroup[102X( [3XA[103X ) [32X function[133X
  
  [33X[0;0YThis  function  computes  a  pc  presentation  for  the solvable part of the
  automorphism  group  [3XA[103X defined by [10X[3XA[103X[10X.agGroup[110X. [3XA[103X is the output of the function
  [10XAutomorphismGroupPGroup[110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XH := PcGroupCode(297368117289422176, 729);;  # SmallGroup (729, 34);[127X[104X
    [4X[25Xgap>[125X [27XA := AutomorphismGroupPGroup(H);;[127X[104X
    [4X[28X#I  step 1: 3^2 -- init automorphisms[128X[104X
    [4X[28X#I  step 2: 3^1 -- aut grp has size 8[128X[104X
    [4X[28X#I  step 3: 3^2 -- aut grp has size 72[128X[104X
    [4X[28X#I  step 4: 3^1 -- aut grp has size 5832[128X[104X
    [4X[28X#I  final step: convert[128X[104X
    [4X[25Xgap>[125X [27XB := PcGroupAutPGroup( A );[127X[104X
    [4X[28X<pc group of size 52488 with 11 generators>[128X[104X
    [4X[25Xgap>[125X [27XI := InnerAutGroupPGroup( B );[127X[104X
    [4X[28XGroup([ f5, f4^2*f8, f6^2*f9^2, f11^2, f10^2, <identity> of ... ])[128X[104X
  [4X[32X[104X
  
