  
  [1X6 [33X[0;0YGroup theoretic computations[133X[101X
  
  
  [1X6.1 [33X[0;0YThird homotopy group of a supsension of an Eilenberg-MacLane space[133X[101X
  
  [33X[0;0YThe following example uses the nonabelian tensor square of groups to compute
  the third homotopy group[133X
  
  [33X[0;0Y[22Xπ_3(S(K(G,1))) = Z^30[122X[133X
  
  [33X[0;0Yof  the  suspension  of  the  Eigenberg-MacLane  space [22XK(G,1)[122X for [22XG[122X the free
  nilpotent group of class [22X2[122X on four generators.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XF:=FreeGroup(4);;G:=NilpotentQuotient(F,2);;[127X[104X
    [4X[25Xgap>[125X [27XThirdHomotopyGroupOfSuspensionB(G);[127X[104X
    [4X[28X[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, [128X[104X
    [4X[28X  0, 0, 0, 0, 0, 0, 0, 0 ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X6.2 [33X[0;0YRepresentations of knot quandles[133X[101X
  
  [33X[0;0YThe  following example constructs the finitely presented quandles associated
  to  the granny knot and square knot, and then computes the number of quandle
  homomorphisms  from  these  two  finitely  prresented  quandles to the [22X17[122X-th
  quandle  in  [12XHAP[112X's  library of connected quandles of order [22X24[122X. The number of
  homomorphisms  differs  between  the  two  cases.  The computation therefore
  establishes   that  the  complement  in  [22XR^3[122X  of  the  granny  knot  is  not
  homeomorphic to the complement of the square knot.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XQ:=ConnectedQuandle(24,17,"import");;[127X[104X
    [4X[25Xgap>[125X [27XK:=PureCubicalKnot(3,1);;[127X[104X
    [4X[25Xgap>[125X [27XL:=ReflectedCubicalKnot(K);;[127X[104X
    [4X[25Xgap>[125X [27Xsquare:=KnotSum(K,L);;[127X[104X
    [4X[25Xgap>[125X [27Xgranny:=KnotSum(K,K);;[127X[104X
    [4X[25Xgap>[125X [27Xgcsquare:=GaussCodeOfPureCubicalKnot(square);;[127X[104X
    [4X[25Xgap>[125X [27Xgcgranny:=GaussCodeOfPureCubicalKnot(granny);;[127X[104X
    [4X[25Xgap>[125X [27XQsquare:=PresentationKnotQuandle(gcsquare);;[127X[104X
    [4X[25Xgap>[125X [27XQgranny:=PresentationKnotQuandle(gcgranny);;[127X[104X
    [4X[25Xgap>[125X [27XNumberOfHomomorphisms(Qsquare,Q);[127X[104X
    [4X[28X408[128X[104X
    [4X[25Xgap>[125X [27XNumberOfHomomorphisms(Qgranny,Q);[127X[104X
    [4X[28X24[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThe  following  commands  compute  a  knot  quandle directly from a pdf file
  containing the following hand-drawn image of the knot.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27X gc:=ReadLinkImageAsGaussCode("myknot.pdf");[127X[104X
    [4X[28X[ [ [ -2, 4, -1, 3, -3, 2, -4, 1 ] ], [ -1, -1, 1, -1 ] ][128X[104X
    [4X[25Xgap>[125X [27XQ:=PresentationKnotQuandle(gc);[127X[104X
    [4X[28XQuandle presentation of 4 generators and 4 relators.[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X6.3 [33X[0;0YIdentifying knots[133X[101X
  
  [33X[0;0YLow  index subgrops of the knot group can be used to identify knots with few
  crossings.  For instance, the following commands read in the following image
  of  a  knot and identify it as a sum of two trefoils. The commands determine
  the  prime  components  only up to reflection, and so they don't distinguish
  between the granny and square knots.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xgc:=ReadLinkImageAsGaussCode("myknot2.png");[127X[104X
    [4X[28X[ [ [ -4, 7, -5, 4, -7, 5, -3, 6, -2, 3, 8, -8, -6, 2, 1, -1 ] ], [128X[104X
    [4X[28X  [ 1, -1, -1, -1, -1, -1, -1, 1 ] ][128X[104X
    [4X[25Xgap>[125X [27XIdentifyKnot(gc);;[127X[104X
    [4X[28XPrimeKnot(3,1) + PrimeKnot(3,1)    modulo reflections of components. [128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X6.4 [33X[0;0YAspherical [22X2[122X[101X[1X-complexes[133X[101X
  
  [33X[0;0YThe  following  example  uses  Polymake's  linear  programming  routines  to
  establish  that  the [22X2[122X-complex associated to the group presentation [22X<x,y,z :
  xyx=yxy,   yzy=zyz,  xzx=zxz>[122X  is  aspherical  (that  is,  has  contractible
  universal  cover). The presentation is Tietze equivalent to the presentation
  used  in the computer code, and the associated [22X2[122X-complexes are thus homotopy
  equivalent.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XF:=FreeGroup(6);;[127X[104X
    [4X[25Xgap>[125X [27Xx:=F.1;;y:=F.2;;z:=F.3;;a:=F.4;;b:=F.5;;c:=F.6;;[127X[104X
    [4X[25Xgap>[125X [27Xrels:=[a^-1*x*y, b^-1*y*z, c^-1*z*x, a*x*(y*a)^-1,[127X[104X
    [4X[25X>[125X [27X   b*y*(z*b)^-1, c*z*(x*c)^-1];;[127X[104X
    [4X[25Xgap>[125X [27XPrint(IsAspherical(F,rels),"\n");[127X[104X
    [4X[28XPresentation is aspherical.[128X[104X
    [4X[28X[128X[104X
    [4X[28Xtrue[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X6.5 [33X[0;0YGroup presentations and homotopical syzygies[133X[101X
  
  [33X[0;0YFree  resolutons  for a group [22XG[122X are constructed in [12XHAP[112X as the cellular chain
  complex [22XR_∗=C_∗(tilde X)[122X of the universal cover of some CW-complex [22XX=K(G,1)[122X.
  The  [22X2[122X-skeleton of [22XX[122X gives rise to a free presentation for the group [22XG[122X. This
  presentation  depends  on a choice of maximal tree in the [22X1[122X-skeleton of [22XX[122X in
  cases  where  [22XX[122X has more than one [22X0[122X-cell. The attaching maps of [22X3[122X-cells in [22XX[122X
  can  be  regarded  as  [13Xhomotopical  syzygies[113X or van Kampen diagrams over the
  group presentation whose boundaries spell the trivial word.[133X
  
  [33X[0;0YThe  following  example  constructs  four terms of a resolution for the free
  abelian  group [22XG[122X on [22Xn=3[122X generators, and then extracts the group presentation
  from  the resolution as well as the unique homotopical syzygy. The syzygy is
  visualized  in  terms  of  its graph of edges, directed edges being coloured
  according  to  the  corresponding  group  generator.  (In  this  example the
  CW-complex   [22Xtilde  X[122X  is  regular,  but  in  cases  where  it  is  not  the
  visualization may be a quotient of the [22X1[122X-skeleton of the syzygy.)[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xn:=3;;c:=1;;[127X[104X
    [4X[25Xgap>[125X [27XG:=Image(NqEpimorphismNilpotentQuotient(FreeGroup(n),c));;[127X[104X
    [4X[25Xgap>[125X [27XR:=ResolutionNilpotentGroup(G,4);;[127X[104X
    [4X[25Xgap>[125X [27XP:=PresentationOfResolution(R);;[127X[104X
    [4X[25Xgap>[125X [27XP.freeGroup;[127X[104X
    [4X[28X<free group on the generators [ x, y, z ]>[128X[104X
    [4X[25Xgap>[125X [27XP.relators;[127X[104X
    [4X[28X[ y^-1*x^-1*y*x, z^-1*x^-1*z*x, z^-1*y^-1*z*y ][128X[104X
    [4X[25Xgap>[125X [27XIdentityAmongRelatorsDisplay(R,1);[127X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThis homotopical syzygy represents a relationship between the three relators
  [22X[x,y][122X,  [22X[x,z][122X and [22X[y,z][122X where [22X[x,y]=xyx^-1y^-1[122X. The syzygy can be thought of
  as  a  geometric  relationship  between  commutators  corresponding  to  the
  well-known Hall-Witt identity:[133X
  
  [33X[0;0Y[22X[ [x,y], ^yz ] [ [y,z], ^zx ] [ [z,x], ^xy ] = 1 .[122X[133X
  
  [33X[0;0YThe  homotopical syzygy is special since in this example the edge directions
  and  labels  can  be  understood  as specifying three homeomorphisms between
  pairs  of  faces. Viewing the syzygy as the boundary of the [22X3[122X-ball, by using
  the  homeomorphisms  to  identify  the  faces  in each face pair we obtain a
  quotient  CW-complex  [22XM[122X involving one vertex, three edges, three [22X2[122X-cells and
  one  [22X3[122X-cell.  The  cell  structure on the quotient exists because, under the
  restrictions  of  homomorphisms to the edges, any cycle of edges retricts to
  the  identity map on any given edge. The following result tells us that [22XM[122X is
  in fact a closed oriented compact [22X3[122X-manifold.[133X
  
  [33X[0;0Y[12XTheorem.[112X  [Seifert  u.  Threlfall,  Topologie,  p.208]  [13XLet  [22XS^2[122X  denote the
  boundary  of  the  [22X3[122X-ball  [22XB^3[122X  and  suppose  that the sphere [22XS^2[122X is given a
  regular CW-structure in which the faces are partitioned into a collection of
  face  pairs.  Suppose  that  for  each  face  pair  there  is an orientation
  reversing  homeomorphism between the two faces that sends edges to edges and
  vertices to vertices. Suppose that by using these homeomorphisms to identity
  face  pairs  we  obtain  a  (not  necessarily  regular)  CW-structure on the
  quotient  [22XM[122X.  Then  [22XM[122X is a closed compact orientable manifold if and only if
  its Euler characteristic is [22Xχ(M)=0[122X.[113X[133X
  
  [33X[0;0YThe next commands construct a presentation and associated unique homotopical
  syzygy for the free nilpotent group of class [22Xc=2[122X on [22Xn=2[122X generators.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xn:=2;;c:=2;;[127X[104X
    [4X[25Xgap>[125X [27XG:=Image(NqEpimorphismNilpotentQuotient(FreeGroup(n),c));;[127X[104X
    [4X[25Xgap>[125X [27XR:=ResolutionNilpotentGroup(G,4);;[127X[104X
    [4X[25Xgap>[125X [27XP:=PresentationOfResolution(R);;[127X[104X
    [4X[25Xgap>[125X [27XP.freeGroup;[127X[104X
    [4X[28X<free group on the generators [ x, y, z ]>[128X[104X
    [4X[25Xgap>[125X [27XP.relators;[127X[104X
    [4X[28X[ z*x*y*x^-1*y^-1, z*x*z^-1*x^-1, z*y*z^-1*y^-1 ][128X[104X
    [4X[25Xgap>[125X [27XIdentityAmongRelatorsDisplay(R,1);[127X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThe  syzygy  represents the following relationship between commutators (in a
  free group).[133X
  
  [33X[0;0Y[22X[ [x^-1,y][x,y] , [y,x][y^-1,x]y^-1 ] [ [y,x][y^-1,x] , x^-1 ] = 1[122X[133X
  
  [33X[0;0YAgain,  using  the  theorem  of  Seifert  and Threlfall we see that the free
  nilpotent  group  of  class  two on two generators arises as the fundamental
  group of a closed compact orientable [22X3[122X-manifold [22XM[122X.[133X
  
  
  [1X6.6 [33X[0;0YBogomolov multiplier[133X[101X
  
  [33X[0;0YThe  Bogomolov  multiplier of a group is an isoclinism invariant. Using this
  property,  the following example shows that there are precisely three groups
  of  order  [22X243[122X with non-trivial Bogomolov multiplier. The groups in question
  are numbered 28, 29 and 30 in [12XGAP[112X's library of small groups of order [22X243[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XL:=AllSmallGroups(3^5);;[127X[104X
    [4X[25Xgap>[125X [27XC:=IsoclinismClasses(L);;[127X[104X
    [4X[25Xgap>[125X [27Xfor c in C do[127X[104X
    [4X[25X>[125X [27Xif Length(BogomolovMultiplier(c[1]))>0 then[127X[104X
    [4X[25X>[125X [27XPrint(List(c,g->IdGroup(g)),"\n\n\n"); fi;[127X[104X
    [4X[25X>[125X [27Xod;[127X[104X
    [4X[28X[ [ 243, 28 ], [ 243, 29 ], [ 243, 30 ] ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X6.7 [33X[0;0YSecond group cohomology and group extensions[133X[101X
  
  [33X[0;0YAny group extension [22XN↣ E ↠ G[122X gives rise to:[133X
  
  [30X    [33X[0;6Yan outer action [22Xα: G→ Out(N)[122X of [22XG[122X on [22XN[122X.[133X
  
  [30X    [33X[0;6Yan  action  [22XG→  Aut(Z(N))[122X of [22XG[122X on the centre of [22XN[122X, uniquely induced by
        the outer action [22Xα[122X and the canonical action of [22XOut(N)[122X on [22XZ(N)[122X.[133X
  
  [30X    [33X[0;6Ya "[22X2[122X-cocycle" [22Xf: G× G→ N[122X.[133X
  
  [33X[0;0YAny  outer  homomorphism  [22Xα: G→ Out(N)[122X gives rise to a cohomology class [22Xk[122X in
  [22XH^3(G,Z(N))[122X.  It  was  shown  by  Eilenberg  and Mac[22X[122XLane that the class [22Xk[122X is
  trivial  if  and only if the outer action [22Xα[122X arises from some group extension
  [22XN↣  E↠  G[122X. If [22Xk[122X is trivial then there is a (non-canonical) bijection between
  the  second  cohomology  group [22XH^2(G,Z(N))[122X and Yoneda equivalence classes of
  extensions of [22XG[122X by [22XN[122X that are compatible with [22Xα[122X.[133X
  
  [33X[0;0Y[12XFirst Example.[112X[133X
  
  [33X[0;0YConsider  the  group  [22XH=SmallGroup(64,134)[122X.  Consider  the  normal  subgroup
  [22XN=NormalSubgroups(G)[15][122X  and  quotient  group  [22XG=H/N[122X.  We  have [22XN=C_2× D_4[122X,
  [22XA=Z(N)=C_2× C_2[122X and [22XG=C_2× C_2[122X.[133X
  
  [33X[0;0YSuppose  we  wish  to  classify  all extensions [22XC_2× D_4 ↣ E ↠ C_2× C_2[122X that
  induce  the  given outer action of [22XG[122X on [22XN[122X. The following commands show that,
  up to Yoneda equivalence, there are two such extensions.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XH:=SmallGroup(64,134);;[127X[104X
    [4X[25Xgap>[125X [27XN:=NormalSubgroups(H)[15];;[127X[104X
    [4X[25Xgap>[125X [27XA:=Centre(GOuterGroup(H,N));;[127X[104X
    [4X[25Xgap>[125X [27XG:=ActingGroup(A);;[127X[104X
    [4X[25Xgap>[125X [27XR:=ResolutionFiniteGroup(G,3);;[127X[104X
    [4X[25Xgap>[125X [27XC:=HomToGModule(R,A);;[127X[104X
    [4X[25Xgap>[125X [27XCohomology(C,2);[127X[104X
    [4X[28X[ 2 ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThe  following  additional  commands  return  a standard [22X2[122X-cocycle [22Xf:G× G→ A
  =C_2×  C_2[122X  corresponding  to the non-trivial element in [22XH^2(G,A)[122X. The value
  [22Xf(g,h)[122X of the [22X2[122X-cocycle is calculated for all [22X16[122X pairs [22Xg,h ∈ G[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XCH:=CohomologyModule(C,2);;[127X[104X
    [4X[25Xgap>[125X [27XElts:=Elements(ActedGroup(CH));[127X[104X
    [4X[28X[ <identity> of ..., f1 ][128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xx:=Elts[2];;[127X[104X
    [4X[25Xgap>[125X [27Xc:=CH!.representativeCocycle(x);[127X[104X
    [4X[28XStandard 2-cocycle [128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xf:=Mapping(c);;[127X[104X
    [4X[25Xgap>[125X [27Xfor g in G do for h in G do[127X[104X
    [4X[25X>[125X [27XPrint(f(g,h),"\n");[127X[104X
    [4X[25X>[125X [27Xod;[127X[104X
    [4X[25X>[125X [27Xod;[127X[104X
    [4X[28X<identity> of ...[128X[104X
    [4X[28X<identity> of ...[128X[104X
    [4X[28X<identity> of ...[128X[104X
    [4X[28X<identity> of ...[128X[104X
    [4X[28X<identity> of ...[128X[104X
    [4X[28Xf6[128X[104X
    [4X[28X<identity> of ...[128X[104X
    [4X[28Xf6[128X[104X
    [4X[28X<identity> of ...[128X[104X
    [4X[28X<identity> of ...[128X[104X
    [4X[28X<identity> of ...[128X[104X
    [4X[28X<identity> of ...[128X[104X
    [4X[28X<identity> of ...[128X[104X
    [4X[28Xf6[128X[104X
    [4X[28X<identity> of ...[128X[104X
    [4X[28Xf6[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThe  following commands will then construct and identify all extensions of [22XN[122X
  by [22XG[122X corresponding to the given outer action of [22XG[122X on [22XN[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XH := SmallGroup(64,134);;[127X[104X
    [4X[25Xgap>[125X [27XN := NormalSubgroups(H)[15];;[127X[104X
    [4X[25Xgap>[125X [27XON := GOuterGroup(H,N);;[127X[104X
    [4X[25Xgap>[125X [27XA := Centre(ON);;[127X[104X
    [4X[25Xgap>[125X [27XG:=ActingGroup(A);;[127X[104X
    [4X[25Xgap>[125X [27XR:=ResolutionFiniteGroup(G,3);;[127X[104X
    [4X[25Xgap>[125X [27XC:=HomToGModule(R,A);;[127X[104X
    [4X[25Xgap>[125X [27XCH:=CohomologyModule(C,2);;[127X[104X
    [4X[25Xgap>[125X [27XElts:=Elements(ActedGroup(CH));;[127X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xlst := List(Elts{[1..Length(Elts)]},x->CH!.representativeCocycle(x));;[127X[104X
    [4X[25Xgap>[125X [27Xccgrps := List(lst, x->CcGroup(ON, x));;[127X[104X
    [4X[25Xgap>[125X [27X#So ccgrps is a list of groups, each being an extension of G by N, corresponding[127X[104X
    [4X[25Xgap>[125X [27X#to the two elements in H^2(G,A).[127X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27X#The following command produces the GAP identification number for each group.[127X[104X
    [4X[25Xgap>[125X [27XL:=List(ccgrps,IdGroup);[127X[104X
    [4X[28X[ [ 64, 134 ], [ 64, 135 ] ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0Y[12XSecond Example[112X[133X
  
  [33X[0;0YThe  following  example illustrates how to construct a cohomology class [22Xk[122X in
  [22XH^2(G,  A)[122X  from  a  cocycle [22Xf:G × G → A[122X, where [22XG=SL_2( Z_4)[122X and [22XA= Z_8[122X with
  trivial action.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27X#We'll construct G=SL(2,Z_4) as a permutation group.[127X[104X
    [4X[25Xgap>[125X [27XG:=SL(2,ZmodnZ(4));;[127X[104X
    [4X[25Xgap>[125X [27XG:=Image(IsomorphismPermGroup(G));;[127X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27X#We'll construct Z_8=Z/8Z as a G-outer group[127X[104X
    [4X[25Xgap>[125X [27Xz_8:=Group((1,2,3,4,5,6,7,8));;[127X[104X
    [4X[25Xgap>[125X [27XZ_8:=TrivialGModuleAsGOuterGroup(G,z_8);;[127X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27X#We'll compute the group h=H^2(G,Z_8)[127X[104X
    [4X[25Xgap>[125X [27XR:=ResolutionFiniteGroup(G,3);;  #R is a free resolution[127X[104X
    [4X[25Xgap>[125X [27XC:=HomToGModule(R,Z_8);; # C is a chain complex[127X[104X
    [4X[25Xgap>[125X [27XH:=CohomologyModule(C,2);; #H is the second cohomology H^2(G,Z_8)[127X[104X
    [4X[25Xgap>[125X [27Xh:=ActedGroup(H);; #h is the underlying group of H[127X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27X#We'll compute  cocycles c2, c5 for the second and fifth cohomology classs[127X[104X
    [4X[25Xgap>[125X [27Xc2:=H!.representativeCocycle(Elements(h)[2]);[127X[104X
    [4X[28XStandard 2-cocycle [128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xc5:=H!.representativeCocycle(Elements(h)[5]);[127X[104X
    [4X[28XStandard 2-cocycle [128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27X#Now we'll construct the cohomology classes C2, C5 in the group h corresponding to the cocycles c2, c5.[127X[104X
    [4X[25Xgap>[125X [27XC2:=CohomologyClass(H,c2);;[127X[104X
    [4X[25Xgap>[125X [27XC5:=CohomologyClass(H,c5);;[127X[104X
    [4X[28X [128X[104X
    [4X[25Xgap>[125X [27X#Finally, we'll show that C2, C5 are distinct cohomology classes, both of order 4.[127X[104X
    [4X[25Xgap>[125X [27XC2=C5;[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XOrder(C2);[127X[104X
    [4X[28X4[128X[104X
    [4X[25Xgap>[125X [27XOrder(C5);[127X[104X
    [4X[28X4[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X6.8 [33X[0;0YCocyclic groups: a convenient way of representing certain groups[133X[101X
  
  [33X[0;0Y[12XGAP[112X  offers  a number of data types for representing groups, including those
  of   fp-groups   ([13Xfinitely  presented  groups[113X),  pc-groups  ([13Xpower-conjugate
  presentated groups[113X for finite polycyclic groups), pcp-groups ([13Xpolycyclically
  presented  groups[113X  for  finite  and infinite polycyclic groups), permutation
  groups  (for  finite  groups),  and matrix groups over a field or ring. Each
  data type has its advantages and limitations.[133X
  
  [33X[0;0YBased  on  the  definitions  and examples in Section [14X6.7[114X the additional data
  type of a cc-group ([13Xcocyclic group[113X) is provided in [12XHAP[112X. This can be used for
  a  group  [22XE[122X  arising as a group extension [22XN↣ E ↠ G[122X and is a component object
  involving:[133X
  
  [30X    [33X[0;6Y[10XE!.Base[110X consisting of some representation of a group [22XG[122X.[133X
  
  [30X    [33X[0;6Y[10XE!.Fibre[110X consisting of some representation of a group [22XN[122X.[133X
  
  [30X    [33X[0;6Y[10XE!.OuterGroup[110X consisting of an outer action [22Xα: G→ Out(N)[122X of [22XG[122X on [22XN[122X.[133X
  
  [30X    [33X[0;6Y[10XE!.Cocycle[110X consisting of a "[22X2[122X-cocycle" [22Xf: G× G→ N[122X.[133X
  
  [33X[0;0YThe  first  example in Section [14X6.7[114X illustrates the construction of cc-groups
  for  which  both  the  base [22XG[122X and fibre [22XN[122X are finite pc-groups. That example
  extends to any scenario in which the base [22XG[122X is a group for which:[133X
  
  [31X1[131X   [33X[0;6Ywe can construct the first 3 degrees of a free [22XZG[122X-resolution [22XC_∗ X[122X.[133X
  
  [31X2[131X   [33X[0;6Ywe  can  construct  the  first  2 terms of a contracting homotopy [22Xh_i:
        C_nX→ C_n+1X[122X for [22Xi=0,1[122X.[133X
  
  [31X3[131X   [33X[0;6Y[22XN[122X  is  a  group  in which we can multiply elements effectively and for
        which  we  can  determine the centre [22XZ(N)[122X and outer automorphism group
        [22XOut(N)[122X.[133X
  
  [33X[0;0YAs  an  illustration where the base group is a non-solvable finite group and
  the  fibre is the infinite cyclic group, with base group acting trivially on
  the  fibre, the following commands list up to Yoneda equivalence all central
  extensions  [22XZ  ↣  E  ↠  G[122X  for  [22XG=A_5:C_16[122X. The base group is a non-solvable
  semi-direct  product  of  order  [22X960[122X  and thus none of the [22X16[122X extensions are
  polycyclic. The commands classify the extensions according to their integral
  homology in degrees [22X≤ 2[122X, showing that there are precisely 5 such equivalence
  classes of extensions. Thus, there are at least 5 distinct isomorphism types
  among  the  [22X16[122X  extensions.  A  presentation  is  constructed  for the group
  corresponding to the sixteenth extension. The final command lists the orders
  of  the 16 cohomology group elements corresponding to the 16 extensions. The
  16th element has order 1, meaning that the sixteenth extension is the direct
  product [22XC_∞ × A_5:C_16[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG:=SmallGroup(960,637);;[127X[104X
    [4X[25Xgap>[125X [27XStructureDescription(G);[127X[104X
    [4X[28X"A5 : C16"[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XN:=AbelianPcpGroup([0]);;[127X[104X
    [4X[25Xgap>[125X [27XN:=TrivialGModuleAsGOuterGroup(G,N);;[127X[104X
    [4X[25Xgap>[125X [27XR:=ResolutionFiniteGroup(G,3);;[127X[104X
    [4X[25Xgap>[125X [27XC:=HomToGModule(R,N);;[127X[104X
    [4X[25Xgap>[125X [27XCH:=CohomologyModule(C,2);;[127X[104X
    [4X[25Xgap>[125X [27XElts:=Elements(ActedGroup(CH));;[127X[104X
    [4X[25Xgap>[125X [27Xlst := List(Elts{[1..Length(Elts)]},x->CH!.representativeCocycle(x));;[127X[104X
    [4X[25Xgap>[125X [27Xccgrps := List(lst, x->CcGroup(N, x));;[127X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xinv:=function(gg)[127X[104X
    [4X[25X>[125X [27Xlocal T;[127X[104X
    [4X[25X>[125X [27XT:=ResolutionInfiniteCcGroup(gg,3);[127X[104X
    [4X[25X>[125X [27Xreturn List([1..2],i->Homology(TensorWithIntegers(T),i));[127X[104X
    [4X[25X>[125X [27Xend;;[127X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XEquivClasses:=Classify(ccgrps,inv);[127X[104X
    [4X[28X [ <Cc-group of Size infinity>, <Cc-group of Size infinity>, [128X[104X
    [4X[28X      <Cc-group of Size infinity>, <Cc-group of Size infinity>, [128X[104X
    [4X[28X      <Cc-group of Size infinity>, <Cc-group of Size infinity>, [128X[104X
    [4X[28X      <Cc-group of Size infinity>, <Cc-group of Size infinity> ], [128X[104X
    [4X[28X  [ <Cc-group of Size infinity>, <Cc-group of Size infinity>, [128X[104X
    [4X[28X      <Cc-group of Size infinity>, <Cc-group of Size infinity> ], [128X[104X
    [4X[28X  [ <Cc-group of Size infinity>, <Cc-group of Size infinity> ], [128X[104X
    [4X[28X  [ <Cc-group of Size infinity> ], [ <Cc-group of Size infinity> ] ][128X[104X
    [4X[25Xgap>[125X [27XList(EquivClasses,Size);[127X[104X
    [4X[28X[ 8, 4, 2, 1, 1 ][128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XF16:=Image(IsomorphismFpGroup(ccgrps[16]));[127X[104X
    [4X[28X<fp group on the generators [ x, y, z, w, v ]>[128X[104X
    [4X[25Xgap>[125X [27XRelatorsOfFpGroup(F16);[127X[104X
    [4X[28X[ (x^2*y*z*w*z*y)^3*x^2*(y*x*w*y^2*z*x*y*z*y)^3*y*x*w*y^2*z*x*y^2*z*w*y^2*z*y,[128X[104X
    [4X[28X  x*y^-2*w^-1*z^-1*y^-1*x^-1*y, x*z^-1*y^-1*z^-1*w^-1*z^-1*y^-1*x^-1*z, [128X[104X
    [4X[28X  x*y^-2*z^-1*w^-1*z^-1*y^-1*x^-1*w, z^-2, w^-2, y^-3, w*y^-1*w^-1*y^-1, [128X[104X
    [4X[28X  w*z*w^-1*z^-1*w^-1*z, z*y^2*(z^-1*y^-1)^2, v^-1*x^-1*v*x, v*y*v^-1*y^-1, [128X[104X
    [4X[28X  v*z*v^-1*z^-1, v*w*v^-1*w^-1 ][128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XList(Elts,Order);[127X[104X
    [4X[28X[ 16, 16, 16, 16, 16, 16, 16, 16, 8, 8, 8, 8, 4, 4, 2, 1 ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X6.9 [33X[0;0YEffective group presentations[133X[101X
  
  [33X[0;0YFor  any  free [22XZG[122X-resolution [22XR_∗=C_∗ X[122X arising as the cellular chain complex
  of  a contractible CW-complex, the terms in degrees [22X≤ 2[122X correspond to a free
  presentation   for   the  group  [22XG[122X.  The  following  example  accesses  this
  presentation for the group [22XPGL_3( Z[sqrt-1])[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XK:=ContractibleGcomplex("PGL(3,Z[i])");;[127X[104X
    [4X[25Xgap>[125X [27XR:=FreeGResolution(K,2);;[127X[104X
    [4X[25Xgap>[125X [27XP:=PresentationOfResolution(R);;[127X[104X
    [4X[25Xgap>[125X [27XG:=P.freeGroup/P.relators;[127X[104X
    [4X[28X<fp group on the generators [ v, w, x, y, z ]>[128X[104X
    [4X[25Xgap>[125X [27XP.relators;[127X[104X
    [4X[28X[ v^2, w^-1*v*w*v^-1, w^-1*v^-1*w^-1, (x^-1*w)^3, (y^-1*w)^3, (z^-1*w)^4, [128X[104X
    [4X[28X  y^-1*v^-1*z*y^-1*x, y^-1*v*x*v^-1*x*v, v^-1*z*v^-1*x*y, v^-1*x*v*y*v*x*v*y, [128X[104X
    [4X[28X  x^3, x*z*y, y^-1*v^-1*y^2*v*y^-1, (v*y)^4, z^-1*y*v*z^-1, (v*y*z)^2, [128X[104X
    [4X[28X  v^-1*(z*v)^2*z ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThe  homomorphism [22Xh_0: R_0 → R_1[122X of a contracting homotopy provides a unique
  expression  for  each  element  of  [22XG[122X  as  a word in the free generators. To
  illustrate  this,  we  consider  the  Sylow  [22X2[122X-subgroup [22XH=Syl_2(M_24)[122X of the
  Mathieu group [22XM_24[122X. We obtain a resolution [22XR_∗[122X for [22XH[122X by recursively applying
  perturbation  techniques  to  a  composition series for [22XH[122X. Such a resolution
  will yield a "kind of" power-conjugate presentation for [22XH[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XH:=SylowSubgroup(MathieuGroup(24),2);[127X[104X
    [4X[28X<permutation group of size 1024 with 10 generators>[128X[104X
    [4X[25Xgap>[125X [27XOrder(H);[127X[104X
    [4X[28X1024[128X[104X
    [4X[25Xgap>[125X [27XC:=CompositionSeries(H);;[127X[104X
    [4X[25Xgap>[125X [27XR:=ResolutionSubnormalSeries(C,2);;[127X[104X
    [4X[25Xgap>[125X [27XP:=PresentationOfResolution(R);;[127X[104X
    [4X[25Xgap>[125X [27XP.freeGroup/P.relators;[127X[104X
    [4X[28X<fp group on the generators [ q, r, s, t, u, v, w, x, y, z ]>[128X[104X
    [4X[25Xgap>[125X [27XP.relators;[127X[104X
    [4X[28X[ q^-2*z*y*x*w*v, q*r^-1*q^-1*y*u*r, s*q*s^-1*q^-1, t*q*t^-1*q^-1, [128X[104X
    [4X[28X  q*u^-1*q^-1*y*v*u, y*q*v^-1*q^-1, q*w^-1*q^-1*z*x, w*q*x^-1*q^-1, [128X[104X
    [4X[28X  q*y^-1*q^-1*z*v, z*q*z^-1*q^-1, r^-2, t*r*s^-1*r^-1, s*r*t^-1*r^-1, [128X[104X
    [4X[28X  u*r*u^-1*r^-1, v*r*v^-1*r^-1, r*w^-1*r^-1*y*w*u, r*x^-1*r^-1*y*x*u, [128X[104X
    [4X[28X  y*r*y^-1*r^-1, z*r*z^-1*r^-1, s^-2, t*s*t^-1*s^-1, x*s*u^-1*s^-1, [128X[104X
    [4X[28X  s*v^-1*s^-1*z*y*w*u, s*w^-1*s^-1*y*v*u, u*s*x^-1*s^-1, s*y^-1*s^-1*y*x*u, [128X[104X
    [4X[28X  z*s*z^-1*s^-1, t^-2, t*u^-1*t^-1*y*x*u, t*v^-1*t^-1*z*w, t*w^-1*t^-1*z*v, [128X[104X
    [4X[28X  y*t*x^-1*t^-1, x*t*y^-1*t^-1, z*t*z^-1*t^-1, u^-2, v*u*v^-1*u^-1, [128X[104X
    [4X[28X  u*w^-1*u^-1*z*w, x*u*x^-1*u^-1, y*u*y^-1*u^-1, z*u*z^-1*u^-1, v^-2, [128X[104X
    [4X[28X  w*v*w^-1*v^-1, v*x^-1*v^-1*z*x, y*v*y^-1*v^-1, z*v*z^-1*v^-1, w^-2, [128X[104X
    [4X[28X  x*w*x^-1*w^-1, w*y^-1*w^-1*z*y, z*w*z^-1*w^-1, x^-2, y*x*y^-1*x^-1, [128X[104X
    [4X[28X  z*x*z^-1*x^-1, y^-2, z*y*z^-1*y^-1, z^-2 ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThe  following additional commands use the contracting homotopy homomorphism
  [22Xh_0:  R_0→  R_1[122X  to  express  some random elements of [22XH[122X as words in the free
  generators.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xg:=Random(H);[127X[104X
    [4X[28X(1,6)(2,3)(4,9)(5,16)(7,10)(8,21)(11,18)(12,17)(13,19)(14,20)(15,22)(23,24)[128X[104X
    [4X[25Xgap>[125X [27XP.wordInFreeGenerators(g);[127X[104X
    [4X[28Xq^-1*t^-1*x^-1*y^-1[128X[104X
    [4X[25Xgap>[125X [27X[127X[104X
    [4X[25Xgap>[125X [27Xg:=Random(H);[127X[104X
    [4X[28X(1,6)(2,23,10,18)(3,22,19,24)(4,11,15,9)(7,8,21,13)(12,14)[128X[104X
    [4X[25Xgap>[125X [27XP.wordInFreeGenerators(g);[127X[104X
    [4X[28Xq^-1*u^-1*w^-1*x^-1*z^-1[128X[104X
    [4X[25Xgap>[125X [27X[127X[104X
    [4X[25Xgap>[125X [27Xg:=Random(H);[127X[104X
    [4X[28X(1,14,5,17)(2,7,9,19)(3,11,4,22)(6,12,16,20)(8,18,24,15)(10,23,13,21)[128X[104X
    [4X[25Xgap>[125X [27XP.wordInFreeGenerators(g);[127X[104X
    [4X[28Xq^-1*r^-1*t^-1*v^-1*x^-1*z^-1[128X[104X
    [4X[25Xgap>[125X [27X[127X[104X
    [4X[25Xgap>[125X [27Xg:=Random(H);[127X[104X
    [4X[28X(1,14,5,17)(2,21)(3,9)(4,24)(6,12,16,20)(7,11,15,13)(8,23)(10,18,22,19)[128X[104X
    [4X[25Xgap>[125X [27XP.wordInFreeGenerators(g);[127X[104X
    [4X[28Xq^-1*r^-1*t^-1*v^-1*w^-1*z^-1[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YBecause  the  resolution  [22XR_∗[122X  was  obtained  from a composition series, the
  unique  word  associated  to an element [22Xg∈ H[122X always has the form [22Xq^ϵ_1 r^ϵ_2
  s^ϵ_3 t^ϵ_4 u^ϵ_5 v^ϵ_6 w^ϵ_7 x^ϵ_8 y^ϵ_9 z^ϵ_10}[122X determined by the exponent
  vector [22X(ϵ_1,⋯,ϵ_10) ∈ ( Z_2)^10[122X.[133X
  
  
  [1X6.10 [33X[0;0YSecond group cohomology and cocyclic Hadamard matrices[133X[101X
  
  [33X[0;0YAn  [13XHadamard matrix[113X is a square [22Xn× n[122X matrix [22XH[122X whose entries are either [22X+1[122X or
  [22X-1[122X  and  whose  rows are mutually orthogonal, that is [22XH H^t = nI_n[122X where [22XH^t[122X
  denotes the transpose and [22XI_n[122X denotes the [22Xn× n[122X identity matrix.[133X
  
  [33X[0;0YGiven  a group [22XG={g_1,g_2,...,g_n}[122X of order [22Xn[122X and the abelian group [22XA={1,-1}[122X
  of  square  roots  of unity, any [22X2[122X-cocycle [22Xf: G× G→ A[122X corresponds to an [22Xn× n[122X
  matrix  [22XF=(f(g_i,g_j))_1≤  i,j≤ n[122X whose entries are [22X± 1[122X. If [22XF[122X is Hadamard it
  is called a [13Xcocyclic Hadamard matrix[113X corresponding to [22XG[122X.[133X
  
  [33X[0;0YThe following commands compute all [22X192[122X of the cocyclic Hadamard matrices for
  the abelian group [22XG= Z_4⊕ Z_4[122X of order [22Xn=16[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG:=AbelianGroup([4,4]);;[127X[104X
    [4X[25Xgap>[125X [27XF:=CocyclicHadamardMatrices(G);;[127X[104X
    [4X[25Xgap>[125X [27XLength(F);[127X[104X
    [4X[28X192[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X6.11 [33X[0;0YThird group cohomology and homotopy [22X2[122X[101X[1X-types[133X[101X
  
  [33X[0;0Y[12XHomotopy 2-types[112X[133X
  
  [33X[0;0YThe  third  cohomology [22XH^3(G,A)[122X of a group [22XG[122X with coefficients in a [22XG[122X-module
  [22XA[122X,  together  with  the  corresponding  [22X3[122X-cocycles,  can be used to classify
  homotopy  [22X2[122X-types.  A  [13Xhomotopy 2-type[113X is a CW-complex whose homotopy groups
  are  trivial  in dimensions [22Xn=0[122X and [22Xn>2[122X. There is an equivalence between the
  two categories[133X
  
  [31X1[131X   [33X[0;6Y(Homotopy  category  of connected CW-complexes [22XX[122X with trivial homotopy
        groups [22Xπ_n(X)[122X for [22Xn>2[122X)[133X
  
  [31X2[131X   [33X[0;6Y(Localization  of the category of simplicial groups with Moore complex
        of  length  [22X1[122X,  where  localization  is  with respect to homomorphisms
        inducing isomorphisms on homotopy groups)[133X
  
  [33X[0;0Ywhich  reduces  the  homotopy  theory of [22X2[122X-types to a 'computable' algebraic
  theory.  Furthermore,  a simplicial group with Moore complex of length [22X1[122X can
  be represented by a group [22XH[122X endowed with two endomorphisms [22Xs: H→ H[122X and [22Xt: H→
  H[122X satisfying the axioms[133X
  
  [30X    [33X[0;6Y[22Xss=s[122X, [22Xts=s[122X,[133X
  
  [30X    [33X[0;6Y[22Xtt=t[122X, [22Xst=t[122X,[133X
  
  [30X    [33X[0;6Y[22X[ker s, ker t] = 1[122X.[133X
  
  [33X[0;0YThs  triple  [22X(H,s,t)[122X was termed a [13Xcat[22X^1[122X-group[113X by J.-L. Loday since it can be
  regarded as a group [22XH[122X endowed with one compatible category structure.[133X
  
  [33X[0;0YThe   [13Xhomotopy   groups[113X  of  a  cat[22X^1[122X-group  [22XH[122X  are  defined  as:  [22Xπ_1(H)  =
  image(s)/t(ker(s))[122X;  [22Xπ_2(H)=ker(s)  ∩ ker(t)[122X; [22Xπ_n(H)=0[122X for [22Xn> 2[122X or [22Xn=0[122X. Note
  that [22Xπ_2(H)[122X is a [22Xπ_1(H)[122X-module where the action is induced by conjugation in
  [22XH[122X.[133X
  
  [33X[0;0YA homotopy [22X2[122X-type [22XX[122X can be represented by a cat[22X^1[122X-group [22XH[122X or by the homotopy
  groups  [22Xπ_1X=π_1H[122X,  [22Xπ_2X=π_2H[122X and a cohomology class [22Xk∈ H^3(π_1X,π_2X)[122X. This
  class [22Xk[122X is the [13XPostnikov invariant[113X.[133X
  
  [33X[0;0Y[12XRelation to Group Theory[112X[133X
  
  [33X[0;0YA  number  of standard group-theoretic constructions can be viewed naturally
  as a cat[22X^1[122X-group.[133X
  
  [31X1[131X   [33X[0;6YA  [22XZG[122X-module  [22XA[122X  can be viewed as a cat[22X^1[122X-group [22X(H,s,t)[122X where [22XH[122X is the
        semi-direct product [22XA⋊ G[122X and [22Xs(a,g)=(1,g)[122X, [22Xt(a,g)=(1,g)[122X. Here [22Xπ_1(H)=G[122X
        and [22Xπ_2(H)=A[122X.[133X
  
  [31X2[131X   [33X[0;6YA  group  [22XG[122X  with  normal  subgroup  [22XN[122X  can be viewed as a cat[22X^1[122X-group
        [22X(H,s,t)[122X  where  [22XH[122X  is  the  semi-direct product [22XN⋊ G[122X and [22Xs(n,g)=(1,g)[122X,
        [22Xt(n,g)=(1,ng)[122X. Here [22Xπ_1(H)=G/N[122X and [22Xπ_2(H)=0[122X.[133X
  
  [31X3[131X   [33X[0;6YThe  homomorphism  [22Xι  : G→ Aut(G)[122X which sends elements of a group [22XG[122X to
        the  corresponding  inner  automorphism can be viewed as a cat[22X^1[122X-group
        [22X(H,s,t)[122X where [22XH[122X is the semi-direct product [22XG⋊ Aut(G)[122X and [22Xs(g,a)=(1,a)[122X,
        [22Xt(g,a)=(1,ι  (g)a)[122X. Here [22Xπ_1(H)=Out(G)[122X is the outer automorphism group
        of [22XG[122X and [22Xπ_2(H)=Z(G)[122X is the centre of [22XG[122X.[133X
  
  [33X[0;0YThese three constructions are implemented in [12XHAP[112X.[133X
  
  [33X[0;0Y[12XExample[112X[133X
  
  [33X[0;0YThe   following   commands  begin  by  constructing  the  cat[22X^1[122X-group  [22XH[122X  of
  Construction  3  for the group [22XG=SmallGroup(64,134)[122X. They then construct the
  fundamental  group  of  [22XH[122X  and the second homotopy group of as a [22Xπ_1[122X-module.
  These homotopy groups have orders [22X8[122X and [22X2[122X respectively.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG:=SmallGroup(64,134);;[127X[104X
    [4X[25Xgap>[125X [27XH:=AutomorphismGroupAsCatOneGroup(G);;[127X[104X
    [4X[25Xgap>[125X [27Xpi_1:=HomotopyGroup(H,1);;[127X[104X
    [4X[25Xgap>[125X [27Xpi_2:=HomotopyModule(H,2);;[127X[104X
    [4X[25Xgap>[125X [27XOrder(pi_1);[127X[104X
    [4X[28X8[128X[104X
    [4X[25Xgap>[125X [27XOrder(ActedGroup(pi_2));[127X[104X
    [4X[28X2[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThe   following   additional  commands  show  that  there  are  [22X1024[122X  Yoneda
  equivalence  classes  of  cat[22X^1[122X-groups  with  fundamental group [22Xπ_1[122X and [22Xπ_1[122X-
  module equal to [22Xπ_2[122X in our example.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XR:=ResolutionFiniteGroup(pi_1,4);;[127X[104X
    [4X[25Xgap>[125X [27XC:=HomToGModule(R,pi_2);;[127X[104X
    [4X[25Xgap>[125X [27XCH:=CohomologyModule(C,3);;[127X[104X
    [4X[25Xgap>[125X [27XAbelianInvariants(ActedGroup(CH));[127X[104X
    [4X[28X[ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YA  [22X3[122X-cocycle  [22Xf : π_1 × π_1 × π_1 → π_2[122X corresponding to a random cohomology
  class [22Xk∈ H^3(π_1,π_2)[122X can be produced using the following command.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xx:=Random(Elements(ActedGroup(CH)));;[127X[104X
    [4X[25Xgap>[125X [27Xf:=CH!.representativeCocycle(x);[127X[104X
    [4X[28XStandard 3-cocycle [128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThe  [22X3[122X-cocycle  corresponding  to the Postnikov invariant of [22XH[122X itself can be
  easily  constructed directly from its definition in terms of a set-theoretic
  'section' of the crossed module corresponding to [22XH[122X.[133X
  
