Function: ResolutionOfFiniteGroup(Gens,n) ResolutionOfFiniteGroup(Gens,n,true)

Description: This function constructs the first n terms of a smallish free ZG-resolution R of Z for a generic (but not too large) finite group G. A contracting homotopy for the resolution is also given. The input is a list Gens of generators for the group G and a positive integer n. The third argument "true" is optional and invokes Tietze reductions in the construction of the resolution. The output is a list [Dimension,Boundary,Homotopy,Elts] of three functions and a list. Dimension(i) gives the ZG-rank of the i-th module in R. Boundary(i,j) gives the boundary of the j-th free generator of dimension i. Homotopy(i,,[j,g]) gives the image under a contracting homotopy of g times the j-th generator of dimension i. Elts is a list of the elements of G with Elts[g] the element represented by integer g in the preceding two functions. Here i,j,g are non-negative integers. The integer g lies in the range from 1 to the order of G.

Mathematical background: G. Ellis, "Computing groups resolutions", Journal of Symbolic Computation 38 (2004).

Comments: This function is the basis of many computations in HAP and more work needs to be done on trying to improve its performance. In particular: 1) The algorithm is very sensitive to the order in which consequences are found. This is determined by the sequence of integers ExtendedElts. It might be possible to find a better order for this sequence. 2) The Tietze simplification could certainly be improved. Documentation: For notes on the code see here.