  
  [1X1. Introduction[0X
  
  The [5XXMod[0X package provides functions for computation with
  
  --    finite  crossed  modules  and  cat1-groups,  and  morphisms  of  these
        structures;
  
  --    finite   pre-crossed   modules,  pre-cat1-groups,  and  their  Peiffer
        quotients;
  
  --    derivations of crossed modules and sections of cat1-groups;
  
  --    the actor crossed square of a crossed module; and
  
  --    crossed squares and their morphisms (experimental version).
  
  It is loaded with the command
  
  [4X---------------------------  Example  ----------------------------[0X
    [4X[0X
    [4Xgap> LoadPackage( "xmod" ); [0X
    [4X[0X
  [4X------------------------------------------------------------------[0X
  
  The  term  crossed  module  was introduced by J. H. C. Whitehead in [Whi48],
  [Whi49]. Loday, in [Lod82], reformulated the notion of a crossed module as a
  cat1-group.  Norrie  [Nor90],  [Nor87]  and  Gilbert  [Gil90]  have  studied
  derivations,  automorphisms  of  crossed  modules and the actor of a crossed
  module,  while  Ellis [Ell84] has investigated higher dimensional analogues.
  Properties of induced crossed modules have been determined by Brown, Higgins
  and Wensley in [BH78], [BW95] and [BW96]. For further references see [AW00],
  where  we  discuss  some  of the data structures and algorithms used in this
  package, and also tabulate isomorphism classes of cat1-groups up to size 30.
  
  [5XXMod[0X  was  originally implemented in 1997 using the [5XGAP[0X 3 language. In April
  2002  the  first and third parts were converted to [5XGAP[0X 4, the pre-structures
  were  added,  and  version 2.001 was released. The final two parts, covering
  derivations,  sections and actors, were included in the January 2004 release
  2.002  for  [5XGAP[0X  4.4.  The current version is 2.010, released on October 8th
  2007.
  
  Many  of  the  function  names  have been changed during the conversion, for
  example  [10XConjugationXMod[0X has become [10XXModByNormalSubgroup[0X. For a list of name
  changes see the file [11Xnames.pdf[0X in the [11Xdoc[0X directory.
  
  Crossed  modules  and  cat1-groups are special types of [13X2-dimensional groups[0X
  [Bro82]  and  are  implemented as [10X2dObjects[0X having a [10XSource[0X and a [10XRange[0X. See
  the file [11Xnotes.pdf[0X in the [11Xdoc[0X directory for an introductory account of these
  algebraic gadgets.
  
  The package divides into four parts, all converted from [5XGAP[0X 3 to the [5XGAP[0X 4.4
  release.
  
  The  first part is concerned with the standard constructions for pre-crossed
  modules   and   crossed  modules;  together  with  direct  products;  normal
  sub-crossed    modules;   and   quotients.   Operations   for   constructing
  pre-cat1-groups  and cat1-groups, and for converting between cat1-groups and
  crossed modules, are also included.
  
  The  second  part  is  concerned with [13Xmorphisms[0X of (pre-)crossed modules and
  (pre-)cat1-groups,  together with standard operations for morphisms, such as
  composition, image and kernel.
  
  The third part deals with the equivalent notions of [13Xderivation[0X for a crossed
  module  and  [13Xsection[0X for a cat1-group, and the monoids which they form under
  the Whitehead multiplication.
  
  The  fourth part deals with actor crossed modules and actor cat1-groups. For
  the  actor  crossed  module rm Act(mathcalX) of a crossed module mathcalX we
  require  representations  for  the Whitehead group of regular derivations of
  mathcalX  and  for  the group of automorphisms of mathcalX. The construction
  also  provides  an  inner  morphism  from mathcalX to rm Act(mathcalX) whose
  kernel is the centre of mathcalX.
  
  From  version 2.007 there are experimental functions for [13Xcrossed squares[0X and
  their morphisms, structures which arise as 3-dimensional groups. Examples of
  these  are  inclusions of normal sub-crossed modules, and the inner morphism
  from a crossed module to its actor.
  
  The  package  may  be obtained as a compressed tar file [11Xxmod.2.008.tar.gz[0X by
  ftp  from  one  of  the  sites  with  a  [5XGAP[0X  4  archive, or from the Bangor
  Mathematics          web          site         whose         URL         is:
  [7Xhttp://www.informatics.bangor.ac.uk/public/mathematics/chda/[0X
  
  The  following  constructions  were not in the [5XGAP[0X 3 version of the package:
  sub-2d-object  functions,  functions for pre-crossed modules and the Peiffer
  subgroup  of  a  pre-crossed module, and the associated crossed modules. The
  source  and range groups in these constructions are no longer required to be
  permutation groups.
  
  Future  plans  include the implementation of [13Xgroup-graphs[0X which will provide
  examples   of   pre-crossed   modules  (their  implementation  will  require
  interaction  with  graph-theoretic  functions  in  [5XGAP[0X  4). Cat2-groups, and
  conversion betwen these and crossed squares, are also planned.
  
  The  equivalent categories [10XXMod[0X (crossed modules) and [10XCat1[0X (cat1-groups) are
  also  equivalent  to [10XGpGpd[0X, the subcategory of group objects in the category
  [10XGpd[0X  of  groupoids.  Finite  groupoids have been implemented in Emma Moore's
  package [5XGpd[0X [Moo01] for groupoids and crossed resolutions.
  
  In  order  that  the  user  has  some  control  of the verbosity of the [5XXMod[0X
  package's functions, an [10XInfoClass[0X [10XInfoXMod[0X is provided (see Chapter [10Xref:Info
  Functions[0X  in  the  [5XGAP[0X  Reference  Manual  for  a  description  of the [10XInfo[0X
  mechanism).  By  default, the [10XInfoLevel[0X of [10XInfoXMod[0X is [10X0[0X; progressively more
  information is supplied by raising the [10XInfoLevel[0X to [10X1[0X, [10X2[0X and [10X3[0X.
  
  [4X---------------------------  Example  ----------------------------[0X
    [4X[0X
    [4Xgap> SetInfoLevel( InfoXMod, 1); #sets the InfoXMod level to 1[0X
    [4X[0X
  [4X------------------------------------------------------------------[0X
  
  Once the package is loaded, it is possible to check the correct installation
  by  running  the  test suite of the package with the following command. (The
  test file itself is [11Xtst/xmod_manual.tst[0X.)
  
  [4X---------------------------  Example  ----------------------------[0X
    [4X[0X
    [4Xgap> ReadPackage( "xmod", "tst/testall.g" );[0X
    [4X+ Testing all example commands in the XMod manual[0X
    [4X+ GAP4stones: 0[0X
    [4Xtrue[0X
    [4X[0X
  [4X------------------------------------------------------------------[0X
  
  Additional  information can be found on the [13XComputational Higher-dimensional
  Discrete             Algebra[0X             web             site             at
  [7Xhttp://www.informatics.bangor.ac.uk/public/mathematics/chda/[0X
  
