1. Introduction

The XMod package provides functions for computation with

It is loaded with the command



gap> LoadPackage( "xmod" ); 


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

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 [E01], and further work on group groupoids is planned.

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/




generated by GAPDoc2HTML