GAP (HAPcryst) - Appendix A: Resolutions in Hap

Goto Chapter: Top 1 2 3 4 A B C Bib Ind
[Top of Book] [Contents] [Previous Chapter] [Next Chapter]

[MathJax off]

A Resolutions in Hap
A.1 The Standard Representation `HapResolutionRep`
A.2 The `HapLargeGroupResolutionRep` Representation

### A Resolutions in Hap

This document is only concerned with the representation of resolutions in Hap. Note that it is not a part of Hap. The framework provided here is just an extension of Hap data types used in HAPcryst and HAPprime.

From now on, let \(G\) be a group and \(\dots \to M_n\to M_{n-1}\to\dots\to M_1\to M_0\to Z\) be a resolution with free \(ZG\) modules \(M_i\).

The elements of the modules \(M_i\) can be represented in different ways. This is what makes different representations for resolutions desirable. First, we will look at the standard representation (`HapResolutionRep`) as it is defined in Hap. After that, we will present another representation for infinite groups. Note that all non-standard representations must be sub-representations of the standard representation to ensure compatibility with Hap.

#### A.1 The Standard Representation `HapResolutionRep`

For every \(M_i\) we fix a basis and number its elements. Furthermore, it is assumed that we have a (partial) enumeration of the group of a resolution. In practice this is done by generating a lookup table on the fly.

In standard representation, the elements of the modules \(M_k\) are represented by lists -"words"- of pairs of integers. A letter `[i,g]` of such a word consists of the number of a basis element `i` or `-i` for its additive inverse and a number \(g\) representing a group element.

A `HapResolution` in `HapResolutionRep` representation is a component object with the components

- `group`, a group of arbitrary type.

- `elts`, a (partial) list of (possibly duplicate) elements in G. This list provides the "enumeration" of the group. Note that there are functions in Hap which assume that `elts[1]` is the identity element of G.

- `appendToElts(g)` a function that appends the group element `g` to `.elts`. This is not documented in Hap 1.8.6 but seems to be required for infinite groups. This requirement might vanish in some later version of Hap [G. Ellis, private communication].

- `dimension(k)`, a function which returns the ZG-rank of the Module \(M_k\)

- `boundary(k,j)`, a function which returns the image in \(M_{k-1}\) of the \(j\)th free generator of \(M_k\). Note that negative \(j\) are valid as input as well. In this case the additive inverse of the boundary of the \(j\)th generator is returned

- `homotopy(k,[i,g])` a function which returns the image in \(M_{k+1}\), under a contracting homotopy \(M_k \to M_{k+1}\), of the element `[[i,g]]` in \(M_k\). The value of this might be `fail`. However, currently (version 1.8.4) some Hap functions assume that `homotopy` is a function without testing.

- `properties`, a list of pairs `["name","value"]` "name" is a string and value is anything (boolean, number, string...). Every `HapResolution` (regardless of representation) has to have `["type","resolution"]`, `["length",length]` where `length` is the length of the resolution and `["characteristic",char]`. Currently (Hap 1.8.6), `length` must not be `infinity`. The values of these properties can be tested using the Hap function `EvaluateProperty(resolution,propertyname)`.

Note that making `HapResolution`s immutable will make the `.elts` component immutable. As this lookup table might change during calculations, we do not recommend using immutable resolutions (in any representation).

#### A.2 The `HapLargeGroupResolutionRep` Representation

In this sub-representation of the standard representation, the module elements in this resolution are lists of groupring elements. So the lookup table `.elts` is not used as long as no conversion to standard representation takes place. In addition to the components of a `HapResolution`, a resolution in large group representation has the following components:

- `boundary2(resolution,term,gen)`, a function that returns the boundary of the genth generator of the termth module.

- `groupring` the group ring of the resolution resolution.

- `dimension2(resolution,term)` a function that returns the dimension of the termth module of the resolution resolution.

The effort of having two versions of `boundary` and `dimension` is necessary to keep the structure compatible with the usual Hap resolution.

[Top of Book] [Contents] [Previous Chapter] [Next Chapter]
Goto Chapter: Top 1 2 3 4 A B C Bib Ind

generated by GAPDoc2HTML