GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
1[1X1 Resolutions in Hap[0X23This document is only concerned with the representation of resolutions in4Hap. Note that it is not a part of Hap. The framework provided here is just5an extension of Hap data types used in HAPcryst and HAPprime.67From now on, let G be a group and dots -> M_n-> M_n-1->dots-> M_1-> M_0-> Z8be a resolution with free ZG modules M_i.910The elements of the modules M_i can be represented in different ways. This11is what makes different representations for resolutions desirable. First, we12will look at the standard representation ([10XHapResolutionRep[0m) as it is defined13in Hap. After that, we will present another representation for infinite14groups. Note that all non-standard representations must be15sub-representations of the standard representation to ensure compatibility16with Hap.171819[1X1.1 The Standard Representation [9XHapResolutionRep[1X[0X2021For every M_i we fix a basis and number its elements. Furthermore, it is22assumed that we have a (partial) enumeration of the group of a resolution.23In practice this is done by generating a lookup table on the fly.2425In standard representation, the elements of the modules M_k are represented26by lists -"words"- of pairs of integers. A letter [10X[i,g][0m of such a word27consists of the number of a basis element [10Xi[0m or [10X-i[0m for its additive inverse28and a number g representing a group element.2930A [10XHapResolution[0m in [10XHapResolutionRep[0m representation is a component object31with the components3233-- [10Xgroup[0m, a group of arbitrary type.3435-- [10Xelts[0m, a (partial) list of (possibly duplicate) elements in G. This36list provides the "enumeration" of the group. Note that there are37functions in Hap which assume that [10Xelts[1][0m is the identity element of38G.3940-- [10XappendToElts(g)[0m a function that appends the group element [10Xg[0m to [10X.elts[0m.41This is not documented in Hap 1.8.6 but seems to be required for42infinite groups. This requirement might vanish in some later version43of Hap [G. Ellis, private communication].4445-- [10Xdimension(k)[0m, a function which returns the ZG-rank of the Module M_k4647-- [10Xboundary(k,j)[0m, a function which returns the image in M_k-1 of the jth48free generator of M_k. Note that negative j are valid as input as49well. In this case the additive inverse of the boundary of the jth50generator is returned5152-- [10Xhomotopy(k,[i,g])[0m a function which returns the image in M_k+1, under a53contracting homotopy M_k -> M_k+1, of the element [10X[[i,g]][0m in M_k. The54value of this might be [9Xfail[0m. However, currently (version 1.8.4) some55Hap functions assume that [10Xhomotopy[0m is a function without testing.5657-- [10Xproperties[0m, a list of pairs [10X["name","value"][0m "name" is a string and58value is anything (boolean, number, string...). Every [10XHapResolution[0m59(regardless of representation) has to have [10X["type","resolution"][0m,60[10X["length",length][0m where [10Xlength[0m is the length of the resolution and61[10X["characteristic",char][0m. Currently (Hap 1.8.6), [10Xlength[0m must not be62[9Xinfinity[0m. The values of these properties can be tested using the Hap63function [10XEvaluateProperty(resolution,propertyname)[0m.6465Note that making [10XHapResolution[0ms immutable will make the [10X.elts[0m component66immutable. As this lookup table might change during calculations, we do not67recommend using immutable resolutions (in any representation).686970[1X1.2 The [9XHapLargeGroupResolutionRep[1X Representation[0X7172In this sub-representation of the standard representation, the module73elements in this resolution are lists of groupring elements. So the lookup74table [10X.elts[0m is not used as long as no conversion to standard representation75takes place. In addition to the components of a [9XHapResolution[0m, a resolution76in large group representation has the following components:7778-- [10Xboundary2(resolution,term,gen)[0m, a function that returns the boundary79of the [3Xgen[0mth generator of the [3Xterm[0mth module.8081-- [10Xgroupring[0m the group ring of the resolution [3Xresolution[0m.8283-- [10Xdimension2(resolution,term)[0m a function that returns the dimension of84the [3Xterm[0mth module of the resolution [3Xresolution[0m.8586The effort of having two versions of [10Xboundary[0m and [10Xdimension[0m is necessary to87keep the structure compatible with the usual Hap resolution.88899091