About HAP: Covering Spaces

Joint work with Kelvin Killeen

Let Y denote a finite regular CW-complex. Let U denote its universal covering space. The covering space inherits a regular CW-structure which can be computed and stored using the data type of a π1Y-equivariant CW-complex. The cellular chain complex CU of U can be computed and stored as an equivariant chain complex. Given an admissible discrete vector field on Y, we can endow Y with a smaller non-regular CW-structre whose cells correspond to the critical cells in the vector field. This smaller CW-structure leads to a more efficient chain complex CU involving one free generator for each critical cell in the vector field.

Cellular chains on the universal cover

The following commands construct a 6-dimensional regular CW-complex Y⋍S1× S1×S1 homotopy equivalent to a product of three circles.

gap> A:=[[1,1,1],[1,0,1],[1,1,1]];;
gap> S:=PureCubicalComplex(A);;
gap> T:=DirectProduct(S,S,S);;
gap> Y:=RegularCWComplex(T);;
gap> Size(Y);
110592

The CW-somplex Y has 110592 cells. The next commands construct a free π1Y-equivariant chain complex CU homotopy equivalent to the chain complex of the universal cover of Y. The chain complex CU has just 8 free generators.

gap> Y:=ContractedComplex(Y);
gap> CU:=ChainComplexOfUniversalCover(Y,"vector field");;
gap> List([0..Dimension(Y)],n->CU!.dimension(n));
[ 1, 3, 3, 1 ]

The next commands construct a subgroup H < π1Y of index 50 and the chain complex CU⊗ℤHℤ which is homotopy equivalent to the cellular chain complex CUH of the 50-fold cover UH of Y corresponding to H.

gap> L:=LowIndexSubgroupsFpGroup(CU!.group,50);;
gap> H:=L[Length(L)-1];;
gap> Index(CU!.group,H);
50
gap> D:=TensorWithIntegersOverSubgroup(CU,H);
Chain complex of length 3 in characteristic 0 .

General theory implies that the 50-fold covering space UH should again be homotopy equivalent to a product of three circles. As a check for this, the following commands establish that UH has the same integral homology as S1× S1×S1

gap> Homology(D,0);
[ 0 ]
gap> Homology(D,1);
[ 0, 0, 0 ]
gap> Homology(D,2);
[ 0, 0, 0 ]
gap> Homology(D,3);
[ 0 ]

Cohomology with local coefficients

The π1Y-equivariant cellular chain complex CU of the universal cover U of a regular CW-complex Y can be used to compute the homology Hn(Y,A) and cohomology Hn(Y,A) of Y with local coefficients in a ℤπ1Y-module A. To illustrate this we consister the space Y arising as the complement of the trefoil knot, with fundamental group π1Y = <x,y : xyx=yxy >. We take A= ℤ to be the integers with non-trivial π1Y-action given by x.1=-1, y.1=-1. We then compute

H0(Y,A) = ℤ2 ,

H1(Y,A) = ℤ3 ,

H2(Y,A) = ℤ .
gap> K:=PureCubicalKnot(3,1);;
gap> Y:=PureComplexComplement(K);;
gap> Y:=ContractedComplex(Y);;
gap> Y:=RegularCWComplex(Y);;
gap> Y:=SimplifiedComplex(Y);;
gap> C:=ChainComplexOfUniversalCover(Y);;
gap> G:=C!.group;;
gap> GeneratorsOfGroup(G);
[ f1, f2 ]
gap> RelatorsOfFpGroup(G);
[ f2^-1*f1^-1*f2^-1*f1*f2*f1, f1^-1*f2^-1*f1^-1*f2*f1*f2 ]
gap> hom:=GroupHomomorphismByImages(G,Group([[-1]]),[G.1,G.2],[[[-1]],[[-1]]]);;
gap> A:=function(x); return Determinant(Image(hom,x)); end;;
gap> D:=TensorWithTwistedIntegers(C,A); #Here the function A represents the integers with twisted action of G.
Chain complex of length 3 in characteristic 0 .
gap> Homology(D,0);
[ 2 ]
gap> Homology(D,1);
[ 3 ]
gap> Homology(D,2);
[ 0 ]

Finite covers as regular CW-complexes

