Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
| Download
GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
Project: cocalc-sagemath-dev-slelievre
Views: 4183461[1X2 [33X[0;0Y2d-groups : crossed modules and cat1-groups[133X[101X23[33X[0;0YThe term [13X2d-group[113X refers to a set of equivalent categories of which the most4common are the categories of [13Xcrossed modules[113X; [13Xcat1-groups[113X; and5[13Xgroup-groupoids[113X, all of which involve a pair of groups.[133X678[1X2.1 [33X[0;0YConstructions for crossed modules[133X[101X910[33X[0;0YA crossed module (of groups) [22XmathcalX = (∂ : S -> R )[122X consists of a group11homomorphism [22X∂[122X, called the [13Xboundary[113X of [22XmathcalX[122X, with [13Xsource[113X [22XS[122X and [13Xrange[113X [22XR[122X.12The group [22XR[122X acts on itself by conjugation, and on [22XS[122X by an action [22Xα : R ->13Aut(S)[122X such that, for all [22Xs,s_1,s_2 ∈ S[122X and [22Xr ∈ R[122X,[133X141516[24X[33X[0;6Y{\bf XMod\ 1} : \partial(s^r) = r^{-1} (\partial s) r = (\partial s)^r,17\qquad {\bf XMod\ 2} : s_1^{\partial s_2} = s_2^{-1}s_1 s_2 = {s_1}^{s_2}.[133X1819[124X2021[33X[0;0YWhen only the first of these axioms is satisfied, the resulting structure is22a [13Xpre-crossed module[113X (see section [14X2.3[114X). (Much of the literature on crossed23modules uses left actions, but we have chosen to use right actions in this24package since that is the standard choice for group actions in [5XGAP[105X.)[133X2526[33X[0;0YThe kernel of [22X∂[122X is abelian.[133X2728[33X[0;0YThere are a variety of constructors for crossed modules:[133X2930[1X2.1-1 XMod[101X3132[29X[2XXMod[102X( [3Xargs[103X ) [32X function33[29X[2XXModByBoundaryAndAction[102X( [3Xbdy[103X, [3Xact[103X ) [32X operation34[29X[2XXModByTrivialAction[102X( [3Xbdy[103X ) [32X operation35[29X[2XXModByNormalSubgroup[102X( [3XG[103X, [3XN[103X ) [32X operation36[29X[2XXModByCentralExtension[102X( [3Xbdy[103X ) [32X operation37[29X[2XXModByAutomorphismGroup[102X( [3Xgrp[103X ) [32X operation38[29X[2XXModByInnerAutomorphismGroup[102X( [3Xgrp[103X ) [32X operation39[29X[2XXModByGroupOfAutomorphisms[102X( [3XG[103X, [3XA[103X ) [32X operation40[29X[2XXModByAbelianModule[102X( [3Xabmod[103X ) [32X operation41[29X[2XDirectProductOp[102X( [3XL[103X, [3XX1[103X ) [32X operation4243[33X[0;0YThe global function [10XXMod[110X implements one of the following standard44constructions:[133X4546[30X [33X[0;6YA [13Xtrivial action crossed module[113X [22X(∂ : S -> R)[122X has [22Xs^r = s[122X for all [22Xs ∈47S, r ∈ R[122X, the source is abelian and the image lies in the centre of48the range.[133X4950[30X [33X[0;6YA [13Xconjugation crossed module[113X is the inclusion of a normal subgroup [22XS ⊴51R[122X, where [22XR[122X acts on [22XS[122X by conjugation.[133X5253[30X [33X[0;6YA [13Xcentral extension crossed module[113X has as boundary a surjection [22X∂ : S54-> R[122X, with central kernel, where [22Xr ∈ R[122X acts on [22XS[122X by conjugation with55[22X∂^-1r[122X.[133X5657[30X [33X[0;6YAn [13Xautomorphism crossed module[113X has as range a subgroup [22XR[122X of the58automorphism group Aut[22X(S)[122X of [22XS[122X which contains the inner automorphism59group of [22XS[122X. The boundary maps [22Xs ∈ S[122X to the inner automorphism of [22XS[122X by60[22Xs[122X.[133X6162[30X [33X[0;6YA [13Xcrossed abelian module[113X has an abelian module as source and the zero63map as boundary.[133X6465[30X [33X[0;6YThe direct product [22XmathcalX_1 × mathcalX_2[122X of two crossed modules has66source [22XS_1 × S_2[122X, range [22XR_1 × R_2[122X and boundary [22X∂_1 × ∂_2[122X, with [22XR_1,67R_2[122X acting trivially on [22XS_2, S_1[122X respectively.[133X6869[33X[0;6YSince [10XDirectProduct[110X is a global function which only accepts groups, it70is necessary to provide an "other method" for operation71[10XDirectProductOp[110X which, as usual, takes as parameters a list of crossed72modules, followed by the first of these: [10XDirectProductOp([X1,X2],X1);[110X[133X7374[1X2.1-2 Source[101X7576[29X[2XSource[102X( [3XX0[103X ) [32X attribute77[29X[2XRange[102X( [3XX0[103X ) [32X attribute78[29X[2XBoundary[102X( [3XX0[103X ) [32X attribute79[29X[2XXModAction[102X( [3XX0[103X ) [32X attribute8081[33X[0;0YThe following attributes are used in the construction of a crossed module82[10XX0[110X.[133X8384[30X [33X[0;6Y[10XSource(X0)[110X and [10XRange(X0)[110X are the source [22XS[122X and range [22XR[122X of [22X∂[122X, the85boundary [10XBoundary(X0)[110X;[133X8687[30X [33X[0;6Y[10XXModAction(X0)[110X is a homomorphism from [22XR[122X to a group of automorphisms of88[10XX0[110X.[133X8990[33X[0;0Y(Up until version 2.63 there was an additional attribute [10XAutoGroup[110X, the91range of [10XXModAction(X0)[110X.)[133X9293[1X2.1-3 ImageElmXModAction[101X9495[29X[2XImageElmXModAction[102X( [3XX0[103X, [3Xs[103X, [3Xr[103X ) [32X operation9697[33X[0;0YThis function returns the element [22Xs^r[122X given by [10XXModAction(X0)[110X.[133X9899[1X2.1-4 Size[101X100101[29X[2XSize[102X( [3XX0[103X ) [32X attribute102[29X[2XName[102X( [3XX0[103X ) [32X attribute103[29X[2XIdGroup[102X( [3XX0[103X ) [32X attribute104[29X[2XExternalSetXMod[102X( [3XX0[103X ) [32X attribute105106[33X[0;0YMore familiar attributes are [10XName[110X, [10XSize[110X and [10XIdGroup[110X. The name is formed by107concatenating the names of the source and range (if these exist). [10XSize[110X and108[10XIdGroup[110X return two-element lists.[133X109110[33X[0;0YThe [10XExternalSetXMod[110X for a crossed module is the source group considered as a111G-set of the range group using the crossed module action.[133X112113[33X[0;0YThe [10XDisplay[110X function is used to print details of 2d-groups.[133X114115[33X[0;0YIn the simple example below, [10XX1[110X is an automorphism crossed module, using a116cyclic group of size five. The [10XPrint[110X statements at the end list the [5XGAP[105X117representations, properties and attributes of [10XX1[110X.[133X118119[4X[32X Example [32X[104X120[4X[28X[128X[104X121[4X[25Xgap>[125X [27Xc5 := Group( (5,6,7,8,9) );;[127X[104X122[4X[25Xgap>[125X [27XSetName( c5, "c5" );[127X[104X123[4X[25Xgap>[125X [27XX1 := XModByAutomorphismGroup( c5 );[127X[104X124[4X[28X[c5 -> PAut(c5)] [128X[104X125[4X[25Xgap>[125X [27XDisplay( X1 );[127X[104X126[4X[28XCrossed module [c5 -> PAut(c5)] :-[128X[104X127[4X[28X: Source group c5 has generators:[128X[104X128[4X[28X [ (5,6,7,8,9) ][128X[104X129[4X[28X: Range group PAut(c5) has generators:[128X[104X130[4X[28X [ (1,2,3,4) ][128X[104X131[4X[28X: Boundary homomorphism maps source generators to:[128X[104X132[4X[28X [ () ][128X[104X133[4X[28X: Action homomorphism maps range generators to automorphisms:[128X[104X134[4X[28X (1,2,3,4) --> { source gens --> [ (5,7,9,6,8) ] }[128X[104X135[4X[28X This automorphism generates the group of automorphisms.[128X[104X136[4X[25Xgap>[125X [27XSize( X1 ); IdGroup( X1 ); [127X[104X137[4X[28X[ 5, 4 ][128X[104X138[4X[28X[ [ 5, 1 ], [ 4, 1 ] ][128X[104X139[4X[25Xgap>[125X [27Xext := ExternalSetXMod( X1 ); [127X[104X140[4X[28X<xset:[ (), (5,6,7,8,9), (5,7,9,6,8), (5,8,6,9,7), (5,9,8,7,6) ]>[128X[104X141[4X[25Xgap>[125X [27XOrbits( ext );[127X[104X142[4X[28X[ [ () ], [ (5,6,7,8,9), (5,7,9,6,8), (5,9,8,7,6), (5,8,6,9,7) ] ][128X[104X143[4X[25Xgap>[125X [27XImageElmXModAction( X1, (5,6,7,8,9), (1,2,3,4) );[127X[104X144[4X[28X(5,7,9,6,8)[128X[104X145[4X[25Xgap>[125X [27XRepresentationsOfObject( X1 );[127X[104X146[4X[28X[ "IsComponentObjectRep", "IsAttributeStoringRep", "IsPreXModObj" ][128X[104X147[4X[25Xgap>[125X [27XKnownAttributesOfObject( X1);[127X[104X148[4X[28X[ "Name", "Size", "Range", "Source", "IdGroup", "Boundary", "XModAction", [128X[104X149[4X[28X "ExternalSetXMod" ][128X[104X150[4X[28X[128X[104X151[4X[32X[104X152153154[1X2.2 [33X[0;0YProperties of crossed modules[133X[101X155156[33X[0;0YThe underlying category structures for the objects constructed in this157chapter follow the sequence [10XIs2DimensionalDomain[110X; [10XIs2DimensionalMagma[110X;158[10XIs2DimensionalMagmaWithOne[110X; [10XIs2DimensionalMagmaWithInverses[110X, mirroring the159situation for (one-dimensional) groups. From these we construct160[10XIs2DimensionalSemigroup[110X, [10XIs2DimensionalMonoid[110X and [10XIs2DimensionalGroup[110X.[133X161162[33X[0;0YThere are then a variety of properties associated with crossed modules,163starting with [10XIsPreXMod[110X and [10XIsXMod[110X.[133X164165[1X2.2-1 IsXMod[101X166167[29X[2XIsXMod[102X( [3XX0[103X ) [32X property168[29X[2XIsPreXMod[102X( [3XX0[103X ) [32X property169[29X[2XIsPerm2DimensionalGroup[102X( [3XX0[103X ) [32X property170[29X[2XIsPc2DimensionalGroup[102X( [3XX0[103X ) [32X property171[29X[2XIsFp2DimensionalGroup[102X( [3XX0[103X ) [32X property172173[33X[0;0YA structure which has [10XIsPerm2DimensionalGroup[110X is a precrossed module or a174pre-cat1-group (see section [14X2.4[114X) whose source and range are both permutation175groups. The properties [10XIsPc2DimensionalGroup[110X, [10XIsFp2DimensionalGroup[110X are176defined similarly. In the example below we see that [10XX1[110X has [10XIsPreXMod[110X, [10XIsXMod[110X177and [10XIsPerm2DimensionalGroup[110X. There are also properties corresponding to the178various construction methods listed in section [14X2.1[114X:179[10XIsTrivialAction2DimensionalGroup[110X; [10XIsNormalSubgroup2DimensionalGroup[110X;180[10XIsCentralExtension2DimensionalGroup[110X; [10XIsAutomorphismGroup2DimensionalGroup[110X;181[10XIsAbelianModule2DimensionalGroup[110X.[133X182183[4X[32X Example [32X[104X184[4X[28X[128X[104X185[4X[25Xgap>[125X [27XKnownPropertiesOfObject( X1 );[127X[104X186[4X[28X[ "IsEmpty", "IsTrivial", "IsNonTrivial", "IsFinite", [128X[104X187[4X[28X "CanEasilyCompareElements", "CanEasilySortElements", "IsDuplicateFree", [128X[104X188[4X[28X "IsGeneratorsOfSemigroup", "IsPreXModDomain", "IsPerm2DimensionalGroup", [128X[104X189[4X[28X "IsPreXMod", "IsXMod", "IsAutomorphismGroup2DimensionalGroup" ][128X[104X190[4X[28X[128X[104X191[4X[32X[104X192193[1X2.2-2 SubXMod[101X194195[29X[2XSubXMod[102X( [3XX0[103X, [3Xsrc[103X, [3Xrng[103X ) [32X operation196[29X[2XTrivialSubXMod[102X( [3XX0[103X ) [32X attribute197[29X[2XNormalSubXMods[102X( [3XX0[103X ) [32X attribute198199[33X[0;0YWith the standard crossed module constructors listed above as building200blocks, sub-crossed modules, normal sub-crossed modules [22XmathcalN ⊲ mathcalX[122X,201and also quotients [22XmathcalX/mathcalN[122X may be constructed. A sub-crossed202module [22XmathcalS = (δ : N -> M)[122X is [13Xnormal[113X in [22XmathcalX = (∂ : S -> R)[122X if[133X203204[30X [33X[0;6Y[22XN,M[122X are normal subgroups of [22XS,R[122X respectively,[133X205206[30X [33X[0;6Y[22Xδ[122X is the restriction of [22X∂[122X,[133X207208[30X [33X[0;6Y[22Xn^r ∈ N[122X for all [22Xn ∈ N,~r ∈ R[122X,[133X209210[30X [33X[0;6Y[22X(s^-1)^ms ∈ N[122X for all [22Xm ∈ M,~s ∈ S[122X.[133X211212[33X[0;0YThese conditions ensure that [22XM ⋉ N[122X is normal in the semidirect product [22XR ⋉213S[122X. (Note that [22X⟨ s,m ⟩ = (s^-1)^ms[122X is a displacement: see [2XDisplacement[102X214([14X4.1-3[114X).)[133X215216[33X[0;0YA method for [10XIsNormal[110X for precrossed modules is provided. See section [14X4.1[114X217for factor crossed modules and their natural morphisms.[133X218219[33X[0;0YThe five normal subcrossed modules of [10XX4[110X found in the following example are220[10X[id,id], [k4,k4], [k4,a4], [a4,a4][110X and [10XX4[110X itself.[133X221222[4X[32X Example [32X[104X223[4X[28X[128X[104X224[4X[25Xgap>[125X [27Xs4 := Group( (1,2), (2,3), (3,4) );; [127X[104X225[4X[25Xgap>[125X [27Xa4 := Subgroup( s4, [ (1,2,3), (2,3,4) ] );; [127X[104X226[4X[25Xgap>[125X [27Xk4 := Subgroup( a4, [ (1,2)(3,4), (1,3)(2,4) ] );; [127X[104X227[4X[25Xgap>[125X [27XSetName(s4,"s4"); SetName(a4,"a4"); SetName(k4,"k4"); [127X[104X228[4X[25Xgap>[125X [27XX4 := XModByNormalSubgroup( s4, a4 );[127X[104X229[4X[28X[a4->s4][128X[104X230[4X[25Xgap>[125X [27XY4 := SubXMod( X4, k4, a4 ); [127X[104X231[4X[28X[k4->a4][128X[104X232[4X[25Xgap>[125X [27XIsNormal(X4,Y4);[127X[104X233[4X[28Xtrue[128X[104X234[4X[25Xgap>[125X [27XNX4 := NormalSubXMods( X4 );;[127X[104X235[4X[25Xgap>[125X [27XLength( NX4 ); [127X[104X236[4X[28X5[128X[104X237[4X[28X[128X[104X238[4X[32X[104X239240241[1X2.3 [33X[0;0YPre-crossed modules[133X[101X242243[1X2.3-1 PreXModByBoundaryAndAction[101X244245[29X[2XPreXModByBoundaryAndAction[102X( [3Xbdy[103X, [3Xact[103X ) [32X operation246[29X[2XSubPreXMod[102X( [3XX0[103X, [3Xsrc[103X, [3Xrng[103X ) [32X operation247248[33X[0;0YIf axiom [22XXMod 2[122X is [13Xnot[113X satisfied, the corresponding structure is known as a249[13Xpre-crossed module[113X.[133X250251[4X[32X Example [32X[104X252[4X[28X[128X[104X253[4X[25Xgap>[125X [27Xb1 := (11,12,13,14,15,16,17,18);; b2 := (12,18)(13,17)(14,16);;[127X[104X254[4X[25Xgap>[125X [27Xd16 := Group( b1, b2 );;[127X[104X255[4X[25Xgap>[125X [27Xsk4 := Subgroup( d16, [ b1^4, b2 ] );;[127X[104X256[4X[25Xgap>[125X [27XSetName( d16, "d16" ); SetName( sk4, "sk4" );[127X[104X257[4X[25Xgap>[125X [27Xbdy16 := GroupHomomorphismByImages( d16, sk4, [b1,b2], [b1^4,b2] );;[127X[104X258[4X[25Xgap>[125X [27Xaut1 := GroupHomomorphismByImages( d16, d16, [b1,b2], [b1^5,b2] );;[127X[104X259[4X[25Xgap>[125X [27Xaut2 := GroupHomomorphismByImages( d16, d16, [b1,b2], [b1,b2^4*b2] );;[127X[104X260[4X[25Xgap>[125X [27Xaut16 := Group( [ aut1, aut2 ] );;[127X[104X261[4X[25Xgap>[125X [27Xact16 := GroupHomomorphismByImages( sk4, aut16, [b1^4,b2], [aut1,aut2] );;[127X[104X262[4X[25Xgap>[125X [27XP16 := PreXModByBoundaryAndAction( bdy16, act16 );[127X[104X263[4X[28X[d16->sk4][128X[104X264[4X[25Xgap>[125X [27XIsXMod(P16);[127X[104X265[4X[28Xfalse[128X[104X266[4X[28X[128X[104X267[4X[32X[104X268269[1X2.3-2 PeifferSubgroup[101X270271[29X[2XPeifferSubgroup[102X( [3XX0[103X ) [32X attribute272[29X[2XXModByPeifferQuotient[102X( [3Xprexmod[103X ) [32X attribute273274[33X[0;0YThe [13XPeiffer subgroup[113X [22XP[122X of a pre-crossed module [22Xmathcal X[122X is the subgroup of275[22Xker(∂)[122X generated by [13XPeiffer commutators[113X[133X276277278[24X[33X[0;6Y\lfloor s_1,s_2 \rfloor ~=~ (s_1^{-1})^{\partial s_2}~s_2^{-1}~s_1~s_2 ~=~279\langle \partial s_2, s_1 \rangle\ [s_1,s_2]~.[133X280281[124X282283[33X[0;0YThen [22XmathcalP = (0 : P -> {1_R})[122X is a normal sub-pre-crossed module of284[22XmathcalX[122X and [22XmathcalX/mathcalP = (∂ : S/P -> R)[122X is a crossed module.[133X285286[33X[0;0YIn the following example the Peiffer subgroup is cyclic of size [22X4[122X.[133X287288[4X[32X Example [32X[104X289[4X[28X[128X[104X290[4X[25Xgap>[125X [27XP := PeifferSubgroup( P16 );[127X[104X291[4X[28XGroup( [ (11,15)(12,16)(13,17)(14,18), (11,17,15,13)(12,18,16,14) ] )[128X[104X292[4X[25Xgap>[125X [27XX16 := XModByPeifferQuotient( P16 );[127X[104X293[4X[28XPeiffer([d16->sk4])[128X[104X294[4X[25Xgap>[125X [27XDisplay( X16 );[127X[104X295[4X[28XCrossed module Peiffer([d16->sk4]) :-[128X[104X296[4X[28X: Source group has generators:[128X[104X297[4X[28X [ f1, f2 ][128X[104X298[4X[28X: Range group has generators:[128X[104X299[4X[28X [ (11,15)(12,16)(13,17)(14,18), (12,18)(13,17)(14,16) ][128X[104X300[4X[28X: Boundary homomorphism maps source generators to:[128X[104X301[4X[28X [ (12,18)(13,17)(14,16), (11,15)(12,16)(13,17)(14,18) ][128X[104X302[4X[28X The automorphism group is trivial[128X[104X303[4X[25Xgap>[125X [27Xiso16 := IsomorphismPermGroup( Source( X16 ) );;[127X[104X304[4X[25Xgap>[125X [27XS16 := Image( iso16 );[127X[104X305[4X[28XGroup([ (1,2), (3,4) ]) [128X[104X306[4X[28X[128X[104X307[4X[32X[104X308309310[1X2.4 [33X[0;0YCat1-groups and pre-cat1-groups[133X[101X311312[33X[0;0YIn [Lod82], Loday reformulated the notion of a crossed module as a313cat1-group, namely a group [22XG[122X with a pair of endomorphisms [22Xt,h : G -> G[122X314having a common image [22XR[122X and satisfying certain axioms. We find it315computationally convenient to define a cat1-group [22XmathcalC = (e;t,h : G -> R316)[122X as having source group [22XG[122X, range group [22XR[122X, and three homomorphisms: two317surjections [22Xt,h : G -> R[122X and an embedding [22Xe : R -> G[122X satisfying:[133X318319320[24X[33X[0;6Y{\bf Cat\ 1} : ~t \circ e ~=~ h \circ e = {\rm id}_R, \qquad {\bf Cat\ 2} :321~[\ker t, \ker h] ~=~ \{ 1_G \}.[133X322323[124X324325[33X[0;0YIt follows that [22Xt ∘ e ∘ h = h,~ h ∘ e ∘ t = t,~ t ∘ e ∘ t = t~[122X and [22X~h ∘ e ∘326h = h[122X. (See section [14X2.5[114X for the case when [22Xt,h[122X are endomorphisms.)[133X327328[1X2.4-1 Cat1Group[101X329330[29X[2XCat1Group[102X( [3Xargs[103X ) [32X function331[29X[2XPreCat1Group[102X( [3Xargs[103X ) [32X function332[29X[2XPreCat1GroupByTailHeadEmbedding[102X( [3Xt[103X, [3Xh[103X, [3Xe[103X ) [32X operation333[29X[2XPreCat1GroupByEndomorphisms[102X( [3Xt[103X, [3Xh[103X ) [32X operation334335[33X[0;0YThe global functions [10XCat1Group[110X and [10XPreCat1Group[110X can be called in various336ways.[133X337338[30X [33X[0;6Yas [10XCat1Group(t,h,e);[110X when [22Xt,h,e[122X are three homomorphisms, which is339equivalent to [10XPreCat1GroupByTailHeadEmbedding(t,h,e);[110X[133X340341[30X [33X[0;6Yas [10XCat1Group(t,h);[110X when [22Xt,h[122X are two endomorphisms, which is equivalent342to [10XPreCat1GroupByEndomorphisms(t,h);[110X[133X343344[30X [33X[0;6Yas [10XCat1Group(t);[110X when [22Xt=h[122X is an endomorphism, which is equivalent to345[10XPreCat1GroupByEndomorphisms(t,t);[110X[133X346347[30X [33X[0;6Yas [10XCat1Group(t,e);[110X when [22Xt=h[122X and [22Xe[122X are homomorphisms, which is348equivalent to [10XPreCat1GroupByTailHeadEmbedding(t,t,e);[110X[133X349350[30X [33X[0;6Yas [10XCat1Group(i,j,k);[110X when [22Xi,j,k[122X are integers, which is equivalent to351[10XCat1Select(i,j,k);[110X as described in section [14X2.6[114X.[133X352353[4X[32X Example [32X[104X354[4X[28X[128X[104X355[4X[25Xgap>[125X [27Xg18gens := [ (1,2,3), (4,5,6), (2,3)(5,6) ];; [127X[104X356[4X[25Xgap>[125X [27Xs3agens := [ (7,8,9), (8,9) ];; [127X[104X357[4X[25Xgap>[125X [27Xg18 := Group( g18gens );; SetName( g18, "g18" ); [127X[104X358[4X[25Xgap>[125X [27Xs3a := Group( s3agens );; SetName( s3a, "s3a" );[127X[104X359[4X[25Xgap>[125X [27Xt1 := GroupHomomorphismByImages(g18,s3a,g18gens,[(7,8,9),(),(8,9)]); [127X[104X360[4X[28X[ (1,2,3), (4,5,6), (2,3)(5,6) ] -> [ (7,8,9), (), (8,9) ][128X[104X361[4X[25Xgap>[125X [27Xh1 := GroupHomomorphismByImages(g18,s3a,g18gens,[(7,8,9),(7,8,9),(8,9)]);[127X[104X362[4X[28X[ (1,2,3), (4,5,6), (2,3)(5,6) ] -> [ (7,8,9), (7,8,9), (8,9) ][128X[104X363[4X[25Xgap>[125X [27Xe1 := GroupHomomorphismByImages(s3a,g18,s3agens,[(1,2,3),(2,3)(5,6)]); [127X[104X364[4X[28X[ (7,8,9), (8,9) ] -> [ (1,2,3), (2,3)(5,6) ][128X[104X365[4X[25Xgap>[125X [27XC18 := Cat1Group( t1, h1, e1 );[127X[104X366[4X[28X[g18=>s3a][128X[104X367[4X[28X[128X[104X368[4X[32X[104X369370[1X2.4-2 Source[101X371372[29X[2XSource[102X( [3XC[103X ) [32X attribute373[29X[2XRange[102X( [3XC[103X ) [32X attribute374[29X[2XTailMap[102X( [3XC[103X ) [32X attribute375[29X[2XHeadMap[102X( [3XC[103X ) [32X attribute376[29X[2XRangeEmbedding[102X( [3XC[103X ) [32X attribute377[29X[2XKernelEmbedding[102X( [3XC[103X ) [32X attribute378[29X[2XBoundary[102X( [3XC[103X ) [32X attribute379[29X[2XName[102X( [3XC[103X ) [32X attribute380[29X[2XSize[102X( [3XC[103X ) [32X attribute381382[33X[0;0YThese are the attributes of a cat1-group [22XmathcalC[122X in this implementation.[133X383384[33X[0;0YThe maps [22Xt,h[122X are often referred to as the [13Xsource[113X and [13Xtarget[113X, but we choose385to call them the [13Xtail[113X and [13Xhead[113X of [22XmathcalC[122X, because [13Xsource[113X is the [5XGAP[105X term386for the domain of a function. The [10XRangeEmbedding[110X is the embedding of [10XR[110X in [10XG[110X,387the [10XKernelEmbedding[110X is the inclusion of the kernel of [10Xt[110X in [10XG[110X, and the388[10XBoundary[110X is the restriction of [10Xh[110X to the kernel of [10Xt[110X. It is frequently the389case that [22Xt=h[122X, but not in the example [10XC18[110X above.[133X390391[4X[32X Example [32X[104X392[4X[28X[128X[104X393[4X[25Xgap>[125X [27XSource( C18 );[127X[104X394[4X[28Xg18[128X[104X395[4X[25Xgap>[125X [27XRange( C18 );[127X[104X396[4X[28Xs3a[128X[104X397[4X[25Xgap>[125X [27XTailMap( C18 );[127X[104X398[4X[28X[ (1,2,3), (4,5,6), (2,3)(5,6) ] -> [ (7,8,9), (), (8,9) ][128X[104X399[4X[25Xgap>[125X [27XHeadMap( C18 );[127X[104X400[4X[28X[ (1,2,3), (4,5,6), (2,3)(5,6) ] -> [ (7,8,9), (7,8,9), (8,9) ][128X[104X401[4X[25Xgap>[125X [27XRangeEmbedding( C18 );[127X[104X402[4X[28X[ (7,8,9), (8,9) ] -> [ (1,2,3), (2,3)(5,6) ][128X[104X403[4X[25Xgap>[125X [27XKernel( C18 );[127X[104X404[4X[28XGroup([ (4,5,6) ])[128X[104X405[4X[25Xgap>[125X [27XKernelEmbedding( C18 );[127X[104X406[4X[28X[ (4,5,6) ] -> [ (4,5,6) ][128X[104X407[4X[25Xgap>[125X [27XName( C18 );[127X[104X408[4X[28X"[g18=>s3a]"[128X[104X409[4X[25Xgap>[125X [27XSize( C18 );[127X[104X410[4X[28X[ 18, 6 ][128X[104X411[4X[25Xgap>[125X [27XStructureDescription( C18 );[127X[104X412[4X[28X[ "(C3 x C3) : C2", "S3" ][128X[104X413[4X[28X[128X[104X414[4X[32X[104X415416[1X2.4-3 DiagonalCat1Group[101X417418[29X[2XDiagonalCat1Group[102X( [3Xgen1[103X ) [32X operation419[29X[2XPreCat1GroupByNormalSubgroup[102X( [3XG[103X, [3XN[103X ) [32X operation420[29X[2XCat1GroupByPeifferQuotient[102X( [3XP[103X ) [32X operation421[29X[2XReverseCat1Group[102X( [3XC0[103X ) [32X attribute422423[33X[0;0YThese are some more constructors for cat1-groups. The following listing424shows an example of a permutation cat1-group of size [22X[576,24][122X with source425group [22XS_4 × S_4[122X, range group a third [22XS_4[122X, and [22Xt ≠ h[122X. A similar example may426be reproduced using the command [10XC := DiagonalCat1Group([(1,2,3,4),(3,4)]);[110X.[133X427428[4X[32X Example [32X[104X429[4X[28X[128X[104X430[4X[25Xgap>[125X [27XG4 := Group( (1,2,3,4), (3,4), (5,6,7,8), (7,8) );; [127X[104X431[4X[25Xgap>[125X [27XR4 := Group( (9,10,11,12), (11,12) );;[127X[104X432[4X[25Xgap>[125X [27XSetName( G4, "s4s4" ); SetName( R4, "s4d" ); [127X[104X433[4X[25Xgap>[125X [27XG4gens := GeneratorsOfGroup( G4 );; [127X[104X434[4X[25Xgap>[125X [27XR4gens := GeneratorsOfGroup( R4 );; [127X[104X435[4X[25Xgap>[125X [27Xt := GroupHomomorphismByImages( G4, R4, G4gens, [127X[104X436[4X[25X>[125X [27X Concatenation( R4gens, [ (), () ] ) );; [127X[104X437[4X[25Xgap>[125X [27Xh := GroupHomomorphismByImages( G4, R4, G4gens, [127X[104X438[4X[25X>[125X [27X Concatenation( [ (), () ], R4gens ) );; [127X[104X439[4X[25Xgap>[125X [27Xe := GroupHomomorphismByImages( R4, G4, R4gens, [127X[104X440[4X[25X>[125X [27X [ (1,2,3,4)(5,6,7,8), (3,4)(7,8) ] );; [127X[104X441[4X[25Xgap>[125X [27XC4 := PreCat1GroupByTailHeadEmbedding( t, h, e );; [127X[104X442[4X[25Xgap>[125X [27XDisplay(C4);[127X[104X443[4X[28XCat1-group [s4s4=>s4d] :- [128X[104X444[4X[28X: Source group s4s4 has generators:[128X[104X445[4X[28X [ (1,2,3,4), (3,4), (5,6,7,8), (7,8) ][128X[104X446[4X[28X: Range group s4d has generators:[128X[104X447[4X[28X [ ( 9,10,11,12), (11,12) ][128X[104X448[4X[28X: tail homomorphism maps source generators to:[128X[104X449[4X[28X [ ( 9,10,11,12), (11,12), (), () ][128X[104X450[4X[28X: head homomorphism maps source generators to:[128X[104X451[4X[28X [ (), (), ( 9,10,11,12), (11,12) ][128X[104X452[4X[28X: range embedding maps range generators to:[128X[104X453[4X[28X [ (1,2,3,4)(5,6,7,8), (3,4)(7,8) ][128X[104X454[4X[28X: kernel has generators:[128X[104X455[4X[28X [ (5,6,7,8), (7,8) ][128X[104X456[4X[28X: boundary homomorphism maps generators of kernel to:[128X[104X457[4X[28X [ ( 9,10,11,12), (11,12) ][128X[104X458[4X[28X: kernel embedding maps generators of kernel to:[128X[104X459[4X[28X [ (5,6,7,8), (7,8) ][128X[104X460[4X[28X[128X[104X461[4X[32X[104X462463464[1X2.5 [33X[0;0YProperties of cat1-groups and pre-cat1-groups[133X[101X465466[33X[0;0YMany of the properties listed in section [14X2.2[114X apply to pre-cat1-groups and to467cat1-groups since these are also 2d-groups. There are also more specific468properties.[133X469470[1X2.5-1 IsCat1Group[101X471472[29X[2XIsCat1Group[102X( [3XC0[103X ) [32X property473[29X[2XIsPreXCat1Group[102X( [3XC0[103X ) [32X property474[29X[2XIsIdentityCat1Group[102X( [3XC0[103X ) [32X property475[29X[2XIsEndomorphismPreCat1Group[102X( [3XC0[103X ) [32X property476[29X[2XEndomorphismPreCat1Group[102X( [3XC0[103X ) [32X attribute477478[33X[0;0Y[10XIsIdentityCat1Group(C0)[110X is true when the head and tail maps of [10XC0[110X are479identity mappings. [10XIsEndomorphismPreCat1Group(C0)[110X is true when the range of480[10XC0[110X is a subgroup of the source. When this is not the case, replacing [22Xt,h,e[122X481by [22Xt*e,h*e[122X and the inclusion mapping of the image of [22Xe[122X gives an isomorphic482cat1-group for which [10XIsEndomorphismPreCat1Group[110X is true.[133X483484[4X[32X Example [32X[104X485[4X[28X[128X[104X486[4X[25Xgap>[125X [27XG2 := SmallGroup( 288, 956 ); SetName( G2, "G2" );[127X[104X487[4X[28X<pc group of size 288 with 7 generators>[128X[104X488[4X[25Xgap>[125X [27Xd12 := DihedralGroup( 12 ); SetName( d12, "d12" );[127X[104X489[4X[28X<pc group of size 12 with 3 generators>[128X[104X490[4X[25Xgap>[125X [27Xa1 := d12.1;; a2 := d12.2;; a3 := d12.3;; a0 := One( d12 );;[127X[104X491[4X[25Xgap>[125X [27XgensG2 := GeneratorsOfGroup( G2 );;[127X[104X492[4X[25Xgap>[125X [27Xt2 := GroupHomomorphismByImages( G2, d12, gensG2,[127X[104X493[4X[25X>[125X [27X [ a0, a1*a3, a2*a3, a0, a0, a3, a0 ] );;[127X[104X494[4X[25Xgap>[125X [27Xh2 := GroupHomomorphismByImages( G2, d12, gensG2,[127X[104X495[4X[25X>[125X [27X [ a1*a2*a3, a0, a0, a2*a3, a0, a0, a3^2 ] );; [127X[104X496[4X[25Xgap>[125X [27Xe2 := GroupHomomorphismByImages( d12, G2, [a1,a2,a3],[127X[104X497[4X[25X>[125X [27X [ G2.1*G2.2*G2.4*G2.6^2, G2.3*G2.4*G2.6^2*G2.7, G2.6*G2.7^2 ] );[127X[104X498[4X[28X[ f1, f2, f3 ] -> [ f1*f2*f4*f6^2, f3*f4*f6^2*f7, f6*f7^2 ][128X[104X499[4X[25Xgap>[125X [27XC2 := PreCat1GroupByTailHeadEmbedding( t2, h2, e2 );[127X[104X500[4X[28X[G2=>d12][128X[104X501[4X[25Xgap>[125X [27XIsCat1Group( C2 );[127X[104X502[4X[28Xtrue[128X[104X503[4X[25Xgap>[125X [27XKnownPropertiesOfObject( C2 );[127X[104X504[4X[28X[ "CanEasilyCompareElements", "CanEasilySortElements", "IsDuplicateFree", [128X[104X505[4X[28X "IsGeneratorsOfSemigroup", "IsPreCat1Domain", "IsPerm2DimensionalGroup", [128X[104X506[4X[28X "IsPreCat1Group", "IsCat1Group", "IsEndomorphismPreCat1Group" ][128X[104X507[4X[25Xgap>[125X [27XIsEndomorphismPreCat1Group( C2 );[127X[104X508[4X[28Xfalse[128X[104X509[4X[25Xgap>[125X [27XEC4 := EndomorphismPreCat1Group( C4 );[127X[104X510[4X[28X[s4s4=>Group( [ (1,2,3,4)(5,6,7,8), (3,4)(7,8), (), () ] )][128X[104X511[4X[28X[128X[104X512[4X[32X[104X513514[1X2.5-2 Cat1GroupOfXMod[101X515516[29X[2XCat1GroupOfXMod[102X( [3XX0[103X ) [32X attribute517[29X[2XXModOfCat1Group[102X( [3XC0[103X ) [32X attribute518[29X[2XPreCat1GroupOfPreXMod[102X( [3XP0[103X ) [32X attribute519[29X[2XPreXModOfPreCat1Group[102X( [3XP0[103X ) [32X attribute520521[33X[0;0YThe category of crossed modules is equivalent to the category of522cat1-groups, and the functors between these two categories may be described523as follows. Starting with the crossed module [22XmathcalX = (∂ : S -> R)[122X the524group [22XG[122X is defined as the semidirect product [22XG = R ⋉ S[122X using the action from525[22XmathcalX[122X, with multiplication rule[133X526527528[24X[33X[0;6Y(r_1,s_1)(r_2,s_2) ~=~ (r_1r_2,{s_1}^{r_2}s_2).[133X529530[124X531532[33X[0;0YThe structural morphisms are given by[133X533534535[24X[33X[0;6Yt(r,s) = r, \quad h(r,s) = r (\partial s), \quad er = (r,1).[133X536537[124X538539[33X[0;0YOn the other hand, starting with a cat1-group [22XmathcalC = (e;t,h : G -> R)[122X,540we define [22XS = ker t[122X, the range [22XR[122X is unchanged, and [22X∂ = h∣_S[122X. The action of [22XR[122X541on [22XS[122X is conjugation in [22XG[122X via the embedding of [22XR[122X in [22XG[122X.[133X542543[4X[32X Example [32X[104X544[4X[28X[128X[104X545[4X[25Xgap>[125X [27XX2 := XModOfCat1Group( C2 );;[127X[104X546[4X[25Xgap>[125X [27XDisplay( X2 );[127X[104X547[4X[28X[128X[104X548[4X[28XCrossed module X([G2=>d12]) :- [128X[104X549[4X[28X: Source group has generators:[128X[104X550[4X[28X [ f1, f4, f5, f7 ][128X[104X551[4X[28X: Range group d12 has generators:[128X[104X552[4X[28X [ f1, f2, f3 ][128X[104X553[4X[28X: Boundary homomorphism maps source generators to:[128X[104X554[4X[28X [ f1*f2*f3, f2*f3, <identity> of ..., f3^2 ][128X[104X555[4X[28X: Action homomorphism maps range generators to automorphisms:[128X[104X556[4X[28X f1 --> { source gens --> [ f1*f5, f4*f5, f5, f7^2 ] }[128X[104X557[4X[28X f2 --> { source gens --> [ f1*f5*f7^2, f4, f5, f7 ] }[128X[104X558[4X[28X f3 --> { source gens --> [ f1*f7, f4, f5, f7 ] }[128X[104X559[4X[28X These 3 automorphisms generate the group of automorphisms.[128X[104X560[4X[28X: associated cat1-group is [G2=>d12][128X[104X561[4X[28X[128X[104X562[4X[25Xgap>[125X [27XStructureDescription(X2);[127X[104X563[4X[28X[ "D24", "D12" ][128X[104X564[4X[28X[128X[104X565[4X[28X[128X[104X566[4X[32X[104X567568569[1X2.6 [33X[0;0YSelection of a small cat1-group[133X[101X570571[33X[0;0YThe [10XCat1Group[110X function may also be used to select a cat1-group from a data572file. All cat1-structures on groups of size up to [22X70[122X (ordered according to573the [5XGAP[105X 4 numbering of small groups) are stored in a list in file574[11Xcat1data.g[111X. Global variables [10XCAT1_LIST_MAX_SIZE := 70[110X and575[10XCAT1_LIST_CLASS_SIZES[110X are also stored. The data is read into the list576[10XCAT1_LIST[110X only when this function is called.[133X577578[1X2.6-1 Cat1Select[101X579580[29X[2XCat1Select[102X( [3Xsize[103X, [3Xgpnum[103X, [3Xnum[103X ) [32X attribute581582[33X[0;0YThe function [10XCat1Select[110X may be used in three ways. [10XCat1Select( size )[110X583returns the names of the groups with this size, while [10XCat1Select( size,584gpnum )[110X prints a list of cat1-structures for this chosen group. [10XCat1Select(585size, gpnum, num )[110X returns the chosen cat1-group.[133X586587[33X[0;0YThe example below is the first case in which [22Xt ≠ h[122X and the associated588conjugation crossed module is given by the normal subgroup [10Xc3[110X of [10Xs3[110X.[133X589590[4X[32X Example [32X[104X591[4X[28X[128X[104X592[4X[25Xgap>[125X [27X## check the number of groups of size 18[127X[104X593[4X[25Xgap>[125X [27XL18 := Cat1Select( 18 ); [127X[104X594[4X[28XUsage: Cat1Select( size, gpnum, num );[128X[104X595[4X[28X[ "D18", "C18", "C3 x S3", "(C3 x C3) : C2", "C6 x C3" ][128X[104X596[4X[25Xgap>[125X [27X## check the number of cat1-structures on the fourth of these[127X[104X597[4X[25Xgap>[125X [27XCat1Select( 18, 4 );[127X[104X598[4X[28XUsage: Cat1Select( size, gpnum, num );[128X[104X599[4X[28XThere are 4 cat1-structures for the group (C3 x C3) : C2.[128X[104X600[4X[28XUsing small generating set [ f1, f2, f2*f3 ] for source of homs.[128X[104X601[4X[28X[ [range gens], [tail genimages], [head genimages] ] :-[128X[104X602[4X[28X(1) [ [ f1 ], [ f1, <identity> of ..., <identity> of ... ], [128X[104X603[4X[28X [ f1, <identity> of ..., <identity> of ... ] ][128X[104X604[4X[28X(2) [ [ f1, f3 ], [ f1, <identity> of ..., f3 ], [128X[104X605[4X[28X [ f1, <identity> of ..., f3 ] ][128X[104X606[4X[28X(3) [ [ f1, f3 ], [ f1, <identity> of ..., f3 ], [128X[104X607[4X[28X [ f1, f3^2, <identity> of ... ] ][128X[104X608[4X[28X(4) [ [ f1, f2, f2*f3 ], tail = head = identity mapping ][128X[104X609[4X[28X4[128X[104X610[4X[25Xgap>[125X [27X## select the third of these cat1-structures [127X[104X611[4X[25Xgap>[125X [27XC18 := Cat1Group( 18, 4, 3 );[127X[104X612[4X[28X[(C3 x C3) : C2=>Group( [ f1, <identity> of ..., f3 ] )][128X[104X613[4X[25Xgap>[125X [27X## convert from a pc-cat1-group to a permutation cat1-group[127X[104X614[4X[25Xgap>[125X [27Xiso18 := IsomorphismPermObject( C18 );;[127X[104X615[4X[25Xgap>[125X [27XPC18 := Image( iso18 );;[127X[104X616[4X[25Xgap>[125X [27XDisplay( PC18 );[127X[104X617[4X[28XCat1-group :- [128X[104X618[4X[28X: Source group has generators:[128X[104X619[4X[28X [ (2,3)(5,6), (4,5,6), (1,2,3) ][128X[104X620[4X[28X: Range group has generators:[128X[104X621[4X[28X [ (2,3), (), (1,2,3) ][128X[104X622[4X[28X: tail homomorphism maps source generators to:[128X[104X623[4X[28X [ (2,3), (), (1,2,3) ][128X[104X624[4X[28X: head homomorphism maps source generators to:[128X[104X625[4X[28X [ (2,3), (1,3,2), (1,2,3) ][128X[104X626[4X[28X: range embedding maps range generators to:[128X[104X627[4X[28X [ (2,3)(5,6), (), (1,2,3) ][128X[104X628[4X[28X: kernel has generators:[128X[104X629[4X[28X [ (4,5,6) ][128X[104X630[4X[28X: boundary homomorphism maps generators of kernel to:[128X[104X631[4X[28X [ (1,3,2) ][128X[104X632[4X[28X: kernel embedding maps generators of kernel to:[128X[104X633[4X[28X [ (4,5,6) ][128X[104X634[4X[25Xgap>[125X [27Xconvert the result to the associated permutation crossed module [127X[104X635[4X[25Xgap>[125X [27XX18 := XModOfCat1Group( PC18 );; [127X[104X636[4X[25Xgap>[125X [27XDisplay( X18 ); [127X[104X637[4X[28XCrossed module:- [128X[104X638[4X[28X: Source group has generators:[128X[104X639[4X[28X [ (4,5,6) ][128X[104X640[4X[28X: Range group has generators:[128X[104X641[4X[28X [ (2,3), (), (1,2,3) ][128X[104X642[4X[28X: Boundary homomorphism maps source generators to:[128X[104X643[4X[28X [ (1,3,2) ][128X[104X644[4X[28X: Action homomorphism maps range generators to automorphisms:[128X[104X645[4X[28X (2,3) --> { source gens --> [ (4,6,5) ] }[128X[104X646[4X[28X () --> { source gens --> [ (4,5,6) ] }[128X[104X647[4X[28X (1,2,3) --> { source gens --> [ (4,5,6) ] }[128X[104X648[4X[28X These 3 automorphisms generate the group of automorphisms.[128X[104X649[4X[28X: associated cat1-group is [..=>..][128X[104X650[4X[28X[128X[104X651[4X[32X[104X652653[1X2.6-2 AllCat1DataGroupsBasic[101X654655[29X[2XAllCat1DataGroupsBasic[102X( [3Xgp[103X ) [32X operation656657[33X[0;0YFor a group [22XG[122X of size greater than [22X70[122X which is reasonably straightforward658this function may be used to construct a list of all cat1-group structures659on [22XG[122X. The operation also attempts to write output to a file in the folder660[11Xxmod/lib[111X. (Other operations in the file [11Xcat1data.gi[111X have been used to deal661with the more complicated groups of size up to [22X70[122X, but these are not662described here.)[133X663664[33X[0;0YVan Luyen Le has a more efficient algorithm, extending the data up to groups665of size 171, which is expected to appear in a future release of [5XHAP[105X.[133X666667[4X[32X Example [32X[104X668[4X[28X[128X[104X669[4X[25Xgap>[125X [27Xgp := SmallGroup( 102, 2 ); [127X[104X670[4X[28X<pc group of size 102 with 3 generators>[128X[104X671[4X[25Xgap>[125X [27XStructureDescription( gp ); [127X[104X672[4X[28X"C3 x D34"[128X[104X673[4X[25Xgap>[125X [27Xall := AllCat1DataGroupsBasic( gp );[127X[104X674[4X[28X#I Edit last line of .../xmod/lib/nn.kk.out to end with ] ] ] ] ][128X[104X675[4X[28X[ [Group( [ f1, f2, f3 ] )=>Group( [ f1, <identity> of ..., <identity> of ... [128X[104X676[4X[28X ] )], [Group( [ f1, f2, f3 ] )=>Group( [ f1, f2, <identity> of ... ] )], [128X[104X677[4X[28X [Group( [ f1, f2, f3 ] )=>Group( [ f1, <identity> of ..., f3 ] )], [128X[104X678[4X[28X [Group( [ f1, f2, f3 ] )=>Group( [ f1, f2, f3 ] )] ][128X[104X679[4X[28X[128X[104X680[4X[32X[104X681682683[1X2.7 [33X[0;0YMore functions for crossed modules and cat1-groups[133X[101X684685[33X[0;0YChapter [14X4[114X contains functions for quotient crossed modules; centre of a686crossed module; commutator and derived subcrossed modules; etc.[133X687688[33X[0;0YHere we mention two functions for groups which have been extended to the689two-dimensional case.[133X690691[1X2.7-1 IdGroup[101X692693[29X[2XIdGroup[102X( [3X2DimensionalGroup[103X ) [32X operation694[29X[2XStructureDescription[102X( [3X2DimensionalGroup[103X ) [32X operation695696[33X[0;0YThese functions return two-element lists formed by applying the function to697the source and range of the 2d-group.[133X698699[4X[32X Example [32X[104X700[4X[28X[128X[104X701[4X[25Xgap>[125X [27XIdGroup( X2 );[127X[104X702[4X[28X[ [ 24, 6 ], [ 12, 4 ] ][128X[104X703[4X[25Xgap>[125X [27XStructureDescription( C2 );[127X[104X704[4X[28X[ "(S3 x D24) : C2", "D12" ][128X[104X705[4X[28X[128X[104X706[4X[32X[104X707708709710