
Bangor University  School of Computer Science
Computational Higherdimensional Discrete Algebra



CHDA : Introduction to the Bangor GAP Packages
General Introduction
Computational discrete algebra is concerned with algorithms for
computing with groups, semigroups, categories, algebras,
and related structures,
as well as automorphism objects of combinatorial structures.
The two generalpurpose CDA packages are GAP and MAGMA.
Work at Bangor is aimed at developing GAP packages
implementing many of the new, higherdimensional, algebra structures
which are described in the Algebra and Algebraic Topology pages.
The XMod Package
This package was developed as part of Murat Alp's Ph.D. thesis,
and accepted as a GAP3 package in 1996.
A complete conversion for GAP 4.4 was finished in January 2004.
The following structures are implemented:

crossed modules and their morphisms;
standard constructions: conjugation xmod, automorphism xmod, etc;

normal subcrossed modules, quotient modules, centres, commutators, etc;

derivations of crossed modules; regular derivations;
Whitehead group and monoid; actor crossed module;

cat1groups and their morphisms; conversion to and from a crossed module;

section of a cat1group; conversion to and from a derivation;

kernel, image, composition of morphisms;

precrossed modules, precat1groups and their Peiffer subgroups,

isoclinism classes of groups, and of crossed modules;

the actor crossed module of a crossed module;

induced crossed modules;

crossed squares and their morphisms.
The Groupoids Package
This package formed part of Emma Moore's Ph.D. thesis in December 2000.
It was originally called GraphGpd,
but was not made generally available.
Version 1.003 for GAP 4.4 was completed in January 2004.
After extensive revision, concentrating more on the functions for groupoids
rather than those for graphs of groups,
version 1.01 of Gpd was made available on 01/06/06.
Gpd became an accepted GAP package in May 2015.
In September 2017 the package was renamed groupoids.
The following structures are implemented:

finite magmas with objects, and their homomorphisms;

finite groupoids (categories with every element invertible)
and their morphisms;

automorphism group of a groupoid;

graphs of groups, and reduction of words to normal form;

graph of groups rewriting systems for free products with amalgamation
and for HNN extensions;

graphs of groupoids, and reduction of words to normal form.
The Kan Package
This GAP3 package was developed as part of Anne Heyworth's Ph.D. thesis.
The GAP4 version, Kan 0.94, was made available on 02/06/06.
Kan became an accepted GAP package in May 2015.
The functions available at present are those for
double coset rewriting systems for finitely presented groups.
Functions from the Automata package are used to compute
word acceptors and their languages for these rewrite systems.
KBMAG functions are also used when no finite complete rewriting
system is available for the group.
The following structures are implemented:

Double coset rewrite systems for finitely presented groups.

Word acceptors for these rewrite systems.
This package has been made available in support of the Bangor preprint
05.07,
now published as J. Symbolic Comp. 41 (2006) 573590.
For further information see Anne's
KAN page.
The IdRel Package
This GAP3 package was developed as part of Anne Heyworth's Ph.D. thesis.
The GAP4 version IdRel 2.02 was made available on 2nd June 2006.
IdRel became an accepted GAP package in June 2015.
The following structures are implemented:

Logged rewrite systems for finitely presented groups:
KnuthBendix completion and normal forms.

Monoid polynomials: computing with elements of
a free noncommutative algebra.

Module polynomials which are lists of pairs [gen,monpoly],
where gen is a generator and monpoly is a monoid polynomial.

Generating sets (partially reduced) for the identities among the
relations of a group presentation.
Package releases on GitHub
From November 2016 new releases of these packages can be found on GitHub.
The latst versions of the packages released in this way are as follows:
 groupoids, 1.53, 04/10/17,
at
https://gappackages.github.io/groupoids/
 IdRel, 2.34, 20/10/16,
at
https://gappackages.github.io/idrel/
 Kan, 1.27, 20/10/16,
at
https://gappackages.github.io/kan/
 XMod, 2.63, 26/09/17,
at
https://gappackages.github.io/xmod/
Package repositories on GitHub
All four packages have repositories on GitHub.
Users are encouraged to raise issues in the following places: