GAP (HAPcryst) - Appendix B: Accessing and Manipulating Resolutions

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

[MathJax off]

B Accessing and Manipulating Resolutions
B.1 Representation-Independent Access Methods
B.1-1 StrongestValidRepresentationForLetter
B.1-2 StrongestValidRepresentationForWord
B.1-3 PositionInGroupOfResolution
B.1-4 IsValidGroupInt
B.1-5 GroupElementFromPosition
B.1-6 MultiplyGroupElts
B.1-7 MultiplyFreeZGLetterWithGroupElt
B.1-8 MultiplyFreeZGWordWithGroupElt
B.1-9 BoundaryOfFreeZGLetter
B.1-10 BoundaryOfFreeZGWord
B.2 Converting Between Representations
B.2-1 ConvertStandardLetter
B.2-2 ConvertStandardWord
B.2-3 ConvertLetterToStandardRep
B.2-4 ConvertWordToStandardRep
B.3 Special Methods for `HapResolutionRep`
B.3-1 IsFreeZGLetter
B.3-2 IsFreeZGWord
B.3-3 MultiplyGroupEltsNC
B.3-4 MultiplyFreeZGLetterWithGroupEltNC
B.3-5 MultiplyFreeZGWordWithGroupEltNC
B.3-6 BoundaryOfFreeZGLetterNC
B.3-7 BoundaryOfFreeZGWordNC
B.4 The `HapLargeGroupResolutionRep` Representation
B.4-1 GroupRingOfResolution
B.4-2 MultiplyGroupElts_LargeGroupRep
B.4-3 IsFreeZGLetterNoTermCheck_LargeGroupRep
B.4-4 IsFreeZGWordNoTermCheck_LargeGroupRep
B.4-5 IsFreeZGLetter_LargeGroupRep
B.4-6 IsFreeZGWord_LargeGroupRep
B.4-7 MultiplyFreeZGLetterWithGroupElt_LargeGroupRep
B.4-8 MultiplyFreeZGWordWithGroupElt_LargeGroupRep
B.4-9 GeneratorsOfModuleOfResolution_LargeGroupRep
B.4-10 BoundaryOfGenerator_LargeGroupRep
B.4-11 BoundaryOfFreeZGLetterNC_LargeGroupRep
B.4-12 BoundaryOfFreeZGWord_LargeGroupRep

### B Accessing and Manipulating Resolutions

#### B.1 Representation-Independent Access Methods

All methods listed below take a `HapResolution` in any representation. If the other arguments are compatible with the representation of the resolution, the returned value will be in the form defined by this representation. If the other arguments are in a different representation, GAPs method selection is used via `TryNextMethod()` to find an applicable method (a suitable representation).

The idea behind this is that the results of computations have the same form as the input. And as all representations are sub-representations of the `HapResolutionRep` representation, input which is compatible with the `HapResolutionRep` representation is always valid.

Every new representation must support the functions of this section.

##### B.1-1 StrongestValidRepresentationForLetter

`‣ StrongestValidRepresentationForLetter`( resolution, term, letter ) | ( method )

Returns: filter

Finds the sub-representation of `HapResolutionRep` for which letter is a valid letter of the termth module of resolution. Note that resolution automatically is in some sub-representation of `HapResolutionRep`.This is mainly meant for debugging.

##### B.1-2 StrongestValidRepresentationForWord

`‣ StrongestValidRepresentationForWord`( resolution, term, word ) | ( method )

Returns: filter

Finds the sub-representation of `HapResolutionRep` for which word is a valid word of the termth module of resolution. Note that resolution automatically is in some sub-representation of `HapResolutionRep`. This is mainly meant for debugging.

##### B.1-3 PositionInGroupOfResolution

`‣ PositionInGroupOfResolution`( resolution, g ) | ( method )

`‣ PositionInGroupOfResolutionNC`( resolution, g ) | ( method )

Returns: positive integer

