  
  [1X9 Development history[0X
  
  This  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[0m  1 to [5XXMod[0m 2.001 are far from complete. Starting with version 2.009 the
  file [11XCHANGES[0m lists the minor changes as well as the more fundamental ones.
  
  The  inspiration  for  this  package  was  the  need,  in the mid-1990's, to
  calculate  induced  crossed  modules  (see  [BW95], [BW96], [BW03]). [5XGAP[0m 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[0m.)
  
  
  [1X9.1 Changes from version to version[0X
  
  
  [1X9.1-1 Version 1 for [5XGAP[1X 3[0X
  
  The  first  version  of  [5XXMod[0m  became  an  accepted package for [5XGAP[0m 3.4.3 in
  December 1996.
  
  
  [1X9.1-2 Version 2[0X
  
  Conversion  of  [5XXMod[0m 1 from [5XGAP[0m 3.4.3 to the new [5XGAP[0m syntax began soon after
  [5XGAP[0m  4  was  released,  and  had  a  lengthy  gestation.  The new [5XGAP[0m syntax
  encouraged  a re-naming of many of the function names. An early decision was
  to   introduce   generic   names  [10X2dObject[0m  for  (pre-)crossed  modules  and
  (pre-)cat1-groups, and [10X2dMapping[0m for the various types of morphism. In 2.009
  [10X3dObject[0m  is  used  for  crossed  squares and cat2-groups, and [10X3dMapping[0m for
  their  morphisms.  A  generic  name  for  derivations  and  sections is also
  required, and [10XUp2dMapping[0m is currently used.
  
  
  [1X9.1-3 Version 2.001 for [5XGAP[1X 4[0X
  
  This  was  the first version of [5XXMod[0m for [5XGAP[0m 4, completed in April 2002 in a
  rush  to  catch  the  release  of  [5XGAP[0m 4.3. Functions for actors and induced
  crossed modules were not included, nor many of the functions for derivations
  and sections, for example [10XInnerDerivation[0m.
  
  
  [1X9.1-4 Induced crossed modules[0X
  
  During  the  period May 20th - May 27th 2002 converted [11Xinduce.g[0m to [11Xinduce.gd[0m
  and  [11Xinduce.gi[0m  (later  renamed [11Xinduce2.gd[0m, [11Xinduce2.gi[0m), at least as regards
  induced  crossed  modules.  (Induced cat1-groups may be convereted one day.)
  For details, see the file [11XCHANGES[0m.
  
  
  [1X9.1-5 Versions 2.002 -- 2.006[0X
  
  Version 2.002 was prepared for the 4.4 release at the end of January 2004.
  
  Version 2.003 of February 28th 2004 just fixed some file protections.
  
  Version  2.004  of  April  14th  2004  added the [10XCat1Select[0m functionality of
  version 1 to the [10XCat1[0m function (see also version 2.007).
  
  Version  2.005  of April 16th 2004 moved the example files from [11Xtst/test_i.g[0m
  to  [11Xexamples/example_i.g[0m,  and  converted [11Xtestmanual.g[0m to a proper test file
  [11Xtst/xmod_manual.tst[0m.
  
  A  significant  change  was  the  conversion  of  the  actor  crossed module
  functions  from  the  [11X3.4.4[0m  version,  including [10XAutomorphismPermGroup[0m for a
  crossed  module,  [10XWhiteheadXMod[0m, [10XNorrieXMod[0m, [10XLueXMod[0m, [10XActorXMod[0m, [10XCentre[0m of a
  crossed module, [10XInnerMorphism[0m and [10XInnerActorXMod[0m.
  
  
  [1X9.1-6 Versions 2.007 -- 2.010[0X
  
  These versions contain changes made between September 2004 and October 2007.
  
  --    Added  basic  functions  for  crossed squares, considered as [10X3dObjects[0m
        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.)
  
  --    Converted the documentation to the format of the [5XGAPDoc[0m package.
  
  --    Improved  [10XAutomorphismPermGroup[0m  for crossed modules, and introduced a
        special method for conjugation crossed modules.
  
  --    Substantial   revisons  made  to  [10XXModByCentralExtension[0m,  [10XNorrieXMod[0m,
        [10XLueXMod[0m, [10XActorXMod[0m, and [10XInclusionInducedXModByCopower[0m.
  
  --    Reintroduced the [10XCat1Select[0m operation.
  
  --    Version 2.010, of October 2007, was timed to coincide with the release
        of  [5XGAP[0m  4.4.10,  and  included  a  change  of filenames; correct file
        protection  codes;  and  an  improvement  to [10XAutomorphismPermGroup[0m for
        crossed modules.
  
  
  [1X9.1-7 Version 2.12[0X
  
  This latest version was released in November 2008.
  
  --    The  file  [10XCHANGES[0m  was  introduced, so that minor corrections need no
        longer be listed in this chapter.
  
  --    The  file  [10Xmakedocrel.g[0m  was  copied,  with  appropriate changes, from
        [5XGAPDoc[0m, and now provides the correct way to update the documentation.
  
  --    The first functions for crossed modules of groupoids were introduced.
  
  --    The package webpage has moved along with the whole of the Bangor Maths
        website: [7Xhttp://www.maths.bangor.ac.uk/[0m.
  
  --    A GNU General Public License declaration has been added.
  
  
  [1X9.2 What needs doing next?[0X
  
  --    Speed up the calculation of Whitehead groups.
  
  --    Add more functions for [10X3dObjects[0m and implement [10Xcat2-groups[0m.
  
  --    Add  interaction  with package [5XGpd[0m implementing group groupoid version
        of a crossed module and crossed modules over groupoids.
  
  --    Add interaction with [5XIdRel[0m, [5XXRes[0m, and [5Xnatp[0m.
  
  --    Need [10XInverseGeneralMapping[0m for morphisms.
  
  --    Need more features for [10XFpXMods[0m, [10XPcXMods[0m, etc.
  
  --    Implement actions of a crossed module.
  
  --    Implement [10XFreeXMods[0m.
  
  --    Implement an operation [10XIsomorphism2dObjects[0m.
  
  --    Allow the construction of a group of morphisms of crossed modules.
  
  --    Complete  the conversion from Version 1 of the calculation of sections
        using [10XEndoClasses[0m.
  
