GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
1[1X3 Contracting Homotopies[0X234[1X3.1 The [9XPartialContractingHomotopy[1X Data Type[0X56A partial contracting homotopy is a component object that knows the values7of a contracting homotopy on some subspace of a resolution. It has two8mandatory components:910-- [10X.resolution[0m a [9XHapResolution[0m on which the contraction is defined.1112-- [10X.knownPartOfHomotopy[0m a list of [9XRecord[0ms with components [10X.space[0m and13[10X.map[0m.1415Let [10Xh[0m be a contracting homotopy. The lookup table [10X.knownPartOfHomotopy[0m has16one entry for each term of the resolution [10Xh.resolution[0m (that is, one more17than [10XLength(h.resolution)[0m).1819The i th element of [10X.knownPartOfHomotopy[0m contains a record with components20[10X.space[0m and [10X.map[0m where [10X.space[0m is a [9XFreeZGWord[0m of the i-1 st term of the21resolution. The component [10X.map[0m is a list of length22[10XDimension(h.resolution)(i-1)[0m. The entries of this list are pairs [10X[g,im][0m23where [10Xg[0m represents a group element and [10Xim[0m represents the image of the24contraction. So the entry [10X[g,im][0m in the [10Xk[0mth component of the list [10X.map[0m means25that the [10Xk[0mth free generator of the corresponding module multiplied with the26group element represented by [10Xg[0m is mapped to [10Xim[0m under the partial contracting27homotopy. Note that the data type of [10Xg[0m or [10Xim[0m are not fixed at this level.28They must be specified by the sub representations. Also, [10Xim[0m need not29represent the actual image under a contracting homotopy. It is possible to30just store a bit of information that is then used to generate the actual31image.3233As this is a very general data type, it has very few methods.3435[1X3.1-1 ResolutionOfContractingHomotopy[0m3637[2X> ResolutionOfContractingHomotopy( [0X[3Xhomotopy[0X[2X ) ________________________[0Xmethod38[6XReturns:[0X A [9XHapResolution[0m3940This returns the resolution of the homotopy [3Xhomotopy[0m (the component41[3Xhomotopy!.resolution[0m).4243[1X3.1-2 PartialContractingHomotopyLookup[0m4445[2X> PartialContractingHomotopyLookup( [0X[3Xhomotopy, term, generator, groupel[0X[2X ) [0Xmethod46[2X> PartialContractingHomotopyLookupNC( [0X[3Xhomotopy, term, generator, groupel[0X[2X ) [0Xmethod47[6XReturns:[0X The entry [10Xim[0m of the corresponding lookup table4849Looks up the known part of the contracting homotopy [3Xhomotopy[0m and returns the50corresponding image. More precisely, it returns the image of the [3Xgenerator[0mth51generator times the group element represented by [3Xgroupel[0m in term [3Xterm[0m under52the partial homotopy. The data type of this image depends on the53representation of [3Xhomotopy[0m.5455[3Xterm[0m has to be an integer and [3Xgenerator[0m a positive integer. [3Xgroupel[0m only has56to be an [9XObject[0m.5758The NC version does not do any checks on the input. The other version checks59if [3Xterm[0m and [3Xgenerator[0m are sensible. It does not check [3Xgroupel[0m.60616263