This returns the position of the group element g in the enumeration of the group of resolution. The NC version does not check if g really is an element of the group of resolution.

##### B.1-4 IsValidGroupInt

`‣ IsValidGroupInt`( resolution, n ) | ( method )

Returns: boolean

Returns true if the nth element of the group of resolution is known.

##### B.1-5 GroupElementFromPosition

`‣ GroupElementFromPosition`( resolution, n ) | ( method )

Returns: group element or `fail`

Returns nth element of the group of resolution. If the nth element is not known, `fail` is returned.

##### B.1-6 MultiplyGroupElts

`‣ MultiplyGroupElts`( resolution, x, y ) | ( method )

Returns: positive integer or group element, depending on the type of x and y

If `x` and `y` are given in standard representation (i.e. as integers), this returns the position of the product of the group elements represented by the positive integers x and x.

If `x` and `y` are given in any other representation, the returned group element will also be represented in this way.

##### B.1-7 MultiplyFreeZGLetterWithGroupElt

`‣ MultiplyFreeZGLetterWithGroupElt`( resolution, letter, g ) | ( method )

Returns: A letter

Multiplies the letter letter with the group element g and returns the result. If resolution is in standard representation, g has to be an integer and letter has to be a pair of integer. If resolution is in any other representation, letter and g can be in a form compatible with that representation or in the standard form (in the latter case, the returned value will also have standard form).

##### B.1-8 MultiplyFreeZGWordWithGroupElt

`‣ MultiplyFreeZGWordWithGroupElt`( resolution, word, g ) | ( method )

Returns: A word

Multiplies the word word with the group element g and returns the result. If resolution is in standard representation, g has to be an integer and word has to be a list of pairs of integers. If resolution is in any other representation, word and g can be in a form compatible with that representation or in the standard form (in the latter case, the returned value will also have standard form).

##### B.1-9 BoundaryOfFreeZGLetter

`‣ BoundaryOfFreeZGLetter`( resolution, term, letter ) | ( method )

Returns: free ZG word (in the same representation as letter)

Calculates the boundary of the letter (word of length 1) letter of the termth module of resolution.

The returned value is a word of the term-1st module and comes in the same representation as letter.

##### B.1-10 BoundaryOfFreeZGWord

`‣ BoundaryOfFreeZGWord`( resolution, term, word ) | ( method )

Returns: free ZG word (in the same representation as letter)

Calculates the boundary of the word word of the termth module of resolution.

The returned value is a word of the term-1st module and comes in the same representation as word.

#### B.2 Converting Between Representations

Four methods are provided to convert letters and words from standard representation to any other representation and back again.

##### B.2-1 ConvertStandardLetter

`‣ ConvertStandardLetter`( resolution, term, letter ) | ( method )

`‣ ConvertStandardLetterNC`( resolution, term, letter ) | ( method )

Returns: letter in the representation of resolution

Converts the letter letter in standard representation to the representation of resolution. The NC version does not check whether letter really is a letter in standard representation.

##### B.2-2 ConvertStandardWord

`‣ ConvertStandardWord`( resolution, term, word ) | ( method )

`‣ ConvertStandardWordNC`( resolution, term, word ) | ( method )

Returns: word in the representation of resolution

Converts the word word in standard representation to the representation of resolution. The NC version does not check whether word is a valid word in standard representation.

##### B.2-3 ConvertLetterToStandardRep

`‣ ConvertLetterToStandardRep`( resolution, term, letter ) | ( method )

`‣ ConvertLetterToStandardRepNC`( resolution, term, letter ) | ( method )

Returns: letter in standard representation

Converts the letter letter in the representation of resolution to the standard representation. The NC version does not check whether letter is a valid letter of resolution.

##### B.2-4 ConvertWordToStandardRep

`‣ ConvertWordToStandardRep`( resolution, term, word ) | ( method )

`‣ ConvertWordToStandardRepNC`( resolution, term, word ) | ( method )

Returns: word in standard representation

Converts the word word in the representation of resolution to the standard representation. The NC version does not check whether word is a valid word of resolution.

#### B.3 Special Methods for `HapResolutionRep`

Some methods explicitely require the input to be in the standard representation (HapResolutionRep). Two of these test if a word/letter is really in standard representation, the other ones are non-check versions of the universal methods.

##### B.3-1 IsFreeZGLetter

`‣ IsFreeZGLetter`( resolution, term, letter ) | ( method )

Returns: boolean

Checks if letter is an valid letter (word of length 1) in standard representation of the termth module of resolution.

##### B.3-2 IsFreeZGWord

`‣ IsFreeZGWord`( resolution, term, word ) | ( method )

Returns: boolean

Check if word is a valid word in large standard representation of the termth module in resolution.

##### B.3-3 MultiplyGroupEltsNC

`‣ MultiplyGroupEltsNC`( resolution, x, y ) | ( method )

Returns: positive integer

Given positive integers `x` and `y`, this returns the position of the product of the group elements represented by the positive integers x and x. This assumes that all input is in standard representation and does not check the input.

##### B.3-4 MultiplyFreeZGLetterWithGroupEltNC

`‣ MultiplyFreeZGLetterWithGroupEltNC`( resolution, letter, g ) | ( method )

Returns: A letter in standard representation

Multiplies the letter letter with the group element represented by the positive integer g and returns the result. The input is assumed to be in HapResolutionRep and is not checked.

##### B.3-5 MultiplyFreeZGWordWithGroupEltNC

`‣ MultiplyFreeZGWordWithGroupEltNC`( resolution, word, g ) | ( method )

Returns: A letter in standard representation

Multiplies the word word with the group element represented by the positive integer g and returns the result. The input is assumed to be in HapResolutionRep and is not checked.

##### B.3-6 BoundaryOfFreeZGLetterNC

`‣ BoundaryOfFreeZGLetterNC`( resolution, term, letter ) | ( method )

Returns: free ZG word in standard representation

Calculates the boundary of the letter (word of length 1) letter of the termth module of resolution. The input is assumed to be in standard representation and not checked.

##### B.3-7 BoundaryOfFreeZGWordNC

`‣ BoundaryOfFreeZGWordNC`( resolution, term, word ) | ( method )

Returns: free ZG word in standard representation

Calculates the boundary of the word word of the termth module of resolution. The input is assumed to be in standard representation and not checked.

#### B.4 The `HapLargeGroupResolutionRep` Representation

The large group representation has one additional component called `groupring`. Elements of the modules in a resolution are represented by lists of group ring elements. The length of the list corresponds to the dimension of the free module.

All methods for the generic representation do also work for the large group representation. Some of them are wrappers for special methods which do only work for this representation. The following list only contains the methods which are not already present in the generic representation.

Note that the input or the output of these functions does not comply with the standard representation.

##### B.4-1 GroupRingOfResolution

`‣ GroupRingOfResolution`( resolution ) | ( method )

Returns: group ring

This returns the group ring of resolution. Note that by the way that group rings are handled in GAP, this is not equal to `GroupRing(R,GroupOfResolution(resolution))` where `R` is the ring of the resolution.

##### B.4-2 MultiplyGroupElts_LargeGroupRep

`‣ MultiplyGroupElts_LargeGroupRep`( resolution, x, y ) | ( method )

`‣ MultiplyGroupEltsNC_LargeGroupRep`( resolution, x, y ) | ( method )

Returns: group element

Returns the product of x and y. The NC version does not check whether x and y are actually elements of the group of resolution.

##### B.4-3 IsFreeZGLetterNoTermCheck_LargeGroupRep

`‣ IsFreeZGLetterNoTermCheck_LargeGroupRep`( resolution, letter ) | ( method )

Returns: boolean

