The term crossed module was introduced by J. H. C. Whitehead in xmodW2, xmodW1. In xmodL1 Loday reformulated the notion of a crossed module as a cat1-group. Norrie xmodN1, xmodN2 and Gilbert xmodG1 have studied derivations, automorphisms of crossed modules and the actor of a crossed module, while Ellis xmodE1 has investigated higher dimensional analogues. Properties of induced crossed modules have been determined by Brown, Higgins and Wensley in xmodBH1, xmodBW1 and xmodBW2. For further references see xmodAW1 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.
We first recall the descriptions of three equivalent categories: ~ textbfXMod, the category of crossed modules and their morphisms; ~ textbfCat1, the category of cat1-groups and their morphisms; and ~ textbfGpGpd, the subcategory of group objects in the category textbfGpd of groupoids. We also include functors between these categories which exhibit the equivalences. Most papers on crossed modules use left actions, but we give the alternative right action axioms here, which are more suitable for use in computational group theory programs.
A crossed module {cal X} = (partial : S to R ) consists of a
group homomorphism partial , called the em boundary of
mathcal{X}, with em source S and em range R, together
with an action alpha : R to mathrm{Aut}(S) satisfying, for all
s,s_1,s_2 in S and r in R,
textbfXMod 1: & partial(s^r) & = & r^{-1} (partial s) r
textbfXMod 2: & s_1^{partial s_2} & = & s_2^{-1}s_1 s_2.
The kernel of partial is abelian.
item A em conjugation crossed module is an inclusion of a normal subgroup S unlhd R, where R acts on S by conjugation. item A em central extension crossed module has as boundary a surjection partial : S to R with central kernel, where r in R acts on S by conjugation with partial^{-1}r. item An em automorphism crossed module has as range a subgroup R of the automorphism group mbox{Aut}(S) of S which contains the inner automorphism group of S. The boundary maps s in S to the inner automorphism of S by s. item A em trivial action crossed module partial : S to R has s^r = s for all s in S, ; r in R, the source is abelian and the image lies in the centre of the range. item An em R-Module crossed module has an R-module as source and the zero map as boundary. item The direct product {cal X}_{1} times {cal X}_{2} of two crossed modules has source S_1 times S_2, range R_1 times R_2 and boundary partial_1 times partial_2, with R_1, R_2 acting trivially on S_2, S_1 respectively.
A morphism between two crossed modules {cal X}_{1} = (partial_1 : S_1 to R_1) and {cal X}_{2} = (partial_2 : S_2 to R_2) is a pair (sigma, rho), where sigma : S_1 to S_2 and rho : R_1 to R_2 are homomorphisms satisfying partial_2 sigma = rho partial_1, ; ; sigma(s^r) = (sigma s)^rho r.
When {cal X}_{1} = {cal X}_{2} and sigma, rho are automorphisms then (sigma, rho) is an automorphism of {cal X}_1. The group of automorphisms is denoted by mathrm{Aut}({cal X}_1 ).
X
is a record with fields:
X.source
, & the source S of partial,
X.boundary
, & the homomorphsim partial,
X.range
, & the range R of partial,
X.aut
, & a group of automorphisms of S,
X.action
, & a homomorphism from R to X.aut
,
X.isXMod
, & a boolean flag, normally true
,
X.isDomain
, & always true,
X.operations
, & special set of operations XModOps
(see refOperations for crossed modules),
X.name
, & a concatenation of the names of the source and range.
Here is a simple example of an automorphism crossed module, the holomorph of the cyclic group of size five.
gap> c5 := CyclicGroup( 5 );; c5.name := "c5";; gap> X1 := AutomorphismXMod( c5 ); Crossed module [c5->PermAut(c5)] gap> XModPrint( X1 ); Crossed module [c5->PermAut(c5)] :- : Source group c5 has generators: [ (1,2,3,4,5) ] : Range group = PermAut(c5) has generators: [ (1,2,4,3) ] : Boundary homomorphism maps source generators to: [ () ] : Action homomorphism maps range generators to automorphisms: (1,2,4,3) --> { source gens --> [ (1,3,5,2,4) ] } This automorphism generates the group of automorphisms.
Implementation of the standard constructions is described in sections
ConjugationXMod
, CentralExtensionXMod
, AutomorphismXMod
,
TrivialActionXMod
and RModuleXMod
. With these building blocks,
sub-crossed modules SubXMod
, quotients of normal sub-crossed modules
FactorXMod
and direct products XModOps.DirectProduct
may be
constructed. An extra function XModSelect
is used to call these
constructions using groups of order up to 47 and data from file in
Cat1List
.
A morphism from a crossed module {cal X}_1 to a crossed module
{cal X}_2 is a pair of homomorphisms (sigma, rho), where
sigma, rho are respectively homomorphisms between the sources and
ranges of {cal X}_1 and {cal X}_2, which commute with the two
boundary maps and which are morphisms for the two actions. In the
following code we construct a simple automorphism of X1
.
gap> sigma1 := GroupHomomorphismByImages( c5, c5, [ (1,2,3,4,5) ] [ (1,5,4,3,2) ] );; gap> rho1 := InclusionMorphism( X1.range, X1.range );; gap> mor1 := XModMorphism( X1, X1, [ sigma1, rho1 ] ); Morphism of crossed modules [c5->PermAut(c5)] >-> [c5->PermAut(c5)]> gap> IsXModMorphism( mor1 ); true gap> XModMorphismPrint( mor1 ); Morphism of crossed modules :- : Source = Crossed module [c5->PermAut(c5)] with generating sets: [ (1,2,3,4,5) ] [ (1,2,4,3) ] : Range = Source : Source Homomorphism maps source generators to: [ (1,5,4,3,2) ] : Range Homomorphism maps range generators to: [ (1,2,4,3) ] : isXModMorphism? true gap> IsAutomorphism( mor1 ); true
The functors between textbfXMod and textbfCat1, are implemented
as functions XModCat1
and Cat1XMod
.
An integer variable XModPrintLevel
is set initially equal to 1
.
If it is increased, additional information is printed out during the
execution of many of the functions.
GAP 3.4.4