We next construct a 4-dimensional CW-complex Y⋍S1×S1 homotopy equivalent to a 2-dimensional torus, involving 2304 cells. We choose a subgroup H < π1Y of index 50 and construct the covering space UH corresponding to H as a finite regular CW-complex. The fundamental group π1(UH) is shown to be free abelian on two generators. This is in keeping with the fact that UH is homotopy equivalent to Y.

gap> G:=U!.group;;
gap> L:=LowIndexSubgroupsFpGroup(G,50);;
gap> H:=L[Length(L)-3];;Index(G,H);
50
gap> W:=EquivariantCWComplexToRegularCWComplex(U,H);
Regular CW-complex of dimension 4
gap> Size(W);
115200

gap> F:=FundamentalGroup(W);
<fp group of size infinity on the generators [ f1, f2 ]>
gap> RelatorsOfFpGroup(F);
[ f2^-1*f1*f2*f1^-1 ]

Covering maps

It may be that we are interested in the covering map p:UH → Y and not just the covering UH itself. As an illustration we construct the map p for Y homotopy equivalent to a torus, for H<π1Y a subgroup with

π1Y / H ≅ ℤ3⊕ℤ3,

and for p the corresponding covering map.

gap> A:=[[1,1,1],[1,0,1],[1,1,1]];;
gap> S:=PureCubicalComplex(A);;
gap> T:=DirectProduct(S,S);;
gap> Y:=RegularCWComplex(T);;
gap> U:=UniversalCover(Y);
Equivariant CW-complex of dimension 4
gap> G:=U!.group;;
gap> L:=LowIndexSubgroupsFpGroup(G,9);;
gap> H:=L[58];;
gap> AbelianInvariants(G/H);
[ 3, 3 ]
gap> p:=EquivariantCWComplexToRegularCWMap(U,H);
Map of regular CW-complexes
gap> Source(p);
Regular CW-complex of dimension 4
gap> Size(Source(p));
20736
gap> Target(p);
Regular CW-complex of dimension 4
gap> Size(Target(p));
2304

The covering map p induces homomorphisms Hn(p):Hn(W,Z) → Hn(Y,Z) on integral homology. These homomorphisms, together with their cokernels, can be computed as follows.

gap> P:=ChainMap(p);
Chain Map between complexes of length 4 .
gap> h0:=Homology(P,0);;
gap> AbelianInvariants(Target(h0)/Image(h0));
[ ]
gap> h1:=Homology(P,1);;
gap> AbelianInvariants(Target(h1)/Image(h1));
[ 3, 3 ]
gap> h2:=Homology(P,2);;
gap> AbelianInvariants(Target(h2)/Image(h2));
[ 9 ]

Second homotopy groups of spaces

If p:U → Y is the map from the universal cover U of Y, then the fundamental group of U is trivial and the Hurewicz homomorphism π2U-->H2(U,ℤ) from the second homotopy group of U to the second integral homology of U is an isomorphism. Furthermore, the map p induces an isomorphism π2U → π2Y. Thus H2(U,ℤ) is isomorphic to the second homotopy group π2Y.

If the fundamental group of Y happens to be finite, then in principle we can calculate H2(U.ℤ) ≅ π2Y. We illustrate this computation for Y equal to the real projective plane.

gap> K:=[ [1,2,3], [1,3,4], [1,2,6], [1,5,6], [1,4,5], [2,3,5], [2,4,5], [2,4,6], [3,4,6], [3,5,6]];;
gap> K:=MaximalSimplicesToSimplicialComplex(K);
Simplicial complex of dimension 2.
gap> Y:=RegularCWComplex(K); # Y is a regular CW-complex corresponding to the projective plane.
Regular CW-complex of dimension 2
gap> U:=UniversalCover(Y);
Equivariant CW-complex of dimension 2
gap> G:=U!.group;; #G is the fundamental group of Y, which by the next command is finite of order 2.
gap> Order(G);
2
gap> U:=EquivariantCWComplexToRegularCWComplex(U,Group(One(G))); #U is the universal cover of Y
Regular CW-complex of dimension 2
gap> Homology(U,0);
[ 0 ]
gap> Homology(U,1);
[ ]
gap> Homology(U,2);
[ 0 ]

