  
  [1X1 [33X[0;0YPrimitive Permutation Groups[133X[101X
  
  
  [1X1.1 [33X[0;0YPrimitive Permutation Groups[133X[101X
  
  [33X[0;0Y[5XGAP[105X contains a library of primitive permutation groups which includes, up to
  permutation   isomorphism  (i.e.,  up  to  conjugacy  in  the  corresponding
  symmetric  group),  all  primitive  permutation  groups  of  degree  [22X< 4096[122X,
  calculated in [Ron05] and [Qui11], in particular,[133X
  
  [30X    [33X[0;6Ythe  primitive  permutation  groups  up  to  degree 50,  calculated by
        C. Sims,[133X
  
  [30X    [33X[0;6Ythe  primitive  groups  with  insoluble  socles  of  degree  [22X< 1000[122X as
        calculated in [DM88],[133X
  
  [30X    [33X[0;6Ythe  solvable  (hence  affine)  primitive permutation groups of degree
        [22X< 256[122X as calculated by M. Short [Sho92],[133X
  
  [30X    [33X[0;6Ysome insolvable affine primitive permutation groups of degree [22X< 256[122X as
        calculated in [The97].[133X
  
  [30X    [33X[0;6YThe  solvable  primitive  groups  of degree up to [22X999[122X as calculated in
        [EH03].[133X
  
  [30X    [33X[0;6YThe  primitive groups of affine type of degree up to [22X999[122X as calculated
        in [RU03].[133X
  
  [33X[0;0YNot  all groups are named, those which do have names use ATLAS notation. Not
  all names are necessarily unique![133X
  
  [33X[0;0YThe  list  given  in  [Ron05] is believed to be complete, correcting various
  omissions in [DM88], [Sho92] and [The97].[133X
  
  [33X[0;0YIn  detail,  we  guarantee  the  following  properties  for this and further
  versions (but [13Xnot[113X versions which came before [5XGAP[105X 4.2) of the library:[133X
  
  [30X    [33X[0;6YAll  groups  in  the  library  are primitive permutation groups of the
        indicated degree.[133X
  
  [30X    [33X[0;6YThe  positions  of  the  groups  in  the  library  are stable. That is
        [10XPrimitiveGroup([3Xn[103X[10X,[3Xnr[103X[10X)[110X  will  always  give  you a permutation isomorphic
        group.  Note  however  that  we  do  not  guarantee to keep the chosen
        [22XS_n[122X-representative, the generating set or the name for eternity.[133X
  
  [30X    [33X[0;6YDifferent groups in the library are not conjugate in [22XS_n[122X.[133X
  
  [30X    [33X[0;6YIf  a  group  in  the  library  has a primitive subgroup with the same
        socle, this group is in the library as well.[133X
  
  [33X[0;0Y(Note  that  the arrangement of groups is not guaranteed to be in increasing
  size, though it holds for many degrees.)[133X
  
  [33X[0;0YThe  selection  functions  (see [14X'Reference:  Selection  Functions'[114X)  for the
  primitive  groups library are [10XAllPrimitiveGroups[110X and [10XOnePrimitiveGroup[110X. They
  obtain  the following properties from the database without having to compute
  them anew:[133X
  
  [33X[0;0Y[2XNrMovedPoints[102X   ([14XReference:  NrMovedPoints  for  a  list  or  collection  of
  permutations[114X), [2XSize[102X ([14XReference: Size[114X), [2XTransitivity[102X ([14XReference: Transitivity
  for a group and an action domain[114X), [2XONanScottType[102X ([14XReference: ONanScottType[114X),
  [2XIsSimpleGroup[102X   ([14XReference:   IsSimpleGroup[114X),   [2XIsSolvableGroup[102X  ([14XReference:
  IsSolvableGroup[114X),        and       [2XSocleTypePrimitiveGroup[102X       ([14XReference:
  SocleTypePrimitiveGroup[114X).[133X
  
  [33X[0;0Y(Note,  that for groups of degree up to 2499, O'Nan-Scott types 4a, 4b and 5
  cannot occur.)[133X
  
  [1X1.1-1 PrimitiveGroupsAvailable[101X
  
  [33X[1;0Y[29X[2XPrimitiveGroupsAvailable[102X( [3Xdeg[103X ) [32X function[133X
  
  [33X[0;0YTo  offer a clearer interface to the primitive groups library, this function
  checks whether the primitive groups of degree [3Xdeg[103X are available.[133X
  
  [1X1.1-2 PrimitiveGroup[101X
  
  [33X[1;0Y[29X[2XPrimitiveGroup[102X( [3Xdeg[103X, [3Xnr[103X ) [32X function[133X
  
  [33X[0;0Yreturns  the  primitive  permutation group of degree [3Xdeg[103X with number [3Xnr[103X from
  the list.[133X
  
  [33X[0;0YThe  arrangement  of  the groups of degrees not greater than 50 differs from
  the  arrangement  of primitive groups in the list of C. Sims, which was used
  in [5XGAP[105X 3. See [2XSimsNo[102X ([14X1.2-2[114X).[133X
  
  [1X1.1-3 NrPrimitiveGroups[101X
  
  [33X[1;0Y[29X[2XNrPrimitiveGroups[102X( [3Xdeg[103X ) [32X function[133X
  
  [33X[0;0Yreturns  the  number  of  primitive  permutation groups of degree [3Xdeg[103X in the
  library.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XNrPrimitiveGroups(25);[127X[104X
    [4X[28X28[128X[104X
    [4X[25Xgap>[125X [27XPrimitiveGroup(25,19);[127X[104X
    [4X[28X5^2:((Q(8):3)'4)[128X[104X
    [4X[25Xgap>[125X [27XPrimitiveGroup(25,20);[127X[104X
    [4X[28XASL(2, 5)[128X[104X
    [4X[25Xgap>[125X [27XPrimitiveGroup(25,22);[127X[104X
    [4X[28XAGL(2, 5)[128X[104X
    [4X[25Xgap>[125X [27XPrimitiveGroup(25,23);[127X[104X
    [4X[28X(A(5) x A(5)):2[128X[104X
  [4X[32X[104X
  
  [1X1.1-4 AllPrimitiveGroups[101X
  
  [33X[1;0Y[29X[2XAllPrimitiveGroups[102X( [3Xattr1[103X, [3Xval1[103X, [3Xattr2[103X, [3Xval2[103X, [3X...[103X ) [32X function[133X
  
  [33X[0;0YThis  is  a  selection  function which permits to select all groups from the
  Primitive  Group  Library  that  have  a given set of properties. It accepts
  arguments  as  specified  in Section [14X'Reference: Selection Functions'[114X of the
  [5XGAP[105X reference manual.[133X
  
  [1X1.1-5 OnePrimitiveGroup[101X
  
  [33X[1;0Y[29X[2XOnePrimitiveGroup[102X( [3Xattr1[103X, [3Xval1[103X, [3Xattr2[103X, [3Xval2[103X, [3X...[103X ) [32X function[133X
  
  [33X[0;0YThis  is a selection function which permits to select at most one group from
  the  Primitive Group Library that have a given set of properties. It accepts
  arguments  as  specified  in Section [14X'Reference: Selection Functions'[114X of the
  [5XGAP[105X reference manual.[133X
  
  [1X1.1-6 PrimitiveGroupsIterator[101X
  
  [33X[1;0Y[29X[2XPrimitiveGroupsIterator[102X( [3Xattr1[103X, [3Xval1[103X, [3Xattr2[103X, [3Xval2[103X, [3X...[103X ) [32X function[133X
  
  [33X[0;0Yreturns  an  iterator  through [10XAllPrimitiveGroups([3Xattr1[103X[10X,[3Xval1[103X[10X,[3Xattr2[103X[10X,[3Xval2[103X[10X,...)[110X
  without creating all these groups at the same time.[133X
  
  [1X1.1-7 COHORTS_PRIMITIVE_GROUPS[101X
  
  [33X[1;0Y[29X[2XCOHORTS_PRIMITIVE_GROUPS[102X [32X global variable[133X
  
  [33X[0;0YIn  [DM88]  the  primitive  groups  are sorted in [21Xcohorts[121X according to their
  socle. For each degree less than 2500, the variable [2XCOHORTS_PRIMITIVE_GROUPS[102X
  contains a list of the cohorts for the primitive groups of this degree. Each
  cohort  is  represented by a list of length 2, the first entry specifies the
  socle        type       (see       [2XSocleTypePrimitiveGroup[102X       ([14XReference:
  SocleTypePrimitiveGroup[114X)), the second entry listing the index numbers of the
  groups in this degree.[133X
  
  [33X[0;0YFor  example  in  degree  49,  we have four cohorts with socles [22X(ℤ / 7 ℤ)^2[122X,
  [22XL_2(7)^2[122X,  [22XA_7^2[122X  and  [22XA_49[122X  respectively.  the group [10XPrimitiveGroup(49,36)[110X,
  which  is isomorphic to [22X(A_7 × A_7):2^2[122X, lies in the third cohort with socle
  [22X(A_7 × A_7)[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XCOHORTS_PRIMITIVE_GROUPS[49];[127X[104X
    [4X[28X[ [ rec( parameter := 7, series := "Z", width := 2 ), [128X[104X
    [4X[28X      [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, [128X[104X
    [4X[28X          20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 ] ], [128X[104X
    [4X[28X  [ rec( parameter := [ 2, 7 ], series := "L", width := 2 ), [ 34 ] ], [128X[104X
    [4X[28X  [ rec( parameter := 7, series := "A", width := 2 ), [ 35, 36, 37, 38 ] ], [128X[104X
    [4X[28X  [ rec( parameter := 49, series := "A", width := 1 ), [ 39, 40 ] ] ][128X[104X
  [4X[32X[104X
  
  
  [1X1.2 [33X[0;0YIndex numbers of primitive groups[133X[101X
  
  [1X1.2-1 PrimitiveIdentification[101X
  
  [33X[1;0Y[29X[2XPrimitiveIdentification[102X( [3XG[103X ) [32X attribute[133X
  
  [33X[0;0YFor  a  primitive permutation group for which an [22XS_n[122X-conjugate exists in the
  library  of  primitive  permutation groups (see [14X1.1[114X), this attribute returns
  the     index     position.     That     is     [3XG[103X     is     conjugate    to
  [10XPrimitiveGroup(NrMovedPoints([3XG[103X[10X),PrimitiveIdentification([3XG[103X[10X))[110X.[133X
  
  [33X[0;0YMethods only exist if the primitive groups library is installed.[133X
  
  [33X[0;0YNote: As this function uses the primitive groups library, the result is only
  guaranteed  to  the  same  extent  as  this  library.  If  it is incomplete,
  [10XPrimitiveIdentification[110X  might  return  an existing index number for a group
  not in the library.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XPrimitiveIdentification(Group((1,2),(1,2,3)));[127X[104X
    [4X[28X2[128X[104X
  [4X[32X[104X
  
  [1X1.2-2 SimsNo[101X
  
  [33X[1;0Y[29X[2XSimsNo[102X( [3XG[103X ) [32X attribute[133X
  
  [33X[0;0YIf  [3XG[103X  is  a  primitive  group  of  degree  not greater than 50, obtained by
  [2XPrimitiveGroup[102X  ([14X1.1-2[114X)  (respectively one of the selection functions), then
  this  attribute  contains the number of the isomorphic group in the original
  list of C. Sims. (This is the arrangement as it was used in [5XGAP[105X 3.)[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xg:=PrimitiveGroup(25,2);[127X[104X
    [4X[28X5^2:S(3)[128X[104X
    [4X[25Xgap>[125X [27XSimsNo(g);[127X[104X
    [4X[28X3[128X[104X
  [4X[32X[104X
  
  [33X[0;0YAs  mentioned in the previous section, the index numbers of primitive groups
  in  [5XGAP[105X are guaranteed to remain stable. (Thus, missing groups will be added
  to  the  library  at  the  end of each degree.) In particular, it is safe to
  refer to a primitive group of type [3Xdeg[103X, [3Xnr[103X in the [5XGAP[105X library.[133X
  
  [1X1.2-3 PRIMITIVE_INDICES_MAGMA[101X
  
  [33X[1;0Y[29X[2XPRIMITIVE_INDICES_MAGMA[102X [32X global variable[133X
  
  [33X[0;0YThe  system [5XMagma[105X also provides a list of primitive groups (see [RU03]). For
  historical  reasons, its indexing up to degree 999 differs from the one used
  by  [5XGAP[105X.  The  variable  [2XPRIMITIVE_INDICES_MAGMA[102X  can be used to obtain this
  correspondence.    The    magma    index    number    of   the   [5XGAP[105X   group
  [10XPrimitiveGroup([3Xdeg[103X[10X,[3Xnr[103X[10X)[110X        is       stored       in       the       entry
  [10XPRIMITIVE_INDICES_MAGMA[[3Xdeg[103X[10X][[3Xnr[103X[10X][110X, for degree at most 999.[133X
  
  [33X[0;0YVice  versa,  the group of degree [3Xdeg[103X with [5XMagma[105X index number [3Xnr[103X has the [5XGAP[105X
  index[133X
  
  [33X[0;0Y[10XPosition(PRIMITIVE_INDICES_MAGMA[[3Xdeg[103X[10X],[3Xnr[103X[10X)[110X,  in particular it can be obtained
  by the [5XGAP[105X command[133X
  
  [33X[0;0Y[10XPrimitiveGroup([3Xdeg[103X[10X,Position(PRIMITIVE_INDICES_MAGMA[[3Xdeg[103X[10X],[3Xnr[103X[10X));[110X[133X
  
