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.