Previous | About HAP: Enumerating homotopy 2-types | next

A 2-type is a CW-space X whose homotopy groups are trivial in dimensions n=0 and n>2. As explained in a previous page the homotopy type of such a space can be captured algebraically by a cat1-group G.
Let us consider two 2-types X, Y represented by cat1-groups G, H. If X and Y are homotopy equivalent then there exists a sequence of morphisms of cat1-groups
G --> K1 <-- K2 --> K3 <-- ... --> Kn <-- H
each morphism inducing an isomorphism on homotopy groups. When such a sequence of morphisms exists we say that G is quasi-isomorphic to H. We have the following result.

THEOREM The 2-types X and Y are homotopy equivalent if and only if the associated cat1-groups G and H are quasi-isomorphic.

We mention that crossed modules are a well-known alternative algebraic formulation of cat1-groups. There is a categorical equivalence between these two algebraic notions. We have opted to work through the language of cat1-groups.

All small cat1-groups G have been listed up to isomorphism in the GAP package XMod. For example, the following commands produce a list L of all of the 62 non-isomorphic cat1-groups whose underlying group has order 16.
gap> LoadPackage("xmod"); gap> L:=[];; gap> for n in [1..NrSmallGroups(16)] do > k:=Cat1Select(16,n);; > for m in [1..k] do > G:=Cat1Select(16,n,m);; > Add(L,XmodToHAP(G)); > od;od; gap> Length(L); 62
The following commands use the first and second homotopy groups to prove that the list L contains at least 37 distinct quasi-isomorphism types.
gap> Invariants:=function(G) > local inv; > inv:=[]; > inv[1]:=IdGroup(HomotopyGroup(G,1)); > inv[2]:=IdGroup(HomotopyGroup(G,2)); > return inv; > end;; gap> C:=Classify(L,Invariants);; gap> Length(C); 37
The following commands use second and third integral homology in conjunction with the first two homotopy groups to prove that the list L contains at least 49 distinct quasi-isomorphism types.
gap> Invariants:=function(G) > local inv; > inv:=[]; > inv[1]:=IdGroup(HomotopyGroup(G,1)); > inv[2]:=IdGroup(HomotopyGroup(G,2)); > inv[3]:=Homology(G,2); > inv[4]:=Homology(G,3); > return inv; > end;; gap> C:=Classify(L,Invariants);; gap> Length(C); 49
The following commands show that the above list L contains at most 51 distinct quasi-isomorphism types.
gap> Q:=List(L,QuasiIsomorph);; gap> M:=[];; gap> for q in Q do > bool:=true;; > for m in M do > if not IsomorphismCatOneGroups(m,q)=fail then bool:=false; break; fi; > od; > if bool then Add(M,q); fi; > od; gap> Length(M); 51

Identification of homotopy 2-types of low order
Let us define the "order" of a cat-1-group to be the order of its underlying group. Le Van Luyen has incorporated the above techniques into a function IdCatOneGroup(C) which inputs a cat-1-group C of "low order" and returns an integer pair [n,k] that uniquely idenifies the quasi-isomorphism type of C. The integer n is the order of a smallest cat-1-group quasi-isomorphic to C. The integer k identifies a particular cat-1-group of order n.
The following commands use this function to show that there are in fact precisely 49 distinct quasi-isomorphism types of cat-1-groups of order 16.

gap> M:=List(L,IdCatOneGroup);
[ [ 16, 1 ], [ 16, 2 ], [ 16, 3 ], [ 16, 4 ], [ 1, 1 ], [ 4, 4 ], [ 16, 6 ], [ 16, 7 ], [ 16, 8 ], [ 16, 5 ], [ 16, 9 ], [ 16, 10 ], [ 16, 5 ],
[ 16, 11 ], [ 16, 12 ], [ 16, 13 ], [ 4, 1 ], [ 16, 14 ], [ 4, 2 ], [ 16, 15 ], [ 16, 16 ], [ 16, 17 ], [ 16, 18 ], [ 16, 19 ], [ 16, 20 ],
[ 16, 21 ], [ 16, 22 ], [ 16, 23 ], [ 16, 24 ], [ 4, 1 ], [ 4, 3 ], [ 16, 25 ], [ 4, 4 ], [ 16, 26 ], [ 4, 4 ], [ 16, 27 ], [ 4, 2 ], [ 4, 5 ],
[ 16, 28 ], [ 16, 29 ], [ 16, 30 ], [ 16, 31 ], [ 4, 4 ], [ 16, 32 ], [ 4, 4 ], [ 16, 33 ], [ 4, 5 ], [ 16, 34 ], [ 16, 35 ], [ 4, 5 ],
[ 16, 36 ], [ 16, 37 ], [ 16, 38 ], [ 16, 39 ], [ 16, 40 ], [ 4, 3 ], [ 16, 41 ], [ 4, 4 ], [ 1, 1 ], [ 16, 42 ], [ 4, 5 ], [ 16, 43 ] ]
gap> Length(SSortedList(M));
49

The following command identify the order and then quasi-isomorphism type of the cat-1-group C associated to the crossed module G ---> Aut(G) for G equal to the dihedral group of order 10. They then realize a smallest possible cat-1-group D of this quasi-isomorphism type. (The realization of the quasi-isomorphism type depends on the XMod package.)
C:=AutomorphismGroupAsCatOneGroup(DihedralGroup(10)); Cat-1-group with underlying group Group( [ f1, f2, f3, f4, f5 ] ) . gap> Order(C); 200 gap> IdCatOneGroup(C); [ 2, 2 ] gap> D:=SmallCatOneGroup(2,2); Cat-1-group with underlying group C2 .

Previous Page | Contents | Next page