The above computation shows that the space Y has infinite cyclic second homotopy group π2Y = ℤ .

Third homotopy groups of simply connected spaces

For any simply connected space U there is an exact sequence

→ π4U → H4(U,ℤ) → H4( K(π2U,2), ℤ ) → π3U → H4(U,ℤ) → 0

due to J.H.C.Whitehead. Here K(π2U,2) is an Eilenberg-MacLane space with second homotopy group equal to π2U.

First Example

Continuing with the above example where Y is the real projective plane and U its universal cover, we see that H4(U,ℤ) = H4(U,ℤ) = 0 since U is a 2-dimensional CW-space. The exact sequence implies π3U ≅ H4(K(π2U,2), ℤ ). Furthermore, π3U = π3Y since U is the universal cover. The following commands establish that

π3Y ≅ ℤ .
gap> A:=AbelianPcpGroup([0]);
Pcp-group with orders [ 0 ]
gap> K:=EilenbergMacLaneSimplicialGroup(A,2,5);;
gap> C:=ChainComplexOfSimplicialGroup(K);
Chain complex of length 5 in characteristic 0 .
gap> Homology(C,4);
[ 0 ]
Second Example

The following commands construct a 4-dimensional simplicial complex Y with 9 vertices and 36 4-dimensional simplices, and establish that

π1Y=0 , π2Y=ℤ , H3(Y,ℤ)=0, H4(Y,ℤ)=ℤ, H4(K(π2U,2), ℤ) =ℤ .
gap> Y:=[ [ 1, 2, 4, 5, 6 ], [ 1, 2, 4, 5, 9 ], [ 1, 2, 5, 6, 8 ], [ 1, 2, 6, 4, 7 ], [ 2, 3, 4, 5, 8 ], [ 2, 3, 5, 6, 4 ], [ 2, 3, 5, 6, 7 ], [ 2, 3, 6, 4, 9 ], [ 3, 1, 4, 5, 7 ],
[ 3, 1, 5, 6, 9 ], [ 3, 1, 6, 4, 5 ], [ 3, 1, 6, 4, 8 ], [ 4, 5, 7, 8, 3 ], [ 4, 5, 7, 8, 9 ], [ 4, 5, 8, 9, 2 ], [ 4, 5, 9, 7, 1 ], [ 5, 6, 7, 8, 2 ], [ 5, 6, 8, 9, 1 ],
[ 5, 6, 8, 9, 7 ], [ 5, 6, 9, 7, 3 ], [ 6, 4, 7, 8, 1 ], [ 6, 4, 8, 9, 3 ], [ 6, 4, 9, 7, 2 ], [ 6, 4, 9, 7, 8 ], [ 7, 8, 1, 2, 3 ], [ 7, 8, 1, 2, 6 ], [ 7, 8, 2, 3, 5 ],
[ 7, 8, 3, 1, 4 ], [ 8, 9, 1, 2, 5 ], [ 8, 9, 2, 3, 1 ], [ 8, 9, 2, 3, 4 ], [ 8, 9, 3, 1, 6 ], [ 9, 7, 1, 2, 4 ], [ 9, 7, 2, 3, 6 ], [ 9, 7, 3, 1, 2 ], [ 9, 7, 3, 1, 5 ] ];;
gap> Y:=MaximalSimplicesToSimplicialComplex(Y);
Simplicial complex of dimension 4.
gap> Y:=RegularCWComplex(Y);
Regular CW-complex of dimension 4
gap> Order(FundamentalGroup(Y));
1
gap> Homology(Y,2);
[ 0 ]
gap> Homology(Y,3);
[ ]
gap> Homology(Y,4);
[ 0 ]

Whitehead's sequence reduces to an exact sequence

ℤ → ℤ → π3Y → 0

in which the first map is H4(Y,ℤ)=ℤ → H4(K(π2Y,2), ℤ)=ℤ . In order to determine π3Y it remains compute this first map. This computation is currently not available in HAP.

[The simplicial complex in this second example is due to W. Kiihnel and T. F. Banchoff and is of the homotopy type of the complex projective plane. So, assuming this extra knowledge, we have π3Y=0.]