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.12, released on 24th November 2008.

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}.

From version 2.007 there are 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.11.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 package `Gpd` for groupoids and crossed resolutions.

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

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 tst/xmod_manual.tst.) gap> ReadPackage( "xmod", "tst/testall.g" ); + Testing all example commands in the XMod manual + 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/