Introduction

The &XMod; 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 gap> LoadPackage( "xmod" );

The term crossed module was introduced by J. H. C. Whitehead in , . Loday, in , reformulated the notion of a crossed module as a cat1-group. Norrie , and Gilbert have studied derivations, automorphisms of crossed modules and the actor of a crossed module, while Ellis has investigated higher dimensional analogues. Properties of induced crossed modules have been determined by Brown, Higgins and Wensley in , and . For further references see , 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.

&XMod; was originally implemented in 1997 using the &GAP;~3 language. In April 2002 the first and third parts were converted to &GAP;~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 &GAP;~4.4. The current version is 2.008, released on October 25th 2006.

Many of the function names have been changed during the conversion, for example ConjugationXMod has become XModByNormalSubgroup. For a list of name changes see the file names.pdf in the doc directory.

Crossed modules and cat1-groups are special types of 2-dimensional groups and are implemented as 2dObjects having a Source and a Range. See the file notes.pdf in the doc directory for an introductory account of these algebraic gadgets.

The package divides into four parts, all converted from &GAP;~3 to the &GAP;~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 morphisms 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 derivation for a crossed module and section 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}(\mathcal{X}) of a crossed module \mathcal{X} we require representations for the Whitehead group of regular derivations of \mathcal{X} and for the group of automorphisms of \mathcal{X}. The construction also provides an inner morphism from \mathcal{X} to {\rm Act}(\mathcal{X}) whose kernel is the centre of \mathcal{X}.

In version 2.007 there are also experimental functions for crossed squares 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 xmod.2.008.tar.gz by ftp from one of the sites with a &GAP;~4 archive, or from the Bangor Mathematics web site whose URL is: http://www.informatics.bangor.ac.uk/public/mathematics/chda/

The following constructions were not in the &GAP;~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 group-graphs which will provide examples of pre-crossed modules (their implementation will require interaction with graph-theoretic functions in &GAP;~4). Cat2-groups, and conversion betwen these and crossed squares, are also planned.

The equivalent categories XMod (crossed modules) and Cat1 (cat1-groups) are also equivalent to GpGpd, the subcategory of group objects in the category Gpd of groupoids. Finite groupoids have been implemented in Emma Moore's crossed resolutions package `GraphGpd` , and further work on group groupoids is planned.

InfoXMod
In order that the user has some control of the verbosity of the &XMod; package's functions, an InfoClass InfoXMod is provided (see Chapter ref:Info Functions in the &GAP; Reference Manual for a description of the Info mechanism). By default, the InfoLevel of InfoXMod is 0; progressively more information is supplied by raising the InfoLevel to 1, 2 and 3.

gap> SetInfoLevel( InfoXMod, 1); #sets the InfoXMod level to 1

The following test file (from the xmod directory) runs all the manual commands. gap> ReadTest("tst/xmod_manual.tst"); + Testing constructions of crossed modules and cat1-groups + GAP4stones: 0 true

Additional information can be found on the Computational Higher-dimensional Discrete Algebra web site at http://www.informatics.bangor.ac.uk/public/mathematics/chda/