  
  [1X10 [33X[0;0YDevelopment history[133X[101X
  
  [33X[0;0YThis  chapter, which contains details of the major changes to the package as
  it  develops,  was  first created in April 2002. Details of the changes from
  [5XXMod[105X  1 to [5XXMod[105X 2.001 are far from complete. Starting with version 2.009 the
  file [11XCHANGES[111X lists the minor changes as well as the more fundamental ones.[133X
  
  [33X[0;0YThe  inspiration  for  this  package  was  the  need,  in the mid-1990's, to
  calculate  induced  crossed  modules  (see  [BW95], [BW96], [BW03]). [5XGAP[105X was
  chosen  over  other  computational group theory systems because the code was
  freely  available,  and  it was possible to modify the Tietze transformation
  code so as to record the images of the original generators of a presentation
  as  words  in  the  simplified  presentation. (These modifications are now a
  standard part of the Tietze transformation package in [5XGAP[105X.)[133X
  
  
  [1X10.1 [33X[0;0YChanges from version to version[133X[101X
  
  
  [1X10.1-1 [33X[0;0YVersion 1 for [5XGAP[105X[101X[1X 3[133X[101X
  
  [33X[0;0YThe  first  version  of  [5XXMod[105X  became  an  accepted package for [5XGAP[105X 3.4.3 in
  December 1996.[133X
  
  
  [1X10.1-2 [33X[0;0YVersion 2[133X[101X
  
  [33X[0;0YConversion  of  [5XXMod[105X 1 from [5XGAP[105X 3.4.3 to the new [5XGAP[105X syntax began soon after
  [5XGAP[105X  4  was  released,  and  had  a  lengthy  gestation.  The new [5XGAP[105X syntax
  encouraged  a re-naming of many of the function names. An early decision was
  to  introduce  generic  categories  [10X2dDomain[110X  for  (pre-)crossed modules and
  (pre-)cat1-groups, and [10X2dMapping[110X for the various types of morphism. In 2.009
  [10X3dDomain[110X  was  used  for  crossed squares and cat2-groups, and [10X3dMapping[110X for
  their  morphisms.  A  generic  name  for  derivations  and  sections is also
  required, and [10XUp2dMapping[110X is currently used.[133X
  
  
  [1X10.1-3 [33X[0;0YVersion 2.001 for [5XGAP[105X[101X[1X 4[133X[101X
  
  [33X[0;0YThis  was  the first version of [5XXMod[105X for [5XGAP[105X 4, completed in April 2002 in a
  rush  to  catch  the  release  of  [5XGAP[105X 4.3. Functions for actors and induced
  crossed modules were not included, nor many of the functions for derivations
  and sections, for example [10XInnerDerivation[110X.[133X
  
  
  [1X10.1-4 [33X[0;0YInduced crossed modules[133X[101X
  
  [33X[0;0YDuring  the  period May 20th - May 27th 2002 converted [11Xinduce.g[111X to [11Xinduce.gd[111X
  and  [11Xinduce.gi[111X  (later  renamed  [11Xgp2ind.gd[111X,  [11Xgp2ind.gi[111X), at least as regards
  induced  crossed  modules.  (Induced cat1-groups may be convereted one day.)
  For details, see the file [11XCHANGES[111X.[133X
  
  
  [1X10.1-5 [33X[0;0YVersions 2.002 -- 2.006[133X[101X
  
  [33X[0;0YVersion 2.002 was prepared for the 4.4 release at the end of January 2004.[133X
  
  [33X[0;0YVersion 2.003 of February 28th 2004 just fixed some file protections.[133X
  
  [33X[0;0YVersion  2.004  of  April  14th  2004  added the [10XCat1Select[110X functionality of
  version 1 to the [10XCat1[110X function (see also version 2.007).[133X
  
  [33X[0;0YVersion  2.005  of April 16th 2004 moved the example files from [11Xtst/test_i.g[111X
  to  [11Xexamples/example_i.g[111X,  and  converted [11Xtestmanual.g[111X to a proper test file
  [11Xtst/xmod_manual.tst[111X.[133X
  
  [33X[0;0YA  significant  change  was  the  conversion  of  the  actor  crossed module
  functions  from  the  [11X3.4.4[111X  version,  including [10XAutomorphismPermGroup[110X for a
  crossed  module,  [10XWhiteheadXMod[110X, [10XNorrieXMod[110X, [10XLueXMod[110X, [10XActorXMod[110X, [10XCentre[110X of a
  crossed module, [10XInnerMorphism[110X and [10XInnerActorXMod[110X.[133X
  
  
  [1X10.1-6 [33X[0;0YVersions 2.007 -- 2.010[133X[101X
  
  [33X[0;0YThese versions contain changes made between September 2004 and October 2007.[133X
  
  [30X    [33X[0;6YAdded  basic  functions  for  crossed squares, considered as [10X3dObjects[110X
        with  crossed  pairings,  and  their morphisms. Groups with two normal
        subgroups,  and  the  actor  of  a  crossed  module,  provide standard
        examples of crossed squares. (Cat2-groups are not yet implemented.)[133X
  
  [30X    [33X[0;6YConverted the documentation to the format of the [5XGAPDoc[105X package.[133X
  
  [30X    [33X[0;6YImproved  [10XAutomorphismPermGroup[110X  for crossed modules, and introduced a
        special method for conjugation crossed modules.[133X
  
  [30X    [33X[0;6YSubstantial   revisons  made  to  [10XXModByCentralExtension[110X,  [10XNorrieXMod[110X,
        [10XLueXMod[110X, [10XActorXMod[110X, and [10XInclusionInducedXModByCopower[110X.[133X
  
  [30X    [33X[0;6YReintroduced the [10XCat1Select[110X operation.[133X
  
  [30X    [33X[0;6YVersion 2.010, of October 2007, was timed to coincide with the release
        of  [5XGAP[105X  4.4.10,  and  included  a  change  of filenames; correct file
        protection  codes;  and  an  improvement  to [10XAutomorphismPermGroup[110X for
        crossed modules.[133X
  
  
  [1X10.2 [33X[0;0YVersions for [5XGAP[105X[101X[1X 4.5, 4.6 and 4.7[133X[101X
  
  [33X[0;0YVersion 2.19, released on 9th June 2012, included the following changes:[133X
  
  [30X    [33X[0;6YThe  file  [10Xmakedocrel.g[110X  was  copied,  with  appropriate changes, from
        [5XGAPDoc[105X, and now provides the correct way to update the documentation.[133X
  
  [30X    [33X[0;6YThe first functions for crossed modules of groupoids were introduced.[133X
  
  [30X    [33X[0;6YThe package webpage has moved along with the whole of the Bangor Maths
        website: [7Xhttp://www.maths.bangor.ac.uk/chda/[107X.[133X
  
  [30X    [33X[0;6YA GNU General Public License declaration has been added.[133X
  
  
  [1X10.2-1 [33X[0;0YAllCat1s[133X[101X
  
  [33X[0;0YVersion  2.21  contained major changes to the [10XCat1Select[110X operation: the list
  [10XCAT1_LIST[110X  of  cat1-structures  in the data file [11Xcat1data.g[111X was changed from
  permutation groups to pc-groups, with the generators of subgroups; images of
  the tail map; and images of the head map being given as [10XExtRepOfObj[110X of words
  in the generators.[133X
  
  [33X[0;0YThe [10XAllCat1s[110X function was reintroduced from the [5XGAP[105X3 version, and renamed as
  the operation [10XAllCat1sBasic[110X.[133X
  
  [33X[0;0YIn  version  2.25 the data in [11Xcat1data.g[111X was extended from groups of size up
  to  [22X48[122X  to groups of size up to [22X70[122X. In particular, the [22X267[122X groups of size 64
  give  rise  to  a total of [22X1275[122X cat1-groups. The authors are indebted to Van
  Luyen  Le  in  Galway  for pointing out a number of errors in the version of
  this list distributed with version 2.24 of this package.[133X
  
  
  [1X10.2-2 [33X[0;0YVersion 2.41[133X[101X
  
  [33X[0;0YThis latest version was released on 5th June 2015, following a change in the
  package  website  location.  A [10XBitbucket[110X repository for the package was also
  created.[133X
  
  
  [1X10.3 [33X[0;0YWhat needs doing next?[133X[101X
  
  [30X    [33X[0;6YSpeed up the calculation of Whitehead groups.[133X
  
  [30X    [33X[0;6YAdd more functions for [10X3dObjects[110X and implement [10Xcat2-groups[110X.[133X
  
  [30X    [33X[0;6YImprove  interaction  with  the  package  [5XGpd[105X  implementing  the group
        groupoid  version  of  a crossed module, and adding more functions for
        crossed modules of groupoids.[133X
  
  [30X    [33X[0;6YAdd interaction with [5XIdRel[105X (and possibly [5XXRes[105X and [5Xnatp[105X) .[133X
  
  [30X    [33X[0;6YNeed   [10XInverseGeneralMapping[110X  for  morphisms  and  more  features  for
        [10XFpXMods[110X, [10XPcXMods[110X, etc.[133X
  
  [30X    [33X[0;6YImplement actions of a crossed module.[133X
  
  [30X    [33X[0;6YImplement [10XFreeXMods[110X and an operation [10XIsomorphism2dDomains[110X.[133X
  
  [30X    [33X[0;6YAllow the construction of a group of morphisms of crossed modules.[133X
  
  [30X    [33X[0;6YComplete  the conversion from Version 1 of the calculation of sections
        using [10XEndoClasses[110X.[133X
  
  [30X    [33X[0;6YMore crossed square constructions:[133X
  
        [30X    [33X[0;12YIf  [22XM,  N[122X  are  ordinary [22XP[122X-modules and [22XA[122X is an arbitrary abelian
              group  on which [22XP[122X acts trivially, then there is a crossed square
              with sides[133X
  
  
                    [33X[1;18Y[24X [33X[0;12Y0 : A \to N,\quad 0 : A \to M,\quad 0 : M \to P,\quad 0 :
                    N \to P.[133X [124X[133X
  
  
        [30X    [33X[0;12YFor a group [22XL[122X, the automorphism crossed module [22XAct L = (ι : L ->
              Aut  L)[122X splits to form the square with [22X(ι_1 : L -> Inn L)[122X on two
              sides,  and [22X(ι_2 : Inn L -> Aut L)[122X on the other two sides, where
              [22Xι_1[122X  maps  [22Xl  ∈  L[122X to the inner automorphism [22Xβ_l : L -> L, l^' ↦
              l^-1l^'l[122X,  and $\iota_2$ is the inclusion of [22XInn L[122X in [22XAut L[122X. The
              actions are standard, and the crossed pairing is[133X
  
  
                    [33X[1;18Y[24X [33X[0;12Y\boxtimes \;:\; {\rm Inn}\ L \times {\rm Inn}\ L \to L,
                    \quad (\beta_l, \beta_{l^{\prime}}) \;\mapsto\; [l,
                    l^{\prime}]~.[133X [124X[133X
  
  
