  
  [1X1 [33X[0;0YSimplicial complexes & CW complexes[133X[101X
  
  
  [1X1.1 [33X[0;0YThe Klein bottle as a simplicial complex[133X[101X
  
  [33X[0;0YThe  following example constructs the Klein bottle as a simplicial complex [22XK[122X
  on  [22X9[122X  vertices,  and  then constructs the cellular chain complex [22XC_∗=C_∗(K)[122X
  from  which  the integral homology groups [22XH_1(K, Z)= Z_2⊕ Z[122X, [22XH_2(K, Z)=0[122X are
  computed. The chain complex [22XD_∗=C_∗ ⊗_ Z Z_2[122X is also constructed and used to
  compute  the  mod-[22X2[122X homology vector spaces [22XH_1(K, Z_2)= Z_2⊕ Z_2[122X, [22XH_2(K, Z)=
  Z_2[122X.  Finally,  a presentation [22Xπ_1(K) = ⟨ x,y : yxy^-1x⟩[122X is computed for the
  fundamental group of [22XK[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27X2simplices:=[127X[104X
    [4X[25X>[125X [27X[[1,2,5], [2,5,8], [2,3,8], [3,8,9], [1,3,9], [1,4,9],[127X[104X
    [4X[25X>[125X [27X [4,5,8], [4,6,8], [6,8,9], [6,7,9], [4,7,9], [4,5,7],[127X[104X
    [4X[25X>[125X [27X [1,4,6], [1,2,6], [2,6,7], [2,3,7], [3,5,7], [1,3,5]];;[127X[104X
    [4X[25Xgap>[125X [27XK:=SimplicialComplex(2simplices);[127X[104X
    [4X[28XSimplicial complex of dimension 2.[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XC:=ChainComplex(K);[127X[104X
    [4X[28XChain complex of length 2 in characteristic 0 .[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XHomology(C,1);[127X[104X
    [4X[28X[ 2, 0 ][128X[104X
    [4X[25Xgap>[125X [27XHomology(C,2);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XD:=TensorWithIntegersModP(C,2);[127X[104X
    [4X[28XChain complex of length 2 in characteristic 2 .[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XHomology(D,1);[127X[104X
    [4X[28X2[128X[104X
    [4X[25Xgap>[125X [27XHomology(D,2);[127X[104X
    [4X[28X1[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XG:=FundamentalGroup(K);[127X[104X
    [4X[28X<fp group of size infinity on the generators [ f1, f2 ]>[128X[104X
    [4X[25Xgap>[125X [27XRelatorsOfFpGroup(G);[127X[104X
    [4X[28X[ f2*f1*f2^-1*f1 ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X1.2 [33X[0;0YOther simplicial surfaces[133X[101X
  
  [33X[0;0YThe  following  example  constructs  the  real projective plane [22XP[122X, the Klein
  bottle  [22XK[122X and the torus [22XT[122X as simplicial complexes, using the surface genus [22Xg[122X
  as  input  in  the oriented case and [22X-g[122X as input in the unoriented cases. It
  then confirms that the connected sums [22XM=K#P[122X and [22XN=T#P[122X have the same integral
  homology.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XP:=ClosedSurface(-1);[127X[104X
    [4X[28XSimplicial complex of dimension 2.[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XK:=ClosedSurface(-2);[127X[104X
    [4X[28XSimplicial complex of dimension 2.[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XT:=ClosedSurface(1);[127X[104X
    [4X[28XSimplicial complex of dimension 2.[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XM:=ConnectedSum(K,P);[127X[104X
    [4X[28XSimplicial complex of dimension 2.[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XN:=ConnectedSum(T,P);[127X[104X
    [4X[28XSimplicial complex of dimension 2.[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XHomology(M,0);[127X[104X
    [4X[28X[ 0 ][128X[104X
    [4X[25Xgap>[125X [27XHomology(N,0);[127X[104X
    [4X[28X[ 0 ][128X[104X
    [4X[25Xgap>[125X [27XHomology(M,1);[127X[104X
    [4X[28X[ 2, 0, 0 ][128X[104X
    [4X[25Xgap>[125X [27XHomology(N,1);[127X[104X
    [4X[28X[ 2, 0, 0 ][128X[104X
    [4X[25Xgap>[125X [27XHomology(M,2);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[25Xgap>[125X [27XHomology(N,2);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X1.3 [33X[0;0YThe Quillen complex[133X[101X
  
  [33X[0;0YGiven a group [22XG[122X one can consider the partially ordered set [22Xcal A_p(G)[122X of all
  non-trivial elementary abelian [22Xp[122X-subgroups of [22XG[122X, the partial order being set
  inclusion.  The  order  complex [22X∆cal A_p(G)[122X is a simplicial complex which is
  called the [13XQuillen complex [113X.[133X
  
  [33X[0;0YThe  following  example constructs the Quillen complex [22X∆cal A_2(S_7)[122X for the
  symmetric  group of degree [22X7[122X and [22Xp=2[122X. This simplicial complex involves [22X11291[122X
  simplices, of which [22X4410[122X are [22X2[122X-simplices..[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XK:=QuillenComplex(SymmetricGroup(7),2);[127X[104X
    [4X[28XSimplicial complex of dimension 2.[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XSize(K);[127X[104X
    [4X[28X11291[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XK!.nrSimplices(2);[127X[104X
    [4X[28X4410[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X1.4 [33X[0;0YThe Quillen complex as a reduced CW-complex[133X[101X
  
  [33X[0;0YAny  simplicial complex [22XK[122X can be regarded as a regular CW complex. Different
  datatypes  are used in [12XHAP[112X for these two notions. The following continuation
  of  the  above  Quillen  complex  example  constructs a regular CW complex [22XY[122X
  isomorphic  to  (i.e.  with  the  same  face lattice as) [22XK=∆cal A_2(S_7)[122X. An
  advantage  to  working  in  the  category  of CW complexes is that it may be
  possible  to  find  a  CW  complex [22XX[122X homotopy equivalent to [22XY[122X but with fewer
  cells  than  [22XY[122X.  The cellular chain complex [22XC_∗(X)[122X of such a CW complex [22XX[122X is
  computed  by  the  following commands. From the number of free generators of
  [22XC_∗(X)[122X,  which  correspond  to the cells of [22XX[122X, we see that there is a single
  [22X0[122X-cell  and  [22X160[122X  [22X2[122X-cells.  Thus the Quillen complex $$\Delta{\cal A}_2(S_7)
  \simeq \bigvee_{1\le i\le 160} S^2$$ has the homotopy type of a wedge of [22X160[122X
  [22X2[122X-spheres.  This  homotopy  equivalence is given in [Kso00, (15.1)] where it
  was obtained by purely theoretical methods.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XY:=RegularCWComplex(K);[127X[104X
    [4X[28XRegular CW-complex of dimension 2[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XC:=ChainComplex(Y);[127X[104X
    [4X[28XChain complex of length 2 in characteristic 0 . [128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XC!.dimension(0);[127X[104X
    [4X[28X1[128X[104X
    [4X[25Xgap>[125X [27XC!.dimension(1);[127X[104X
    [4X[28X0[128X[104X
    [4X[25Xgap>[125X [27XC!.dimension(2);[127X[104X
    [4X[28X160[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X1.5 [33X[0;0YSimple homotopy equivalences[133X[101X
  
  [33X[0;0YFor  any regular CW complex [22XY[122X one can look for a sequence of simple homotopy
  collapses  [22XY↘  Y_1  ↘  Y_2  ↘  ...  ↘  Y_N=X[122X with [22XX[122X a smaller, and typically
  non-regular,  CW complex. Such a sequence of collapses can be recorded using
  what  is  now  known  as a [13Xdiscrete vector field[113X on [22XY[122X. The sequence can, for
  example,  be  used  to produce a chain homotopy equivalence [22Xf: C_∗ Y → C_∗ X[122X
  and   its   chain   homotopy  inverse  [22Xg:  C_∗  X  →  C_∗  Y[122X.  The  function
  [10XChainComplex(Y)[110X  returns  the  cellular  chain  complex  [22XC_∗(X)[122X,  wheras the
  function [10XChainComplexOfRegularCWComplex(Y)[110X returns the chain complex [22XC_∗(Y)[122X.[133X
  
  [33X[0;0YFor the above Quillen complex [22XY=∆cal A_2(S_7)[122X the following commands produce
  the  chain  homotopy  equivalence [22Xf: C_∗ Y → C_∗ X[122X and [22Xg: C_∗ X → C_∗ Y[122X. The
  number  of  generators  of  [22XC_∗  Y[122X  equals  the number of cells of [22XY[122X in each
  degree, and this number is listed for each degree.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XK:=QuillenComplex(SymmetricGroup(7),2);;[127X[104X
    [4X[25Xgap>[125X [27XY:=RegularCWComplex(K);;[127X[104X
    [4X[25Xgap>[125X [27XCY:=ChainComplexOfRegularCWComplex(Y);[127X[104X
    [4X[28XChain complex of length 2 in characteristic 0 . [128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XCX:=ChainComplex(Y);[127X[104X
    [4X[28XChain complex of length 2 in characteristic 0 . [128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xequiv:=ChainComplexEquivalenceOfRegularCWComplex(Y);;[127X[104X
    [4X[25Xgap>[125X [27Xf:=equiv[1];[127X[104X
    [4X[28XChain Map between complexes of length 2 . [128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xg:=equiv[2];[127X[104X
    [4X[28XChain Map between complexes of length 2 .[128X[104X
    [4X[28X[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XCY!.dimension(0);[127X[104X
    [4X[28X1316[128X[104X
    [4X[25Xgap>[125X [27XCY!.dimension(1);[127X[104X
    [4X[28X5565[128X[104X
    [4X[25Xgap>[125X [27XCY!.dimension(2);[127X[104X
    [4X[28X4410[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X1.6 [33X[0;0YCellular simplifications preserving homeomorphism type[133X[101X
  
  [33X[0;0YFor some purposes one might need to simplify the cell structure on a regular
  CW-complex [22XY[122X so as to obtained a homeomorphic CW-complex [22XW[122X with fewer cells.[133X
  
  [33X[0;0YThe   following   commands   load   a  [22X4[122X-dimensional  simplicial  complex  [22XY[122X
  representing  the K3 complex surface. Its simplicial structure is taken from
  [SK11]  and  involves  [22X1704[122X  cells  of various dimensions. The commands then
  convert  the cell structure into that of a homeomorphic regular CW-complex [22XW[122X
  involving [22X774[122X cells.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XY:=RegularCWComplex(SimplicialK3Surface());[127X[104X
    [4X[28XRegular CW-complex of dimension 4[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XSize(Y);[127X[104X
    [4X[28X1704[128X[104X
    [4X[25Xgap>[125X [27XW:=SimplifiedComplex(Y);[127X[104X
    [4X[28XRegular CW-complex of dimension 4[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XSize(W);[127X[104X
    [4X[28X774[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X1.7 [33X[0;0YConstructing a CW-structure on a knot complement[133X[101X
  
  [33X[0;0YThe following commands construct the complement [22XM=S^3∖ K[122X of the trefoil knot
  [22XK[122X.  This  complement is returned as a [22X3[122X-manifold [22XM[122X with regular CW-structure
  involving four [22X3[122X-cells.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xarc:=ArcPresentation(PureCubicalKnot(3,1));[127X[104X
    [4X[28X[ [ 2, 5 ], [ 1, 3 ], [ 2, 4 ], [ 3, 5 ], [ 1, 4 ] ][128X[104X
    [4X[25Xgap>[125X [27XS:=SphericalKnotComplement(arc);[127X[104X
    [4X[28XRegular CW-complex of dimension 3[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XS!.nrCells(3);[127X[104X
    [4X[28X4[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThe following additional commands then show that [22XM[122X is homotopy equivalent to
  a  reduced CW-complex [22XY[122X of dimension [22X2[122X involving one [22X0[122X-cell, two [22X1[122X-cells and
  one [22X2[122X-cell. The fundamental group of [22XY[122X is computed and used to calculate the
  Alexander polynomial of the trefoil knot.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XY:=ContractedComplex(S);[127X[104X
    [4X[28XRegular CW-complex of dimension 2[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XCriticalCells(Y);[127X[104X
    [4X[28X[ [ 2, 1 ], [ 1, 9 ], [ 1, 11 ], [ 0, 22 ] ][128X[104X
    [4X[25Xgap>[125X [27XG:=FundamentalGroup(Y);;[127X[104X
    [4X[25Xgap>[125X [27XAlexanderPolynomial(G);[127X[104X
    [4X[28Xx_1^2-x_1+1[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X1.8 [33X[0;0YConstructing a regular CW-complex by attaching cells[133X[101X
  
  [33X[0;0YThe   following  example  creates  the  projective  plane  [22XY[122X  as  a  regular
  CW-complex,  and  tests that it has the correct integral homology [22XH_0(Y, Z)=
  Z[122X, [22XH_1(Y, Z)= Z_2[122X, [22XH_2(Y, Z)=0[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xattch:=RegularCWComplex_AttachCellDestructive;; #Function for attaching cells[127X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XY:=RegularCWDiscreteSpace(3); #Discrete CW-complex consisting of points {1,2,3}[127X[104X
    [4X[28XRegular CW-complex of dimension 0[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xe1:=attch(Y,1,[1,2]);; #Attach 1-cell[127X[104X
    [4X[25Xgap>[125X [27Xe2:=attch(Y,1,[1,2]);; #Attach 1-cell[127X[104X
    [4X[25Xgap>[125X [27Xe3:=attch(Y,1,[1,3]);; #Attach 1-cell[127X[104X
    [4X[25Xgap>[125X [27Xe4:=attch(Y,1,[1,3]);; #Attach 1-cell[127X[104X
    [4X[25Xgap>[125X [27Xe5:=attch(Y,1,[2,3]);; #Attach 1-cell[127X[104X
    [4X[25Xgap>[125X [27Xe6:=attch(Y,1,[2,3]);; #Attach 1-cell[127X[104X
    [4X[25Xgap>[125X [27Xf1:=attch(Y,2,[e1,e3,e5]);; #Attach 2-cell[127X[104X
    [4X[25Xgap>[125X [27Xf2:=attch(Y,2,[e2,e4,e5]);; #Attach 2-cell[127X[104X
    [4X[25Xgap>[125X [27Xf3:=attch(Y,2,[e2,e3,e6]);; #Attach 2-cell[127X[104X
    [4X[25Xgap>[125X [27Xf4:=attch(Y,2,[e1,e4,e6]);; #Attach 2-cell[127X[104X
    [4X[25Xgap>[125X [27XHomology(Y,0);[127X[104X
    [4X[28X[ 0 ][128X[104X
    [4X[25Xgap>[125X [27XHomology(Y,1);[127X[104X
    [4X[28X[ 2 ][128X[104X
    [4X[25Xgap>[125X [27XHomology(Y,2);[127X[104X
    [4X[28X[  ]`[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThe  following  example  creates  a  2-complex  [22XK[122X corresponding to the group
  presentation[133X
  
  [33X[0;0Y[22XG=⟨ x,y,z : xyx^-1y^-1=1, yzy^-1z^-1=1, zxz^-1x^-1=1⟩[122X.[133X
  
  [33X[0;0YThe  complex  is  shown  to  have the correct fundamental group and homology
  (since it is the 2-skeleton of the 3-torus [22XS^1× S^1× S^1[122X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS1:=RegularCWSphere(1);;[127X[104X
    [4X[25Xgap>[125X [27XW:=WedgeSum(S1,S1,S1);;[127X[104X
    [4X[25Xgap>[125X [27XF:=FundamentalGroupWithPathReps(W);; x:=F.1;;y:=F.2;;z:=F.3;;[127X[104X
    [4X[25Xgap>[125X [27XK:=RegularCWComplexWithAttachedRelatorCells(W,F,Comm(x,y),Comm(y,z),Comm(x,z));[127X[104X
    [4X[28XRegular CW-complex of dimension 2[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XG:=FundamentalGroup(K);[127X[104X
    [4X[28X<fp group on the generators [ f1, f2, f3 ]>[128X[104X
    [4X[25Xgap>[125X [27XRelatorsOfFpGroup(G);[127X[104X
    [4X[28X[ f2^-1*f1*f2*f1^-1, f1^-1*f3*f1*f3^-1, f2^-1*f3*f2*f3^-1 ][128X[104X
    [4X[25Xgap>[125X [27XHomology(K,1);[127X[104X
    [4X[28X[ 0, 0, 0 ][128X[104X
    [4X[25Xgap>[125X [27XHomology(K,2);[127X[104X
    [4X[28X[ 0, 0, 0 ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X1.9 [33X[0;0YConstructing a regular CW-complex from its face lattice[133X[101X
  
  [33X[0;0YThe  following  example  creats  a  [22X2[122X-dimensional  annulus  [22XA[122X  as  a regular
  CW-complex, and testing that it has the correct integral homology [22XH_0(A, Z)=
  Z[122X, [22XH_1(A, Z)= Z[122X, [22XH_2(A, Z)=0[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XFL:=[];; #The face lattice[127X[104X
    [4X[25Xgap>[125X [27XFL[1]:=[[1,0],[1,0],[1,0],[1,0]];;[127X[104X
    [4X[25Xgap>[125X [27XFL[2]:=[[2,1,2],[2,3,4],[2,1,4],[2,2,3],[2,1,4],[2,2,3]];;[127X[104X
    [4X[25Xgap>[125X [27XFL[3]:=[[4,1,2,3,4],[4,1,2,5,6]];;[127X[104X
    [4X[25Xgap>[125X [27XFL[4]:=[];;[127X[104X
    [4X[25Xgap>[125X [27XA:=RegularCWComplex(FL);[127X[104X
    [4X[28XRegular CW-complex of dimension 2[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XHomology(A,0);[127X[104X
    [4X[28X[ 0 ][128X[104X
    [4X[25Xgap>[125X [27XHomology(A,1);[127X[104X
    [4X[28X[ 0 ][128X[104X
    [4X[25Xgap>[125X [27XHomology(A,2);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[28X[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YNext  we  construct the direct product [22XY=A× A× A× A× A[122X of five copies of the
  annulus. This is a [22X10[122X-dimensional CW complex involving [22X248832[122X cells. It will
  be  homotopy equivalent [22XY≃ X[122X to a CW complex [22XX[122X involving fewer cells. The CW
  complex  [22XX[122X  may  be  non-regular.  We compute the cochain complex [22XD_∗ = Hom_
  Z(C_∗(X), Z)[122X from which the cohomology groups[133X
  [33X[0;0Y[22XH^0(Y, Z)= Z[122X,[133X
  [33X[0;0Y[22XH^1(Y, Z)= Z^5[122X,[133X
  [33X[0;0Y[22XH^2(Y, Z)= Z^10[122X,[133X
  [33X[0;0Y[22XH^3(Y, Z)= Z^10[122X,[133X
  [33X[0;0Y[22XH^4(Y, Z)= Z^5[122X,[133X
  [33X[0;0Y[22XH^5(Y, Z)= Z[122X,[133X
  [33X[0;0Y[22XH^6(Y, Z)=0[122X[133X
  [33X[0;0Yare obtained.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XY:=DirectProduct(A,A,A,A,A);[127X[104X
    [4X[28XRegular CW-complex of dimension 10[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XSize(Y);[127X[104X
    [4X[28X248832[128X[104X
    [4X[25Xgap>[125X [27XC:=ChainComplex(Y);[127X[104X
    [4X[28XChain complex of length 10 in characteristic 0 . [128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XD:=HomToIntegers(C);[127X[104X
    [4X[28XCochain complex of length 10 in characteristic 0 . [128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XCohomology(D,0);[127X[104X
    [4X[28X[ 0 ][128X[104X
    [4X[25Xgap>[125X [27XCohomology(D,1);[127X[104X
    [4X[28X[ 0, 0, 0, 0, 0 ][128X[104X
    [4X[25Xgap>[125X [27XCohomology(D,2);[127X[104X
    [4X[28X[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ][128X[104X
    [4X[25Xgap>[125X [27XCohomology(D,3);[127X[104X
    [4X[28X[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ][128X[104X
    [4X[25Xgap>[125X [27XCohomology(D,4);[127X[104X
    [4X[28X[ 0, 0, 0, 0, 0 ][128X[104X
    [4X[25Xgap>[125X [27XCohomology(D,5);[127X[104X
    [4X[28X[ 0 ][128X[104X
    [4X[25Xgap>[125X [27XCohomology(D,6);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[28X[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X1.10 [33X[0;0YCup products[133X[101X
  
  [33X[0;0Y[12XStrategy 1: Use geometric group theory in low dimensions.[112X[133X
  
  [33X[0;0YContinuing  with  the  previous  example,  we  consider  the first and fifth
  generators  [22Xg_1^1,  g_5^1∈  H^1(Y,  Z)  =  Z^5[122X  and establish that their cup
  product  [22Xg_1^1  ∪  g_5^1  = - g_7^2 ∈ H^2(Y, Z) = Z^10[122X is equal to minus the
  seventh generator of [22XH^2(Y, Z)[122X. We also verify that [22Xg_5^1∪ g_1^1 = - g_1^1 ∪
  g_5^1[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xcup11:=CupProduct(FundamentalGroup(Y));[127X[104X
    [4X[28Xfunction( a, b ) ... end[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xcup11([1,0,0,0,0],[0,0,0,0,1]);[127X[104X
    [4X[28X[ 0, 0, 0, 0, 0, 0, -1, 0, 0, 0 ][128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xcup11([0,0,0,0,1],[1,0,0,0,0]);[127X[104X
    [4X[28X[ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 ][128X[104X
    [4X[28X[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThis   computation   of  low-dimensional  cup  products  is  achieved  using
  group-theoretic  methods  to  approximate  the  diagonal map [22X∆ : Y → Y× Y[122X in
  dimensions  [22X≤  2[122X.  In  order to construct cup products in higher degrees [12XHAP[112X
  invokes three further strategies.[133X
  
  [33X[0;0Y[12XStrategy 2: implement the Alexander-Whitney map for simplicial complexes.[112X[133X
  
  [33X[0;0YFor  simplicial  complexes the cup product is implemented using the standard
  formula   for  the  Alexander-Whitney  chain  map,  together  with  homotopy
  equivalences to improve efficiency.[133X
  
  [33X[0;0YAs  a  first  example, the following commands construct simplicial complexes
  [22XK=(  S^1  × S^1) # ( S^1 × S^1)[122X and [22XL=( S^1 × S^1) ∨ S^1 ∨ S^1[122X and establish
  that  they  have  the  same cohomology groups. It is then shown that the cup
  products [22X∪_K: H^2(K, Z)× H^2(K, Z) → H^4(K, Z)[122X and [22X∪_L: H^2(L, Z)× H^2(L, Z)
  → H^4(L, Z)[122X are antisymmetric bilinear forms of different ranks; hence [22XK[122X and
  [22XL[122X have different homotopy types.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XK:=ClosedSurface(2);[127X[104X
    [4X[28XSimplicial complex of dimension 2.[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XL:=WedgeSum(WedgeSum(ClosedSurface(1),Sphere(1)),Sphere(1));[127X[104X
    [4X[28XSimplicial complex of dimension 2.[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XCohomology(K,0);Cohomology(L,0);[127X[104X
    [4X[28X[ 0 ][128X[104X
    [4X[28X[ 0 ][128X[104X
    [4X[25Xgap>[125X [27XCohomology(K,1);Cohomology(L,1);[127X[104X
    [4X[28X[ 0, 0, 0, 0 ][128X[104X
    [4X[28X[ 0, 0, 0, 0 ][128X[104X
    [4X[25Xgap>[125X [27XCohomology(K,2);Cohomology(L,2);[127X[104X
    [4X[28X[ 0 ][128X[104X
    [4X[28X[ 0 ][128X[104X
    [4X[25Xgap>[125X [27Xgens:=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]];;[127X[104X
    [4X[25Xgap>[125X [27XcupK:=CupProduct(K);;[127X[104X
    [4X[25Xgap>[125X [27XcupL:=CupProduct(L);;[127X[104X
    [4X[25Xgap>[125X [27XA:=NullMat(4,4);;B:=NullMat(4,4);;[127X[104X
    [4X[25Xgap>[125X [27Xfor i in [1..4] do[127X[104X
    [4X[25X>[125X [27Xfor j in [1..4] do[127X[104X
    [4X[25X>[125X [27XA[i][j]:=cupK(1,1,gens[i],gens[j])[1];[127X[104X
    [4X[25X>[125X [27XB[i][j]:=cupL(1,1,gens[i],gens[j])[1];[127X[104X
    [4X[25X>[125X [27Xod;od;[127X[104X
    [4X[25Xgap>[125X [27XDisplay(A);[127X[104X
    [4X[28X[ [   0,   0,   0,   1 ],[128X[104X
    [4X[28X  [   0,   0,   1,   0 ],[128X[104X
    [4X[28X  [   0,  -1,   0,   0 ],[128X[104X
    [4X[28X  [  -1,   0,   0,   0 ] ][128X[104X
    [4X[25Xgap>[125X [27XDisplay(B);[127X[104X
    [4X[28X[ [   0,   1,   0,   0 ],[128X[104X
    [4X[28X  [  -1,   0,   0,   0 ],[128X[104X
    [4X[28X  [   0,   0,   0,   0 ],[128X[104X
    [4X[28X  [   0,   0,   0,   0 ] ][128X[104X
    [4X[25Xgap>[125X [27XRank(A);[127X[104X
    [4X[28X4[128X[104X
    [4X[25Xgap>[125X [27XRank(B);[127X[104X
    [4X[28X2[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YAs  a  second  example  of  the  computation of cups products, the following
  commands  construct the connected sums [22XV=M# M[122X and [22XW=M# overline M[122X where [22XM[122X is
  the  [22XK3[122X  complex  surface  which  is  stored as a pure simplicial complex of
  dimension  4 and where [22Xoverline M[122X denotes the opposite orientation on [22XM[122X. The
  simplicial  structure  on  the [22XK3[122X surface is taken from [SK11]. The commands
  then  show  that  [22XH^2(V,  Z)=H^2(W, Z)= Z^44[122X and [22XH^4(V, Z)=H^4(W, Z)= Z[122X. The
  final  commands  compute the matrix [22XAV=(x∪ y)[122X as [22Xx,y[122X range over a generating
  set  for [22XH^2(V, Z)[122X and the corresponding matrix [22XAW[122X for [22XW[122X. These two matrices
  are  seen  to  have a different number of positive eigenvalues from which we
  can conclude that [22XV[122X is not homotopy equivalent to [22XW[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XM:=SimplicialK3Surface();;[127X[104X
    [4X[25Xgap>[125X [27XV:=ConnectedSum(M,M,+1);[127X[104X
    [4X[28XSimplicial complex of dimension 4.[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XW:=ConnectedSum(M,M,-1);[127X[104X
    [4X[28XSimplicial complex of dimension 4.[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XCohomology(V,2);[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, 0, 0, 0, [128X[104X
    [4X[28X  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ][128X[104X
    [4X[25Xgap>[125X [27XCohomology(W,2);[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, 0, 0, 0, [128X[104X
    [4X[28X  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ][128X[104X
    [4X[25Xgap>[125X [27XCohomology(V,4);[127X[104X
    [4X[28X[ 0 ][128X[104X
    [4X[25Xgap>[125X [27XCohomology(W,4);[127X[104X
    [4X[28X[ 0 ][128X[104X
    [4X[25Xgap>[125X [27XcupV:=CupProduct(V);;[127X[104X
    [4X[25Xgap>[125X [27XcupW:=CupProduct(W);;[127X[104X
    [4X[25Xgap>[125X [27XAV:=NullMat(44,44);;      [127X[104X
    [4X[25Xgap>[125X [27XAW:=NullMat(44,44);;[127X[104X
    [4X[25Xgap>[125X [27Xgens:=IdentityMat(44);;[127X[104X
    [4X[25Xgap>[125X [27Xfor i in [1..44] do[127X[104X
    [4X[25X>[125X [27Xfor j in [1..44] do[127X[104X
    [4X[25X>[125X [27XAV[i][j]:=cupV(2,2,gens[i],gens[j])[1];                               [127X[104X
    [4X[25X>[125X [27XAW[i][j]:=cupW(2,2,gens[i],gens[j])[1];[127X[104X
    [4X[25X>[125X [27Xod;od;                                 [127X[104X
    [4X[25Xgap>[125X [27XSignatureOfSymmetricMatrix(AV);[127X[104X
    [4X[28Xrec( determinant := 1, negative_eigenvalues := 22, positive_eigenvalues := 22,[128X[104X
    [4X[28X  zero_eigenvalues := 0 )[128X[104X
    [4X[25Xgap>[125X [27XSignatureOfSymmetricMatrix(AW);[127X[104X
    [4X[28Xrec( determinant := 1, negative_eigenvalues := 6, positive_eigenvalues := 38, [128X[104X
    [4X[28X  zero_eigenvalues := 0 )[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YA  cubical  cubical  version  of the Alexander-Whitney formula, due to J.-P.
  Serre,  could  be  used  for  computing  the  cohomology  ring  of a regular
  CW-complex  whose  cells all have a cubical combinatorial face lattice. This
  has  not  been  implemented  in  HAP.  However,  the  following more general
  approach has been implemented.[133X
  
  [33X[0;0Y[12XStrategy  3:  Implement  a  cellular approximation to the diagonal map on an
  arbitrary finite regular CW-complex.[112X[133X
  
  [33X[0;0YThe  following  example  calculates  the  cup product [22XH^2(W, Z)× H^2(W, Z) →
  H^4(W,  Z)[122X  for  the [22X4[122X-dimensional orientable manifold [22XW=M× M[122X where [22XM[122X is the
  closed surface of genus [22X2[122X. The manifold [22XW[122X is stored as a regular CW-complex.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XM:=RegularCWComplex(ClosedSurface(2));;[127X[104X
    [4X[25Xgap>[125X [27XW:=DirectProduct(M,M);[127X[104X
    [4X[28XRegular CW-complex of dimension 4[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XSize(W);[127X[104X
    [4X[28X5776[128X[104X
    [4X[25Xgap>[125X [27XW:=SimplifiedComplex(W);;[127X[104X
    [4X[25Xgap>[125X [27XSize(W);                                [127X[104X
    [4X[28X1024[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XHomology(W,2);           [127X[104X
    [4X[28X[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ][128X[104X
    [4X[25Xgap>[125X [27XHomology(W,4);[127X[104X
    [4X[28X[ 0 ][128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xcup:=CupProduct(W);;[127X[104X
    [4X[25Xgap>[125X [27XSecondCohomologtGens:=IdentityMat(18);;   [127X[104X
    [4X[25Xgap>[125X [27XA:=NullMat(18,18);;[127X[104X
    [4X[25Xgap>[125X [27Xfor i in [1..18] do[127X[104X
    [4X[25X>[125X [27Xfor j in [1..18] do[127X[104X
    [4X[25X>[125X [27XA[i][j]:=cup(2,2,SecondCohomologtGens[i],SecondCohomologtGens[j])[1];[127X[104X
    [4X[25X>[125X [27Xod;od;[127X[104X
    [4X[25Xgap>[125X [27XDisplay(A);[127X[104X
    [4X[28X[ [    0,   -1,    0,    0,    0,    0,    3,   -2,    0,    0,    0,    1,   -1,    0,    0,    1,    0,    0 ],[128X[104X
    [4X[28X  [   -1,  -10,    1,    2,   -2,    1,    6,   -1,    0,   -3,    4,   -1,   -1,   -1,    4,   -2,   -2,    0 ],[128X[104X
    [4X[28X  [    0,    1,   -2,    1,    0,   -1,    0,    0,    1,    0,   -1,    1,    0,    0,    1,   -1,    0,    0 ],[128X[104X
    [4X[28X  [    0,    2,    1,   -2,    1,    0,    0,   -1,    0,    1,    0,    0,    0,    0,   -1,    2,    0,    0 ],[128X[104X
    [4X[28X  [    0,   -2,    0,    1,    0,    0,    1,   -1,    0,    0,   -1,    0,    0,    0,    0,   -1,    0,    0 ],[128X[104X
    [4X[28X  [    0,    1,   -1,    0,    0,    0,    0,    1,   -1,    1,    0,    0,    0,    0,    1,   -1,    0,    0 ],[128X[104X
    [4X[28X  [    3,    6,    0,    0,    1,    0,   -4,    0,   -1,    2,    4,   -5,    2,   -1,    1,    0,    3,    0 ],[128X[104X
    [4X[28X  [   -2,   -1,    0,   -1,   -1,    1,    0,    4,   -2,    0,    0,    3,   -1,    1,   -1,    0,   -2,    0 ],[128X[104X
    [4X[28X  [    0,    0,    1,    0,    0,   -1,   -1,   -2,    4,   -3,  -10,    1,    0,    0,   -3,    3,    0,    0 ],[128X[104X
    [4X[28X  [    0,   -3,    0,    1,    0,    1,    2,    0,   -3,    2,    3,    0,    0,    0,    1,   -3,    0,    0 ],[128X[104X
    [4X[28X  [    0,    4,   -1,    0,   -1,    0,    4,    0,  -10,    3,   18,    1,    0,    0,    0,    4,    0,    1 ],[128X[104X
    [4X[28X  [    1,   -1,    1,    0,    0,    0,   -5,    3,    1,    0,    1,    0,    0,    0,   -2,   -1,   -1,    0 ],[128X[104X
    [4X[28X  [   -1,   -1,    0,    0,    0,    0,    2,   -1,    0,    0,    0,    0,    0,    0,    1,    0,    0,    0 ],[128X[104X
    [4X[28X  [    0,   -1,    0,    0,    0,    0,   -1,    1,    0,    0,    0,    0,    0,    0,    0,   -1,   -1,    0 ],[128X[104X
    [4X[28X  [    0,    4,    1,   -1,    0,    1,    1,   -1,   -3,    1,    0,   -2,    1,    0,    0,    2,    2,    0 ],[128X[104X
    [4X[28X  [    1,   -2,   -1,    2,   -1,   -1,    0,    0,    3,   -3,    4,   -1,    0,   -1,    2,    0,    0,    0 ],[128X[104X
    [4X[28X  [    0,   -2,    0,    0,    0,    0,    3,   -2,    0,    0,    0,   -1,    0,   -1,    2,    0,    0,    0 ],[128X[104X
    [4X[28X  [    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    1,    0,    0,    0,    0,    0,    0,    0 ] ][128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XSignatureOfSymmetricMatrix(A);[127X[104X
    [4X[28Xrec( determinant := -1, negative_eigenvalues := 9, positive_eigenvalues := 9,[128X[104X
    [4X[28X  zero_eigenvalues := 0 )[128X[104X
    [4X[28X[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThe  matrix  [22XA[122X representing the cup product [22XH^2(W, Z)× H^2(W, Z) → H^4(W, Z)[122X
  is shown to have [22X9[122X positive eigenvalues, [22X9[122X negative eigenvalues, and no zero
  eigenvalue.[133X
  
  [33X[0;0Y[12XStrategy 4: Guess and verify a cellular approximation to the diagonal map.[112X[133X
  
  [33X[0;0YMany  naturally occuring cell structures are neither simplicial nor cubical.
  For  a  general  regular  CW-complex  we can attempt to construct a cellular
  inclusion  [22Xoverline  Y  ↪  Y×  Y[122X  with  [22X{(y,y)  : y∈ Y}⊂ overline Y[122X and with
  projection [22Xp: overline Y ↠ Y[122X that induces isomorphisms on integral homology.
  The  function [10XDiagonalApproximation(Y)[110X constructs a candidate inclusion, but
  the  projection  [22Xp:  overline  Y  ↠  Y[122X  needs  to  be  tested  for  homology
  equivalence.  If  the candidate inclusion passes this test then the function
  [10XCupProductOfRegularCWComplex_alt(Y)[110X,  involving  the candidate space, can be
  used  for  cup  products.  (I  think  the  test  is  passed  for all regular
  CW-complexes  that  are  subcomplexes of some Euclidean space with all cells
  convex polytopes -- but a proof needs to be written down!)[133X
  
  [33X[0;0YThe  following  example  calculates  [22Xg_1^2  ∪ g_2^2 ne 0[122X where [22XY=T× T[122X is the
  direct  product  of  two  copies  of  a  simplicial torus [22XT[122X, and where [22Xg_k^n[122X
  denotes  the [22Xk[122X-th generator in some basis of [22XH^n(Y, Z)[122X. The direct product [22XY[122X
  is a CW-complex which is not a simplicial complex.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XK:=RegularCWComplex(ClosedSurface(1));;[127X[104X
    [4X[25Xgap>[125X [27XY:=DirectProduct(K,K);;[127X[104X
    [4X[25Xgap>[125X [27Xcup:=CupProductOfRegularCWComplex_alt(Y);;[127X[104X
    [4X[25Xgap>[125X [27Xcup(2,2,[1,0,0,0,0,0],[0,1,0,0,0,0]);[127X[104X
    [4X[28X[ 5 ][128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XD:=DiagonalApproximation(Y);;[127X[104X
    [4X[25Xgap>[125X [27Xp:=D!.projection;[127X[104X
    [4X[28XMap of regular CW-complexes[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XP:=ChainMap(p);[127X[104X
    [4X[28XChain Map between complexes of length 4 . [128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XIsIsomorphismOfAbelianFpGroups(Homology(P,0));[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsIsomorphismOfAbelianFpGroups(Homology(P,2));[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsIsomorphismOfAbelianFpGroups(Homology(P,3));[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XIsIsomorphismOfAbelianFpGroups(Homology(P,4));[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YOf  course, either of Strategies 2 or 3 could also be used for this example.
  To use the Alexander-Whitney formula of Strategy 2 we would need to give the
  direct  product  [22XY=T× T[122X a simplicial structure. This could be obtained using
  the  function [10XDirectProduct(T,T)[110X. The details are as follows. (The result is
  consistent  with  the  preceding computation since the choice of a basis for
  cohomology groups is far from unique.)[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XK:=ClosedSurface(1);;                [127X[104X
    [4X[25Xgap>[125X [27XKK:=DirectProduct(K,K);[127X[104X
    [4X[28XSimplicial complex of dimension 4.[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xcup:=CupProduct(KK);;                [127X[104X
    [4X[25Xgap>[125X [27Xcup(2,2,[1,0,0,0,0,0],[0,1,0,0,0,0]);[127X[104X
    [4X[28X[ 0 ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X1.11 [33X[0;0YIntersection forms of [22X4[122X[101X[1X-manifolds[133X[101X
  
  [33X[0;0YThe  cup product gives rise to the intersection form of a connected, closed,
  orientable [22X4[122X-manifold [22XY[122X is a symmetric bilinear form[133X
  
  [33X[0;0Y[22XqY: H^2(Y, Z)/Torsion × H^2(Y, Z)/Torsion ⟶ Z[122X[133X
  
  [33X[0;0Ywhich we represent as a symmetric matrix.[133X
  
  [33X[0;0YThe  following  example  constructs  the  direct  product  [22XL=S^2× S^2[122X of two
  [22X2[122X-spheres,  the  connected  sum  [22XM=  CP^2  #  overline  CP^2[122X  of the complex
  projective plane [22XCP^2[122X and its oppositely oriented version [22Xoverline CP^2[122X, and
  the connected sum [22XN= CP^2 # CP^2[122X. The manifolds [22XL[122X, [22XM[122X and [22XN[122X are each shown to
  have  a  CW-structure involving one [22X0[122X-cell, two [22X1[122X-cells and one [22X2[122X-cell. They
  are thus simply connected and have identical cohomology.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS:=Sphere(2);;[127X[104X
    [4X[25Xgap>[125X [27XS:=RegularCWComplex(S);;[127X[104X
    [4X[25Xgap>[125X [27XL:=DirectProduct(S,S);[127X[104X
    [4X[28XRegular CW-complex of dimension 4[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XM:=ConnectedSum(ComplexProjectiveSpace(2),ComplexProjectiveSpace(2),-1);[127X[104X
    [4X[28XSimplicial complex of dimension 4.[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XN:=ConnectedSum(ComplexProjectiveSpace(2),ComplexProjectiveSpace(2),+1);[127X[104X
    [4X[28XSimplicial complex of dimension 4.[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XCriticalCells(L);[127X[104X
    [4X[28X[ [ 4, 1 ], [ 2, 13 ], [ 2, 56 ], [ 0, 16 ] ][128X[104X
    [4X[25Xgap>[125X [27XCriticalCells(RegularCWComplex(M));[127X[104X
    [4X[28X[ [ 4, 1 ], [ 2, 109 ], [ 2, 119 ], [ 0, 8 ] ][128X[104X
    [4X[25Xgap>[125X [27XCriticalCells(RegularCWComplex(N));[127X[104X
    [4X[28X[ [ 4, 1 ], [ 2, 119 ], [ 2, 149 ], [ 0, 12 ] ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YJohn  Milnor showed (as a corollary to a theorem of J. H. C. Whitehead) that
  the  homotopy  type  of  a  simply connected 4-manifold is determined by its
  quadratic  form.  More  precisely,  a form is said to be of [13Xtype I (properly
  primitive)[113X  if  some  diagonal entry of its matrix is odd. If every diagonal
  entry is even, then the form is of [13Xtype II (improperly primitive)[113X. The [13Xindex[113X
  of  a  form  is defined as the number of positive diagonal entries minus the
  number  of  negative  ones,  after the matrix has been diagonalized over the
  real numbers.[133X
  
  [33X[0;0Y[12XTheorem.[112X  (Milnor [Mil58]) The oriented homotopy type of a simply connected,
  closed,  orientable  4-manifold is determined by its second Betti number and
  the index and type of its intersetion form; except possibly in the case of a
  manifold with definite quadratic form of rank r > 9.[133X
  
  [33X[0;0YThe  following commands compute matrices representing the intersection forms
  [22XqL[122X, [22XqM[122X, [22XqN[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XqL:=IntersectionForm(L);;[127X[104X
    [4X[25Xgap>[125X [27XqM:=IntersectionForm(M);;[127X[104X
    [4X[25Xgap>[125X [27XqN:=IntersectionForm(N);;[127X[104X
    [4X[25Xgap>[125X [27XDisplay(qL);[127X[104X
    [4X[28X[ [  -2,   1 ],[128X[104X
    [4X[28X  [   1,   0 ] ][128X[104X
    [4X[25Xgap>[125X [27XDisplay(qM);[127X[104X
    [4X[28X[ [  1,  0 ],[128X[104X
    [4X[28X  [  0,  1 ] ][128X[104X
    [4X[25Xgap>[125X [27XDisplay(qN);[127X[104X
    [4X[28X[ [   1,   0 ],[128X[104X
    [4X[28X  [   0,  -1 ] ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YSince  [22XqL[122X  is  of  type  II, whereas [22XqM[122X and [22XqN[122X are of type I we see that the
  oriented homotopy type of [22XL[122X is distinct to that of [22XM[122X and that of [22XN[122X. Since [22XqM[122X
  has  index  [22X2[122X and [22XqN[122X has index [22X0[122X we see that that [22XM[122X and [22XN[122X also have distinct
  oriented homotopy types.[133X
  
  
  [1X1.12 [33X[0;0YCohomology Rings[133X[101X
  
  [33X[0;0YThe cup product gives the cohomology [22XH^∗(X,R)[122X of a space [22XX[122X with coefficients
  in  a  ring  [22XR[122X  the  structure  of  a  graded commutitive ring. The function
  [10XCohomologyRing(Y,p)[110X  returns the cohomology as an algebra for [22XY[122X a simplicial
  complex  and  [22XR=  Z_p[122X  the  field  of  [22Xp[122X  elements. For more general regular
  CW-complexes  or  [22XR= Z[122X the cohomology ring structure can be determined using
  the function [10XCupProduct(Y)[110X.[133X
  
  [33X[0;0YThe  folowing  commands compute the mod [22X2[122X cohomology ring [22XH^∗(W, Z_2)[122X of the
  above  wedge  sum [22XW=M∨ N[122X of a [22X2[122X-dimensional orientable simplicial surface of
  genus 2 and the [22XK3[122X complex simplicial surface (of real dimension 4).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XM:=ClosedSurface(2);;[127X[104X
    [4X[25Xgap>[125X [27XN:=SimplicialK3Surface();;[127X[104X
    [4X[25Xgap>[125X [27XW:=WedgeSum(M,N);;[127X[104X
    [4X[25Xgap>[125X [27XA:=CohomologyRing(W,2);[127X[104X
    [4X[28X<algebra of dimension 29 over GF(2)>[128X[104X
    [4X[25Xgap>[125X [27Xx:=Basis(A)[25];[127X[104X
    [4X[28Xv.25[128X[104X
    [4X[25Xgap>[125X [27Xy:=Basis(A)[27];[127X[104X
    [4X[28Xv.27[128X[104X
    [4X[25Xgap>[125X [27Xx*y;[127X[104X
    [4X[28Xv.29[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThe  functions  [10XCupProduct[110X  and  [10XIntersectionForm[110X  can  be used to determine
  integral  cohomology  rings. For example, the integral cohomology ring of an
  arbitrary  closed  surface  was  calculated  in [GM15, Theorem 3.5]. For any
  given surface [22XM[122X this result can be recalculated using the intersection form.
  For  instance,  for  an  orientable surface of genus [22Xg[122X it is well-known that
  [22XH^1(M,  Z)=  Z^2g[122X,  [22XH^2(M,  Z)= Z[122X. The ring structure multiplication is thus
  given  by  the  matrix  of  the  intersection  form.  For  say  [22Xg=3[122X the ring
  multiplication  is  given,  with  respect  to  some cohomology basis, in the
  following.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XM:=ClosedSurface(3);;[127X[104X
    [4X[25Xgap>[125X [27XDisplay(IntersectionForm(M));[127X[104X
    [4X[28X[ [   0,   0,   1,  -1,  -1,   0 ],[128X[104X
    [4X[28X  [   0,   0,   0,   1,   1,   0 ],[128X[104X
    [4X[28X  [  -1,   0,   0,   1,   1,  -1 ],[128X[104X
    [4X[28X  [   1,  -1,  -1,   0,   0,   1 ],[128X[104X
    [4X[28X  [   1,  -1,  -1,   0,   0,   0 ],[128X[104X
    [4X[28X  [   0,   0,   1,  -1,   0,   0 ] ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YBy changing the basis [22XB[122X for [22XH^1(M, Z)[122X we obtain the following simpler matrix
  representing multiplication in [22XH^∗(M, Z)[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XB:=[ [ 0, 1, -1, -1, 1, 0 ],[127X[104X
    [4X[25X>[125X [27X        [ 1, 0, 1, 1, 0, 0 ],[127X[104X
    [4X[25X>[125X [27X        [ 0, 0, 1, 0, 0, 0 ],[127X[104X
    [4X[25X>[125X [27X        [ 0, 0, 0, 1, -1, 0 ],[127X[104X
    [4X[25X>[125X [27X        [ 0, 0, 1, 1, 0, 0 ],[127X[104X
    [4X[25X>[125X [27X        [ 0, 0, 1, 1, 0, 1 ] ];;[127X[104X
    [4X[25Xgap>[125X [27XDisplay(IntersectionForm(M,B));[127X[104X
    [4X[28X[ [   0,   1,   0,   0,   0,   0 ],[128X[104X
    [4X[28X  [  -1,   0,   0,   0,   0,   0 ],[128X[104X
    [4X[28X  [   0,   0,   0,   0,   1,   0 ],[128X[104X
    [4X[28X  [   0,   0,   0,   0,   0,   1 ],[128X[104X
    [4X[28X  [   0,   0,  -1,   0,   0,   0 ],[128X[104X
    [4X[28X  [   0,   0,   0,  -1,   0,   0 ] ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X1.13 [33X[0;0YBockstein homomorphism[133X[101X
  
  [33X[0;0YThe  following example evaluates the Bockstein homomorphism [22Xβ_2: H^∗(X, Z_2)
  → H^∗ +1(X, Z_2)[122X on an additive basis for [22XX=Σ^100( RP^2 × RP^2)[122X the [22X100[122X-fold
  suspension of the direct product of two projective planes.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XP:=SimplifiedComplex(RegularCWComplex(ClosedSurface(-1)));[127X[104X
    [4X[28XRegular CW-complex of dimension 2[128X[104X
    [4X[25Xgap>[125X [27XPP:=DirectProduct(P,P);;[127X[104X
    [4X[25Xgap>[125X [27XSPP:=Suspension(PP,100); [127X[104X
    [4X[28XRegular CW-complex of dimension 104[128X[104X
    [4X[25Xgap>[125X [27XA:=CohomologyRing(SPP,2); [127X[104X
    [4X[28X<algebra of dimension 9 over GF(2)>[128X[104X
    [4X[25Xgap>[125X [27XList(Basis(A),x->Bockstein(A,x));[127X[104X
    [4X[28X[ 0*v.1, v.4, v.6, 0*v.1, v.7+v.8, 0*v.1, v.9, v.9, 0*v.1 ][128X[104X
    [4X[28X[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YIf  only the Bockstein homomorphism is required, and not the cohomology ring
  structure,  then  the  Bockstein  could also be computedirectly from a chain
  complex. The following computes the Bockstein [22Xβ_2: H^2(Y, Z_2) → H^3(Y, Z_2)[122X
  for  the  direct  product [22XY=K × K × K × K[122X of four copies of the Klein bottle
  represented  as  a  regular  CW-complex  with [22X331776[122X cells. The order of the
  kernel and image of [22Xβ_2[122X are computed.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XK:=ClosedSurface(-2);;                [127X[104X
    [4X[25Xgap>[125X [27XK:=SimplifiedComplex(RegularCWComplex(K));;[127X[104X
    [4X[25Xgap>[125X [27XKKKK:=DirectProduct(K,K,K,K); [127X[104X
    [4X[28XRegular CW-complex of dimension 8[128X[104X
    [4X[25Xgap>[125X [27XSize(KKKK);[127X[104X
    [4X[28X331776[128X[104X
    [4X[25Xgap>[125X [27XC:=ChainComplex(KKKK);;[127X[104X
    [4X[25Xgap>[125X [27Xbk:=Bockstein(C,2,2);;[127X[104X
    [4X[25Xgap>[125X [27XOrder(Kernel(bk));[127X[104X
    [4X[28X1024[128X[104X
    [4X[25Xgap>[125X [27XOrder(Image(bk)); [127X[104X
    [4X[28X262144[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X1.14 [33X[0;0YDiagonal maps on associahedra and other polytopes[133X[101X
  
  [33X[0;0YBy  a  [13Xdiagonal approximation[113X on a regular CW-complex [22XX[122X we mean any cellular
  map  [22X∆:  X→ X× X[122X that is homotopic to the diagonal map [22XX→ X× X, x↦ (x,x)[122X and
  equal  to  the  diagonal  map when restricted to the [22X0[122X-skeleton. Theoretical
  formulae   for   diagonal   maps  on  a  polytope  [22XX[122X  can  have  interesting
  combinatorial  aspects.  To  illustrate  this  let us consider, for [22Xn=3[122X, the
  [22Xn[122X-dimensional  polytope  [22Xcal K^n+2[122X known as the associahedron. The following
  commands display the [22X1[122X-skeleton of [22Xcal K^5[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xn:=3;;Y:=RegularCWAssociahedron(n+2);;[127X[104X
    [4X[25Xgap>[125X [27XDisplay(GraphOfRegularCWComplex(Y));[127X[104X
    [4X[28X[128X[104X
    [4X[28X				[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThe  induced  chain map [22XC_∗(cal K^n+2) → C_∗(cal K^n+2× cal K^n+2)[122X sends the
  unique  free generator [22Xe^n_1[122X of [22XC_n(cal K^n+2)[122X to a sum [22X∆(e^n_1)[122X of a number
  of  distinct  free  generators  of [22XC_n(cal K^n+2× cal K^n+2)[122X. Let [22X|∆(e^n_1)|[122X
  denote  the  number  of free generators. For [22Xn=3[122X the following commands show
  that [22X|∆(e^3_1)|=22[122X with each free generator occurring with coefficient [22X± 1[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xn:=3;;Y:=RegularCWAssociahedron(n+2);;    [127X[104X
    [4X[25Xgap>[125X [27XD:=DiagonalChainMap(Y);;Filtered(D!.mapping([1],n),x->x<>0);[127X[104X
    [4X[28X[ 1, 1, -1, -1, 1, 1, -1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, 1, 1 ][128X[104X
    [4X[28X[128X[104X
    [4X[28X                                [128X[104X
  [4X[32X[104X
  
  [33X[0;0YRepeating  this example for [22X0≤ n≤ 6[122X yields the sequence [22X|∆(e^n_1)|: 1, 2, 6,
  22,  91,  408,  1938,  ⋯[122X.  The  On-line  Encyclopedia  of  Integer Sequences
  ([7Xhttps://oeis.org/A000139[107X)  explains  that  this  is  the  beginning  of the
  sequence given by the number of canopy intervals in the Tamari lattices.[133X
  
  [33X[0;0YRepeating  the  same  experiment  for  the  permutahedron, using the command
  [10XRegularCWPermutahedron(n)[110X, yields the sequence [22X|∆(e^n_1)|: 1, 2, 8, 50, 432,
  4802,⋯[122X.     The     On-line     Encyclopedia     of     Integer    Sequences
  ([7Xhttps://oeis.org/A007334[107X)  explains  that  this  is  the  beginning  of the
  sequence  given  by  the  number of spanning trees in the graph [22XK_n/e[122X, which
  results from contracting an edge [22Xe[122X in the complete graph [22XK_n[122X on [22Xn[122X vertices.[133X
  
  [33X[0;0YRepeating  the  experiment for the cube, using the command [10XRegularCWCube(n)[110X,
  yields the sequence [22X|∆(e^n_1)|: 1, 2, 4, 8, 16, 32,⋯[122X.[133X
  
  [33X[0;0YRepeating    the   experiment   for   the   simplex,   using   the   command
  [10XRegularCWSimplex(n)[110X, yields the sequence [22X|∆(e^n_1)|: 1, 2, 3, 4, 5, 6,⋯[122X.[133X
  
  
  [1X1.15 [33X[0;0YCW maps and induced homomorphisms[133X[101X
  
  [33X[0;0YA  [13Xstrictly  cellular[113X  map [22Xf: X→ Y[122X of regular CW-complexes is a cellular map
  for  which  the  image  of any cell is a cell (of possibly lower dimension).
  Inclusions  of  CW-subcomplexes,  and projections from a direct product to a
  factor, are examples of such maps. Strictly cellular maps can be represented
  in  [12XHAP[112X,  and their induced homomorphisms on (co)homology and on fundamental
  groups can be computed.[133X
  
  [33X[0;0YThe  following  example  begins  by visualizing the trefoil knot [22Xκ ∈ R^3[122X. It
  then  constructs a regular CW structure on the complement [22XY= D^3∖ Nbhd(κ)[122X of
  a  small  tubular open neighbourhood of the knot lying inside a large closed
  ball  [22XD^3[122X.  The  boundary  of  this tubular neighbourhood is a [22X2[122X-dimensional
  CW-complex  [22XB[122X  homeomorphic  to  a  torus  [22XS^1×  S^1[122X  with fundamental group
  [22Xπ_1(B)=<a,b  : aba^-1b^-1=1>[122X. The inclusion map [22Xf: B↪ Y[122X is constructed. Then
  a   presentation   [22Xπ_1(Y)=   <x,y  |  xy^-1x^-1yx^-1y^-1>[122X  and  the  induced
  homomorphism  $$\pi_1(B)\rightarrow  \pi_1(Y),  a\mapsto  y^{-1}xy^2xy^{-1},
  b\mapsto  y  $$  are  computed. This induced homomorphism is an example of a
  [13Xperipheral  system[113X  and  is  known  to  contain  sufficient  information  to
  characterize the knot up to ambient isotopy.[133X
  
  [33X[0;0YFinally,  it  is verified that the induced homology homomorphism [22XH_2(B, Z) →
  H_2(Y, Z)[122X is an isomomorphism.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XK:=PureCubicalKnot(3,1);;[127X[104X
    [4X[25Xgap>[125X [27XViewPureCubicalKnot(K);;[127X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XK:=PureCubicalKnot(3,1);;[127X[104X
    [4X[25Xgap>[125X [27Xf:=KnotComplementWithBoundary(ArcPresentation(K));[127X[104X
    [4X[28XMap of regular CW-complexes[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XG:=FundamentalGroup(Target(f));[127X[104X
    [4X[28X<fp group of size infinity on the generators [ f1, f2 ]>[128X[104X
    [4X[25Xgap>[125X [27XRelatorsOfFpGroup(G);[127X[104X
    [4X[28X[ f1*f2^-1*f1^-1*f2*f1^-1*f2^-1 ][128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XF:=FundamentalGroup(f);[127X[104X
    [4X[28X[ f1, f2 ] -> [ f2^-1*f1*f2^2*f1*f2^-1, f1 ][128X[104X
    [4X[28X[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27Xphi:=ChainMap(f);[127X[104X
    [4X[28XChain Map between complexes of length 2 . [128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XH:=Homology(phi,2);[127X[104X
    [4X[28X[ g1 ] -> [ g1 ][128X[104X
    [4X[28X[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X1.16 [33X[0;0YConstructing a simplicial complex from a regular CW-complex[133X[101X
  
  [33X[0;0YThe  following  example constructs a [22X3[122X-dimensional pure regular CW-complex [22XK[122X
  whose  [22X3[122X-cells are permutahedra. It then constructs the simplicial complex [22XB[122X
  by  taking  barycentric subdivision. It then constructes a smaller, homotopy
  equivalent,  simplicial  complex  [22XN[122X by taking the nerve of the cover of [22XK[122X by
  the closures of its [22X3[122X-cells.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XK:=RegularCWComplex(PureComplexComplement(PurePermutahedralKnot(3,1)));[127X[104X
    [4X[28XRegular CW-complex of dimension 3[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XSize(K);[127X[104X
    [4X[28X77923[128X[104X
    [4X[25Xgap>[125X [27XB:=BarycentricSubdivision(K);[127X[104X
    [4X[28XSimplicial complex of dimension 3.[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XSize(B);[127X[104X
    [4X[28X1622517[128X[104X
    [4X[25Xgap>[125X [27XN:=Nerve(K);[127X[104X
    [4X[28XSimplicial complex of dimension 3.[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XSize(N);[127X[104X
    [4X[28X48745[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X1.17 [33X[0;0YSome limitations to representing spaces as regular CW complexes[133X[101X
  
  [33X[0;0YBy  a [13Xclassifying space[113X for a group [22XG[122X we mean a path-connected space [22XBG[122X with
  fundamental group [22Xπ_1(BG)≅ G[122X isomorphic to [22XG[122X and with higher homotopy groups
  [22Xπ_n(BG)=0[122X  trivial  for all [22Xn≥ 2[122X. The homology of the group [22XG[122X can be defined
  to be the homology of [22XBG[122X: [22XH_n(G, Z) = H_n(BG, Z)[122X.[133X
  
  [33X[0;0YIn  principle  [22XBG[122X  can  always  be  constructed as a regular CW-complex. For
  instance, the following extremely slow commands construct the [22X5[122X-skeleton [22XY^5[122X
  of  a  regular  CW-classifying space [22XY=BG[122X for the dihedral group of order [22X16[122X
  and use it to calculate [22XH_1(G, Z)= Z_2⊕ Z_2[122X, [22XH_2(G, Z)= Z_2[122X, [22XH_3(G, Z)= Z_2⊕
  Z_2  ⊕  Z_8[122X,  [22XH_4(G,  Z)=  Z_2  ⊕  Z_2[122X.  The  final  command  shows that the
  constructed  space [22XY^5[122X in this example is a [22X5[122X-dimensional regular CW-complex
  with a total of [22X15289[122X cells.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XY:=ClassifyingSpaceFiniteGroup(DihedralGroup(16),5);[127X[104X
    [4X[28XRegular CW-complex of dimension 5[128X[104X
    [4X[25Xgap>[125X [27XHomology(Y,1);[127X[104X
    [4X[28X[ 2, 2 ][128X[104X
    [4X[25Xgap>[125X [27XHomology(Y,2);[127X[104X
    [4X[28X[ 2 ][128X[104X
    [4X[25Xgap>[125X [27XHomology(Y,3);[127X[104X
    [4X[28X[ 2, 2, 8 ][128X[104X
    [4X[25Xgap>[125X [27XHomology(Y,4);[127X[104X
    [4X[28X[ 2, 2 ][128X[104X
    [4X[25Xgap>[125X [27XSize(Y);[127X[104X
    [4X[28X15289[128X[104X
    [4X[28X[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThe  [22Xn[122X-skeleton  of  a  regular  CW-classifying  space  of  a  finite  group
  necessarily  involves  a large number of cells. For the group [22XG=C_2[122X of order
  two  a  classifying  space  can be take to be real projective space [22XBG= RP^∞[122X
  with [22Xn[122X-skeleton [22XBG^n= RP^n[122X. To realize [22XBG^n= RP^n[122X as a simplicial complex it
  is  known  that  one needs at least 6 vertices for [22Xn=2[122X, at least 11 vertices
  for  [22Xn=3[122X  and  at  least  16  vertices  for  [22Xn=4[122X. One can do a bit better by
  allowing  [22XBG[122X to be a regular CW-complex. For instance, the following creates
  [22XRP^4[122X  as  a  regular  CW-complex  with 5 vertices. This construction of [22XRP^4[122X
  involves a total of 121 cells. A minimal triangulation of [22XRP^4[122X would require
  991 simplices.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XY:=ClassifyingSpaceFiniteGroup(CyclicGroup(2),4);[127X[104X
    [4X[28XRegular CW-complex of dimension 4[128X[104X
    [4X[25Xgap>[125X [27XY!.nrCells(0);                                   [127X[104X
    [4X[28X5[128X[104X
    [4X[25Xgap>[125X [27XY!.nrCells(1);[127X[104X
    [4X[28X20[128X[104X
    [4X[25Xgap>[125X [27XY!.nrCells(2);[127X[104X
    [4X[28X40[128X[104X
    [4X[25Xgap>[125X [27XY!.nrCells(3);                                   [127X[104X
    [4X[28X40[128X[104X
    [4X[25Xgap>[125X [27XY!.nrCells(4);[127X[104X
    [4X[28X16[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThe  space  [22XRP^n[122X can be given the structure of a regular CW-complex with [22Xn+1[122X
  vertices.  Kuehnel  has  described  a  triangulation  of  [22XRP^n[122X  with [22X2^n+1-1[122X
  vertices.[133X
  
  [33X[0;0YThe  above examples suggest that it is inefficient/impractical to attempt to
  compute  the  [22Xn[122X-th  homology  of  a  group [22XG[122X by first constructing a regular
  CW-complex  corresponding  for  the  [22Xn+1[122X of a classifying space [22XBG[122X, even for
  quite  small  groups  [22XG[122X, since such spaces seem to require a large number of
  cells in each dimension. On the other hand, by dropping the requirement that
  [22XBG[122X  must  be  regular we can obtain much smaller CW-complexes. The following
  example  constructs  [22XRP^9[122X as a regular CW-complex and then shows that it can
  be given a non-regular CW-structure with just one cell in each dimension.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XY:=ClassifyingSpaceFiniteGroup(CyclicGroup(2),9);[127X[104X
    [4X[28XRegular CW-complex of dimension 9[128X[104X
    [4X[25Xgap>[125X [27XSize(Y);[127X[104X
    [4X[28X29524[128X[104X
    [4X[25Xgap>[125X [27XCriticalCells(Y);[127X[104X
    [4X[28X[ [ 9, 1 ], [ 8, 124 ], [ 7, 1215 ], [ 6, 1246 ], [ 5, 487 ], [ 4, 254 ], [128X[104X
    [4X[28X  [ 3, 117 ], [ 2, 54 ], [ 1, 9 ], [ 0, 10 ] ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YIt  is  of  course  well-known  that  [22XRP^∞[122X  admits a theoretically described
  CW-structure with just one cell in each dimension. The question is: how best
  to represent this on a computer?[133X
  
  
  [1X1.18 [33X[0;0YEquivariant CW complexes[133X[101X
  
  [33X[0;0YAs just explained, the representations of spaces as simplicial complexes and
  regular  CW  complexes  have  their  limitations. One limitation is that the
  number  of  cells  needed  to describe a space can be unnecessarily large. A
  minimal  simplicial complex structure for the torus has [22X7[122X vertices, [22X21[122X edges
  and [22X14[122X triangles. A minimal regular CW-complex structure for the torus has [22X4[122X
  vertices,  [22X8[122X  edges  and  [22X4[122X  cells  of dimension [22X2[122X. By using simplicial sets
  (which  are  like simplicial complexes except that they allow the freedom to
  attach  simplicial  cells by gluing their boundary non-homeomorphically) one
  obtains a minimal triangulation of the torus involving [22X1[122X vertex, [22X3[122X edges and
  [22X2[122X  cells  of  dimension  [22X2[122X.  By using non-regular CW-complexes one obtains a
  minimal  cell  structure involving [22X1[122X vertex, [22X2[122X edges and [22X1[122X cell of dimension
  [22X2[122X.  Minimal cell structures (in the four different categories) for the torus
  are illustrated as follows.[133X
  
  [33X[0;0YA  second  limitation  to  our  representations  of  simplicial  and regular
  CW-complexes is that they apply only to structures with finitely many cells.
  They  do  no apply, for instance, to the simplicial complex structure on the
  real  line  [22XR[122X  in  which  each  each integer [22Xn[122X is a vertex and each interval
  [22X[n,n+1][122X is an edge.[133X
  
  [33X[0;0YSimplicial   sets  provide  one  approach  to  the  efficient  combinatorial
  representation  of  certain spaces. So too do cubical sets (the analogues of
  simplicial sets in which each cell has the combinatorics of an [22Xn[122X-cube rather
  than  an [22Xn[122X-simplex). Neither of these two approaches has been implemented in
  [12XHAP[112X.[133X
  
  [33X[0;0YSimplicial  sets  endowed  with  the action of a (possibly infinite) group [22XG[122X
  provide   for  an  efficient  representation  of  (possibly  infinite)  cell
  structures  on a wider class of spaces. Such a structure can be made precise
  and is known as a [13Xsimplicial group[113X. Some functionality for simplicial groups
  is implemented in [12XHAP[112X and described in Chapter [14X12[114X.[133X
  
  [33X[0;0YA  regular CW-complex endowed with the action of a (possibly infinite) group
  [22XG[122X  is  an alternative approach to the efficient combinatorial representation
  of  (possibly infinite) cell structures on spaces. Much of [12XHAP[112X is focused on
  this  approach.  As  a  first  example  of  the idea, the following commands
  construct  the  infinite  regular  CW-complex  [22XY=widetilde  T[122X arising as the
  universal  cover of the torus [22XT= S^1× S^1[122X where [22XT[122X is given the above minimal
  non-regular  CW  structure  involving  [22X1[122X  vertex,  [22X2[122X  edges,  and  [22X1[122X cell of
  dimension [22X2[122X. The homology [22XH_n(T, Z)[122X is computed and the fundamental group of
  the torus [22XT[122X is recovered.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XF:=FreeGroup(2);;x:=F.1;;y:=F.2;;[127X[104X
    [4X[25Xgap>[125X [27XG:=F/[ x*y*x^-1*y^-1 ];;[127X[104X
    [4X[25Xgap>[125X [27XY:=EquivariantTwoComplex(G);[127X[104X
    [4X[28XEquivariant CW-complex of dimension 2[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XC:=ChainComplexOfQuotient(Y);[127X[104X
    [4X[28XChain complex of length 2 in characteristic 0 . [128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XHomology(C,0);[127X[104X
    [4X[28X[ 0 ][128X[104X
    [4X[25Xgap>[125X [27XHomology(C,1);[127X[104X
    [4X[28X[ 0, 0 ][128X[104X
    [4X[25Xgap>[125X [27XHomology(C,2);[127X[104X
    [4X[28X[ 0 ][128X[104X
    [4X[25Xgap>[125X [27XFundamentalGroupOfQuotient(Y);[127X[104X
    [4X[28X<fp group of size infinity on the generators [ f1, f2 ]>[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YAs  a  second  example,  the  following  comands  load group number [22X9[122X in the
  library  of  [22X3[122X-dimensional  crystallographic groups. They verify that [22XG[122X acts
  freely  on  [22XR^3[122X  (i.e.  [22XG[122X  is  a  [13XBieberbach  group[113X)  and  then  construct a
  [22XG[122X-equivariant  CW-complex [22XY= R^3[122X corresponding to the tessellation of [22XR^3[122X by
  a  fundamental  domain  for  [22XG[122X.  Finally,  the  cohomology  [22XH_n(M, Z)[122X of the
  [22X3[122X-dimensional  closed  manifold [22XM= R^3/G[122X is computed. The manifold [22XM[122X is seen
  to  be  non-orientable  (since it's top-dimensional homology is trivial) and
  has  a non-regular CW structure with [22X1[122X vertex, [22X3[122X edges, [22X3[122X cells of dimension
  [22X2[122X, and [22X1[122X cell of dimension [22X3[122X. (This example uses Polymake software.)[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG:=SpaceGroup(3,9);;[127X[104X
    [4X[25Xgap>[125X [27XIsAlmostBieberbachGroup(Image(IsomorphismPcpGroup(G)));[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XY:=EquivariantEuclideanSpace(G,[0,0,0]);[127X[104X
    [4X[28XEquivariant CW-complex of dimension 3[128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XY!.dimension(0);[127X[104X
    [4X[28X1[128X[104X
    [4X[25Xgap>[125X [27XY!.dimension(1);[127X[104X
    [4X[28X3[128X[104X
    [4X[25Xgap>[125X [27XY!.dimension(2);[127X[104X
    [4X[28X3[128X[104X
    [4X[25Xgap>[125X [27XY!.dimension(3);[127X[104X
    [4X[28X1[128X[104X
    [4X[25Xgap>[125X [27XC:=ChainComplexOfQuotient(Y);[127X[104X
    [4X[28XChain complex of length 3 in characteristic 0 . [128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XHomology(C,0);[127X[104X
    [4X[28X[ 0 ][128X[104X
    [4X[25Xgap>[125X [27XHomology(C,1);[127X[104X
    [4X[28X[ 0, 0 ][128X[104X
    [4X[25Xgap>[125X [27XHomology(C,2);[127X[104X
    [4X[28X[ 2, 0 ][128X[104X
    [4X[25Xgap>[125X [27XHomology(C,3);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThe  fundamental  domain  for  the  action  of  [22XG[122X  in  the  above example is
  constructed  to  be  the  Dirichlet-Voronoi  region  in [22XR^3[122X whose points are
  closer  to  the origin [22Xv=(0,0,0)[122X than to any other point [22Xv^g[122X in the orbit of
  the  origin under the action of [22XG[122X. This fundamental domain can be visualized
  as follows.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XF:=FundamentalDomainStandardSpaceGroup([0,0,0],G);[127X[104X
    [4X[28X<polymake object>[128X[104X
    [4X[25Xgap>[125X [27XPolymake(F,"VISUAL");[127X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YOther  fundamental  domains  for  the  same  group action can be obtained by
  choosing some other starting vector [22Xv[122X. For example:[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XF:=FundamentalDomainStandardSpaceGroup([1/2,1/3,1/5],G);;[127X[104X
    [4X[25Xgap>[125X [27XPolymake(F,"VISUAL");[127X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XF:=FundamentalDomainStandardSpaceGroup([1/7,1/2,1/2],G);[127X[104X
    [4X[25Xgap>[125X [27XPolymake(F,"VISUAL");[127X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X1.19 [33X[0;0YOrbifolds and classifying spaces[133X[101X
  
  [33X[0;0YIf  a  discrete  group  [22XG[122X  acts  on Euclidean space or hyperbolic space with
  finite  stabilizer  groups  then  we say that the quotient space obtained by
  killing  the  action  of  [22XG[122X an an [13Xorbifold[113X. If the stabilizer groups are all
  trivial then the quotient is of course a manifold.[133X
  
  [33X[0;0YAn  orbifold  is  represented as a [22XG[122X-equivariant regular CW-complex together
  with  the  stabilizer  group for a representative of each orbit of cells and
  its  subgroup  consisting  of  those  group  elements that preserve the cell
  orientation. [12XHAP[112X stores orbifolds using the data type of [13Xnon-free resolution[113X
  and  uses them mainly as a first step in constructing free [22XZG[122X-resolutions of
  [22XZ[122X.[133X
  
  [33X[0;0YThe  following commands use an [22X8[122X-dimensional equivariant deformation retract
  of  a  [22XGL_3(  Z[  i])[122X-orbifold  structure  on  hyperbolic  space  to compute
  [22XH_5(GL_3(  Z[ i], Z) = Z_2^5⊕ Z_4^2[122X. (The deformation retract is stored in a
  library and was supplied by Mathieu Dutour Sikiric.)[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XOrbifold:=ContractibleGcomplex("PGL(3,Z[i])");[127X[104X
    [4X[28XNon-free resolution in characteristic 0 for matrix group . [128X[104X
    [4X[28XNo contracting homotopy available. [128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XR:=FreeGResolution(Orbifold,6);[127X[104X
    [4X[28XResolution of length 5 in characteristic 0 for matrix group . [128X[104X
    [4X[28XNo contracting homotopy available. [128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XHomology(TensorWithIntegers(R),5);[127X[104X
    [4X[28X[ 2, 2, 2, 2, 2, 4, 4 ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YThe  next  example computes an orbifold structure on [22XR^4[122X, and then the first
  [22X12[122X   degrees   of  a  free  resolution/classifying  space,  for  the  second
  [22X4[122X-dimensional  crystallographic  group  [22XG[122X in the library of crystallographic
  groups.  The  resolution is shown to be periodic of period [22X2[122X in degrees [22X≥ 5[122X.
  The cohomology is seen to have [22X11[122X ring generators in degree [22X2[122X and no further
  ring  generators.  The  cohomology  groups  are:  $$H^n(G,\mathbb Z) =\left(
  \begin{array}{ll} 0, & {\rm odd~} n\ge 1\\ \mathbb Z_2^5 \oplus \mathbb Z^6,
  &  n=2\\  \mathbb Z_2^{15}\oplus \mathbb Z, & n=4\\ \mathbb Z_2^{16}, & {\rm
  even~} n \ge 6 .\\ \end{array}\right.$$[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XG:=SpaceGroup(4,2);;[127X[104X
    [4X[25Xgap>[125X [27XR:=ResolutionCubicalCrystGroup(G,12);[127X[104X
    [4X[28XResolution of length 12 in characteristic 0 for <matrix group with [128X[104X
    [4X[28X5 generators> . [128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XR!.dimension(5);[127X[104X
    [4X[28X16[128X[104X
    [4X[25Xgap>[125X [27XR!.dimension(7);[127X[104X
    [4X[28X16[128X[104X
    [4X[25Xgap>[125X [27XList([1..16],k->R!.boundary(5,k)=R!.boundary(7,k));[127X[104X
    [4X[28X[ true, true, true, true, true, true, true, true, true, true, true, true, [128X[104X
    [4X[28X  true, true, true, true ][128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XC:=HomToIntegers(R);[127X[104X
    [4X[28XCochain complex of length 12 in characteristic 0 . [128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XCohomology(C,0);[127X[104X
    [4X[28X[ 0 ][128X[104X
    [4X[25Xgap>[125X [27XCohomology(C,1);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[25Xgap>[125X [27XCohomology(C,2);[127X[104X
    [4X[28X[ 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0 ][128X[104X
    [4X[25Xgap>[125X [27XCohomology(C,3);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[25Xgap>[125X [27XCohomology(C,4);[127X[104X
    [4X[28X[ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0 ][128X[104X
    [4X[25Xgap>[125X [27XCohomology(C,5);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[25Xgap>[125X [27XCohomology(C,6);[127X[104X
    [4X[28X[ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ][128X[104X
    [4X[25Xgap>[125X [27XCohomology(C,7);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XIntegralRingGenerators(R,1);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[25Xgap>[125X [27XIntegralRingGenerators(R,2);[127X[104X
    [4X[28X[ [ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [128X[104X
    [4X[28X  [ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ], [128X[104X
    [4X[28X  [ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 ], [128X[104X
    [4X[28X  [ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 ], [128X[104X
    [4X[28X  [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 ], [128X[104X
    [4X[28X  [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 ] ][128X[104X
    [4X[25Xgap>[125X [27XIntegralRingGenerators(R,3);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[25Xgap>[125X [27XIntegralRingGenerators(R,4);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[25Xgap>[125X [27XIntegralRingGenerators(R,5);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[25Xgap>[125X [27XIntegralRingGenerators(R,6);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[25Xgap>[125X [27XIntegralRingGenerators(R,7);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[25Xgap>[125X [27XIntegralRingGenerators(R,8);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[25Xgap>[125X [27XIntegralRingGenerators(R,9);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[25Xgap>[125X [27XIntegralRingGenerators(R,10);[127X[104X
    [4X[28X[  ][128X[104X
    [4X[28X[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [33X[0;0YA  group  [22XG[122X  with  a  finite  index torsion free nilpotent subgroup admits a
  resolution which is periodic in sufficiently high degrees if and only if all
  of  its  finite  index  subgroups  admit periodic resolutions. The following
  commands  identify the [22X99[122X [22X3[122X-dimensional space groups (respectively, the [22X1191[122X
  [22X4[122X-dimensional  space  groups)  that  admit a resolution which is periodic in
  degrees [22X> 3[122X (respectively, in degrees [22X> 4[122X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XL3:=Filtered([1..219],k->IsPeriodicSpaceGroup(SpaceGroup(3,k)));[127X[104X
    [4X[28X[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 15, 17, 18, 19, 21, 24, 26, 27, 28, [128X[104X
    [4X[28X  29, 30, 31, 32, 33, 34, 36, 37, 39, 40, 41, 43, 45, 46, 52, 54, 55, 56, 58, [128X[104X
    [4X[28X  61, 62, 74, 75, 76, 77, 78, 79, 80, 81, 84, 85, 87, 89, 92, 98, 101, 102, [128X[104X
    [4X[28X  107, 111, 119, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, [128X[104X
    [4X[28X  152, 153, 154, 155, 157, 159, 161, 162, 163, 164, 165, 166, 168, 171, 172, [128X[104X
    [4X[28X  174, 175, 176, 178, 180, 186, 189, 192, 196, 198, 209 ] [128X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XL4:=Filtered([1..4783],k->IsPeriodicSpaceGroup(SpaceGroup(4,k)));[127X[104X
    [4X[28X[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 15, 16, 17, 18, 19, 20, 22, 23, 25,[128X[104X
    [4X[28X  26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 46, 47, 48,[128X[104X
    [4X[28X  49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60, 61, 62, 63, 65, 66, 68, 69, 70,[128X[104X
    [4X[28X  71, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 89, 90, 91,[128X[104X
    [4X[28X  93, 94, 95, 96, 97, 98, 99, 101, 102, 103, 104, 105, 107, 108, 109, 110,[128X[104X
    [4X[28X  111, 113, 115, 116, 118, 119, 120, 121, 122, 124, 126, 127, 128, 130, 131,[128X[104X
    [4X[28X  134, 141, 144, 145, 149, 151, 153, 154, 155, 156, 157, 158, 159, 160, 162,[128X[104X
    [4X[28X  163, 165, 167, 168, 169, 170, 171, 172, 173, 174, 176, 178, 179, 180, 187,[128X[104X
    [4X[28X  188, 197, 198, 202, 204, 205, 206, 211, 212, 219, 220, 222, 226, 233, 237,[128X[104X
    [4X[28X  238, 239, 240, 241, 242, 243, 244, 245, 247, 248, 249, 250, 251, 253, 254,[128X[104X
    [4X[28X  255, 256, 257, 259, 260, 261, 263, 264, 265, 266, 267, 269, 270, 271, 273,[128X[104X
    [4X[28X  275, 277, 278, 279, 281, 283, 285, 290, 292, 296, 297, 298, 299, 300, 301,[128X[104X
    [4X[28X  303, 304, 305, 314, 316, 317, 319, 327, 328, 329, 333, 335, 342, 355, 357,[128X[104X
    [4X[28X  358, 359, 361, 362, 363, 365, 366, 367, 368, 369, 370, 372, 374, 376, 378,[128X[104X
    [4X[28X  381, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,[128X[104X
    [4X[28X  398, 399, 400, 401, 402, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,[128X[104X
    [4X[28X  414, 415, 416, 417, 418, 419, 421, 422, 423, 424, 425, 426, 427, 428, 429,[128X[104X
    [4X[28X  430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 442, 443, 444, 445,[128X[104X
    [4X[28X  446, 447, 448, 450, 451, 458, 459, 462, 464, 465, 466, 467, 469, 470, 473,[128X[104X
    [4X[28X  477, 478, 479, 482, 483, 484, 485, 486, 493, 495, 497, 501, 502, 503, 504,[128X[104X
    [4X[28X  505, 507, 508, 512, 514, 515, 516, 517, 522, 524, 525, 526, 527, 533, 537,[128X[104X
    [4X[28X  539, 540, 541, 542, 543, 544, 546, 548, 553, 555, 558, 562, 564, 565, 566,[128X[104X
    [4X[28X  567, 568, 571, 572, 573, 574, 576, 577, 580, 581, 582, 589, 590, 591, 593,[128X[104X
    [4X[28X  596, 598, 599, 612, 613, 622, 623, 624, 626, 632, 641, 647, 649, 651, 652,[128X[104X
    [4X[28X  654, 656, 657, 658, 659, 661, 662, 663, 665, 666, 667, 668, 669, 670, 671,[128X[104X
    [4X[28X  672, 674, 676, 677, 678, 679, 680, 682, 683, 684, 686, 688, 689, 690, 691,[128X[104X
    [4X[28X  692, 694, 696, 697, 698, 699, 700, 702, 708, 710, 712, 714, 716, 720, 722,[128X[104X
    [4X[28X  728, 734, 738, 739, 741, 742, 744, 745, 752, 754, 756, 757, 758, 762, 763,[128X[104X
    [4X[28X  769, 770, 778, 779, 784, 788, 790, 800, 801, 843, 845, 854, 855, 856, 857,[128X[104X
    [4X[28X  865, 874, 900, 904, 909, 911, 913, 915, 916, 917, 919, 920, 921, 922, 923,[128X[104X
    [4X[28X  924, 925, 926, 927, 929, 931, 932, 933, 934, 936, 938, 940, 941, 943, 945,[128X[104X
    [4X[28X  946, 953, 955, 956, 958, 963, 966, 972, 973, 978, 979, 981, 982, 983, 985,[128X[104X
    [4X[28X  987, 988, 989, 991, 992, 993, 995, 996, 998, 999, 1000, 1003, 1011, 1022,[128X[104X
    [4X[28X  1024, 1025, 1026, 1162, 1167, 1236, 1237, 1238, 1239, 1240, 1241, 1242,[128X[104X
    [4X[28X  1243, 1244, 1246, 1248, 1250, 1255, 1264, 1267, 1270, 1273, 1279, 1280,[128X[104X
    [4X[28X  1281, 1283, 1284, 1289, 1291, 1293, 1294, 1324, 1325, 1326, 1327, 1328,[128X[104X
    [4X[28X  1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340,[128X[104X
    [4X[28X  1341, 1343, 1345, 1347, 1348, 1349, 1350, 1351, 1352, 1354, 1356, 1357,[128X[104X
    [4X[28X  1358, 1359, 1361, 1363, 1365, 1367, 1372, 1373, 1374, 1375, 1376, 1377,[128X[104X
    [4X[28X  1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389,[128X[104X
    [4X[28X  1390, 1393, 1395, 1397, 1399, 1400, 1401, 1404, 1405, 1408, 1410, 1419,[128X[104X
    [4X[28X  1420, 1421, 1422, 1424, 1425, 1426, 1428, 1429, 1438, 1440, 1441, 1442,[128X[104X
    [4X[28X  1443, 1444, 1445, 1449, 1450, 1451, 1456, 1457, 1460, 1461, 1462, 1464,[128X[104X
    [4X[28X  1465, 1470, 1472, 1473, 1477, 1480, 1481, 1487, 1488, 1489, 1493, 1494,[128X[104X
    [4X[28X  1495, 1501, 1503, 1506, 1509, 1512, 1515, 1518, 1521, 1524, 1527, 1530,[128X[104X
    [4X[28X  1532, 1533, 1534, 1537, 1538, 1541, 1542, 1544, 1547, 1550, 1552, 1553,[128X[104X
    [4X[28X  1554, 1558, 1565, 1566, 1568, 1573, 1644, 1648, 1673, 1674, 1700, 1702,[128X[104X
    [4X[28X  1705, 1713, 1714, 1735, 1738, 1740, 1741, 1742, 1743, 1744, 1745, 1746,[128X[104X
    [4X[28X  1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1759,[128X[104X
    [4X[28X  1761, 1762, 1763, 1765, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774,[128X[104X
    [4X[28X  1775, 1778, 1779, 1782, 1783, 1785, 1787, 1788, 1789, 1791, 1793, 1795,[128X[104X
    [4X[28X  1797, 1798, 1799, 1800, 1801, 1803, 1806, 1807, 1809, 1810, 1811, 1813,[128X[104X
    [4X[28X  1815, 1821, 1822, 1823, 1828, 1829, 1833, 1837, 1839, 1842, 1845, 1848,[128X[104X
    [4X[28X  1850, 1851, 1852, 1854, 1856, 1857, 1858, 1859, 1860, 1861, 1863, 1866,[128X[104X
    [4X[28X  1870, 1873, 1874, 1877, 1880, 1883, 1885, 1886, 1887, 1889, 1892, 1895,[128X[104X
    [4X[28X  1915, 1918, 1920, 1923, 1925, 1927, 1928, 1930, 1952, 1953, 1954, 1955,[128X[104X
    [4X[28X  2045, 2047, 2049, 2051, 2053, 2054, 2055, 2056, 2057, 2059, 2067, 2068,[128X[104X
    [4X[28X  2072, 2075, 2076, 2079, 2084, 2087, 2088, 2092, 2133, 2135, 2136, 2137,[128X[104X
    [4X[28X  2139, 2140, 2170, 2171, 2196, 2224, 2234, 2236, 2238, 2254, 2355, 2356,[128X[104X
    [4X[28X  2386, 2387, 2442, 2445, 2448, 2451, 2478, 2484, 2487, 2490, 2493, 2496,[128X[104X
    [4X[28X  2499, 2502, 2508, 2511, 2514, 2517, 2520, 2523, 2550, 2553, 2559, 2621,[128X[104X
    [4X[28X  2624, 2648, 2650, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054,[128X[104X
    [4X[28X  3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066,[128X[104X
    [4X[28X  3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078,[128X[104X
    [4X[28X  3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3089, 3090, 3091,[128X[104X
    [4X[28X  3094, 3095, 3096, 3099, 3100, 3101, 3104, 3105, 3106, 3109, 3110, 3111,[128X[104X
    [4X[28X  3112, 3113, 3114, 3115, 3117, 3119, 3120, 3121, 3122, 3123, 3124, 3125,[128X[104X
    [4X[28X  3127, 3128, 3129, 3130, 3131, 3132, 3133, 3135, 3137, 3139, 3141, 3142,[128X[104X
    [4X[28X  3143, 3144, 3145, 3149, 3151, 3152, 3153, 3154, 3155, 3157, 3159, 3160,[128X[104X
    [4X[28X  3161, 3162, 3163, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3177, 3179,[128X[104X
    [4X[28X  3180, 3181, 3182, 3183, 3184, 3185, 3187, 3188, 3189, 3190, 3191, 3192,[128X[104X
    [4X[28X  3193, 3195, 3197, 3199, 3200, 3201, 3204, 3206, 3207, 3208, 3209, 3210,[128X[104X
    [4X[28X  3212, 3214, 3215, 3216, 3217, 3218, 3226, 3234, 3235, 3236, 3244, 3252,[128X[104X
    [4X[28X  3253, 3254, 3260, 3268, 3269, 3270, 3278, 3280, 3281, 3282, 3283, 3284,[128X[104X
    [4X[28X  3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3295, 3296, 3298, 3299,[128X[104X
    [4X[28X  3302, 3303, 3306, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316,[128X[104X
    [4X[28X  3317, 3318, 3319, 3320, 3322, 3324, 3326, 3327, 3329, 3330, 3338, 3345,[128X[104X
    [4X[28X  3346, 3347, 3348, 3350, 3351, 3352, 3354, 3355, 3356, 3359, 3360, 3361,[128X[104X
    [4X[28X  3362, 3374, 3375, 3383, 3385, 3398, 3399, 3417, 3418, 3419, 3420, 3422,[128X[104X
    [4X[28X  3424, 3426, 3428, 3446, 3447, 3455, 3457, 3469, 3471, 3521, 3523, 3524,[128X[104X
    [4X[28X  3525, 3530, 3531, 3534, 3539, 3542, 3545, 3548, 3550, 3551, 3554, 3557,[128X[104X
    [4X[28X  3579, 3580, 3830, 3831, 3832, 3833, 3835, 3837, 3839, 3849, 3851, 3877,[128X[104X
    [4X[28X  3938, 3939, 3949, 3951, 3952, 3958, 3960, 3962, 3963, 3964, 3966, 3968,[128X[104X
    [4X[28X  3972, 3973, 3975, 4006, 4029, 4030, 4033, 4034, 4037, 4038, 4046, 4048,[128X[104X
    [4X[28X  4050, 4062, 4064, 4067, 4078, 4081, 4089, 4090, 4114, 4138, 4139, 4140,[128X[104X
    [4X[28X  4141, 4146, 4147, 4148, 4149, 4154, 4155, 4169, 4171, 4175, 4180, 4183,[128X[104X
    [4X[28X  4188, 4190, 4204, 4205, 4223, 4224, 4225, 4254, 4286, 4289, 4391, 4397,[128X[104X
    [4X[28X  4496, 4499, 4500, 4501, 4502, 4504, 4508, 4510, 4521, 4525, 4544, 4559,[128X[104X
    [4X[28X  4560, 4561, 4562, 4579, 4580, 4581, 4583, 4587, 4597, 4598, 4599, 4600,[128X[104X
    [4X[28X  4651, 4759, 4760, 4761, 4762, 4766 ][128X[104X
    [4X[28X[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