Returns `true` if letter has the form of a letter (a module element with exactly one non-zero entry which has exactly one non-zero coefficient) a module of resolution in the `HapLargeGroupResolution` representation. Note that it is not tested if letter actually is a letter in any term of resolution

##### B.4-4 IsFreeZGWordNoTermCheck_LargeGroupRep

`‣ IsFreeZGWordNoTermCheck_LargeGroupRep`( resolution, word ) | ( method )

Returns: boolean

Returns `true` if word has the form of a word of a module of resolution in the `HapLargeGroupResolution` representation. Note that it is not tested if word actually is a word in any term of resolution.

##### B.4-5 IsFreeZGLetter_LargeGroupRep

`‣ IsFreeZGLetter_LargeGroupRep`( resolution, term, letter ) | ( method )

Returns: boolean

Returns `true` if and only if letter is a letter (a word of length 1) of the termth module of resolution in the `hapLargeGroupResolution` representation. I.e. it tests if letter is a module element with exactly one non-zero entry which has exactly one non-zero coefficient.

##### B.4-6 IsFreeZGWord_LargeGroupRep

`‣ IsFreeZGWord_LargeGroupRep`( resolution, term, word ) | ( method )

Returns: boolean

Tests if word is an element of the termth module of resoultion.

##### B.4-7 MultiplyFreeZGLetterWithGroupElt_LargeGroupRep

`‣ MultiplyFreeZGLetterWithGroupElt_LargeGroupRep`( resolution, letter, g ) | ( method )

`‣ MultiplyFreeZGLetterWithGroupEltNC_LargeGroupRep`( resolution, letter, g ) | ( method )

Returns: free ZG letter in large group representation

Multiplies the letter letter with the group element g and returns the result. The NC version does not check whether g is an element of the group of resolution and letter can be a letter.

##### B.4-8 MultiplyFreeZGWordWithGroupElt_LargeGroupRep

`‣ MultiplyFreeZGWordWithGroupElt_LargeGroupRep`( resolution, word, g ) | ( method )

`‣ MultiplyFreeZGWordWithGroupEltNC_LargeGroupRep`( resolution, word, g ) | ( method )

Returns: free ZG word in large group representation

Multiplies the word word with the group element g and returns the result. The NC version does not check whether g is an element of the group of resolution and word can be a word.

##### B.4-9 GeneratorsOfModuleOfResolution_LargeGroupRep

`‣ GeneratorsOfModuleOfResolution_LargeGroupRep`( resolution, term ) | ( method )

Returns: list of letters/words in large group representation

Returns a set of generators for the termth module of resolution. The returned value is a list of vectors of group ring elements.

##### B.4-10 BoundaryOfGenerator_LargeGroupRep

`‣ BoundaryOfGenerator_LargeGroupRep`( resolution, term, n ) | ( method )

`‣ BoundaryOfGeneratorNC_LargeGroupRep`( resolution, term, n ) | ( method )

Returns: free ZG word in the large group representation

Returns the boundary of the nth generator of the termth module of resolution as a word in the n-1st module (in large group representation). The NC version does not check whether there is a termth module and if it has at least n generators.

##### B.4-11 BoundaryOfFreeZGLetterNC_LargeGroupRep

`‣ BoundaryOfFreeZGLetterNC_LargeGroupRep`( resolution, term, letter ) | ( method )

`‣ BoundaryOfFreeZGLetter_LargeGroupRep`( resolution, term, letter ) | ( method )

Returns: free ZG word in large group representation

Calculates the boundary of the letter letter of the termth module of resolution in large group representation. The NC version does not check whether letter actually is a letter in the termth module.

##### B.4-12 BoundaryOfFreeZGWord_LargeGroupRep

`‣ BoundaryOfFreeZGWord_LargeGroupRep`( resolution, term, word ) | ( method )

Returns: free ZG word in large group representation

Calculates the boundary of the element word of the termth module of resolution in large group representation. The NC version does not check whether word actually is a word in the termth module.

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

generated by GAPDoc2HTML