GAP (HAP commands) - Chapter 5: Resolutions of the ground ring

Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 Ind
[Top of Book] [Contents] [Previous Chapter] [Next Chapter]

[MathJax on]

5 Resolutions of the ground ring
5.1
5.1-1 TietzeReducedResolution
5.1-2 ResolutionArithmeticGroup
5.1-3 FreeGResolution
5.1-4 ResolutionGTree
5.1-5 ResolutionSL2Z
5.1-6 ResolutionAbelianGroup
5.1-7 ResolutionAlmostCrystalGroup
5.1-8 ResolutionAlmostCrystalQuotient
5.1-9 ResolutionArtinGroup
5.1-10 ResolutionAsphericalPresentation
5.1-11 ResolutionBieberbachGroup
5.1-12 ResolutionCoxeterGroup
5.1-13 ResolutionDirectProduct
5.1-14 ResolutionExtension
5.1-15 ResolutionFiniteDirectProduct
5.1-16 ResolutionFiniteExtension
5.1-17 ResolutionFiniteGroup
5.1-18 ResolutionFiniteSubgroup
5.1-19 ResolutionGraphOfGroups
5.1-20 ResolutionNilpotentGroup
5.1-21 ResolutionNormalSeries
5.1-22 ResolutionPrimePowerGroup
5.1-23 ResolutionSmallFpGroup
5.1-24 ResolutionSubgroup
5.1-25 ResolutionSubnormalSeries
5.1-26 TwistedTensorProduct
5.1-27 ConjugatedResolution
5.1-28 RecalculateIncidenceNumbers

### 5 Resolutions of the ground ring

#### 5.1

##### 5.1-1 TietzeReducedResolution

`‣ TietzeReducedResolution`( R ) | ( function )

Inputs a ZG-resolution R and returns a ZG-resolution S which is obtained from R by applying "Tietze like operations" in each dimension. The hope is that S has fewer free generators than R.

Examples: 1

##### 5.1-2 ResolutionArithmeticGroup

`‣ ResolutionArithmeticGroup`( P, n ) | ( function )

Inputs a positive integer n and a string P equal to one of the following:
"SL(2,Z)" , "SL(3,Z)" , "PGL(3,Z[i])" , "PGL(3,Eisenstein_Integers)" , "PSL(4,Z)" , "PSL(4,Z)_b" , "PSL(4,Z)_c" , "PSL(4,Z)_d" , "Sp(4,Z)"
or the string
"GL(2,O(-d))"
for d=1, 2, 3, 5, 6, 7, 10, 11, 13, 14, 15, 17, 19, 21, 22, 23, 26, 43
or the string
"SL(2,O(-d))"
for d=2, 3, 5, 7, 10, 11, 13, 14, 15, 17, 19, 21, 22, 23, 26, 43, 67, 163
or the string
"SL(2,O(-d))_a"
for d=2, 7, 11, 19.
It returns n terms of a free ZG-resolution for the group G described by the string. Here O(-d) denotes the ring of integers of Q(sqrt(-d)) and subscripts _a, _b , _c , _d denote alternative non-free ZG-resolutions for a given group G.
Data for the first list of resolutions was provided provided by Mathieu Dutour. Data for GL(2,O(-d)) was provided by Sebastian Schoenennbeck. Data for SL(2,O(-d)) was provided bySebastian Schoennenbeck for d <= 26 and by Alexander Rahm for d>26 and for the alternative complexes.

Examples: 1

##### 5.1-3 FreeGResolution

`‣ FreeGResolution`( P, n ) | ( function )

`‣ FreeGResolution`( P, n, p ) | ( function )

Inputs a non-free ZG-resolution P with finite stabilizer groups, and a positive integer n. It returns a free ZG-resolution of length equal to the minimum of n and the length of P. If one requires only a mod p resolution then the prime p can be entered as an optional third argument.

The free resolution is returned without a contracting homotopy.

Examples: 1 , 2 , 3 , 4 , 5 , 6

##### 5.1-4 ResolutionGTree

`‣ ResolutionGTree`( P, n ) | ( function )

Inputs a non-free ZG-resolution P of dimension 1 (i.e. a G-tree) with finite stabilizer groups, and a positive integer n. It returns a free ZG-resolution of length equal to n.

If P has a contracting homotopy then the free resolution is returned with a contracting homotopy.

This function was written by Bui Anh Tuan.

Examples:

##### 5.1-5 ResolutionSL2Z

`‣ ResolutionSL2Z`( p, n ) | ( function )

Inputs positive integers m, n and returns n terms of a ZG-resolution for the group G=SL(2,Z[1/m]) .

This function is joint work with Bui Anh Tuan.

Examples: 1 , 2 , 3

##### 5.1-6 ResolutionAbelianGroup

`‣ ResolutionAbelianGroup`( L, n ) | ( function )

`‣ ResolutionAbelianGroup`( G, n ) | ( function )

Inputs a list L:=[m_1,m_2, ..., m_d] of nonnegative integers, and a positive integer n. It returns n terms of a ZG-resolution for the abelian group G=Z_L[1]+Z_L[2]+···+Z_L[d] .

If G is finite then the first argument can also be the abelian group G itself.

Examples: 1 , 2

##### 5.1-7 ResolutionAlmostCrystalGroup

`‣ ResolutionAlmostCrystalGroup`( G, n ) | ( function )

Inputs a positive integer n and an almost crystallographic pcp group G. It returns n terms of a free ZG-resolution. (A group is almost crystallographic if it is nilpotent-by-finite and has no non-trivial finite normal subgroup. Such groups can be constructed using the ACLIB package.)

Examples: 1

##### 5.1-8 ResolutionAlmostCrystalQuotient

`‣ ResolutionAlmostCrystalQuotient`( G, n, c ) | ( function )

`‣ ResolutionAlmostCrystalQuotient`( G, n, c, false ) | ( function )

An almost crystallographic group G is an extension of a finite group P by a nilpotent group T, and has no non-trivial finite normal subgroup. We define the relative lower central series by setting T_1=T and T_i+1=[T_i,G].

This function inputs an almost crystallographic group G together with positive integers n and c. It returns n terms of a free ZQ-resolution R for the group Q=G/T_c .

In addition to the usual components, the resolution R has the component R.quotientHomomorphism which gives the quotient homomorphism G ⟶ Q.

If a fourth optional variable is set equal to "false" then the function omits to test whether Q is finite and a "more canonical" resolution is constructed.

Examples: 1

##### 5.1-9 ResolutionArtinGroup

`‣ ResolutionArtinGroup`( D, n ) | ( function )

Inputs a Coxeter diagram D and an integer n>1. It returns n terms of a free ZG-resolution R where G is the Artin monoid associated to D. It is conjectured that R is also a free resolution for the Artin group G. The conjecture is known to hold in certain cases.

G=R.group is infinite and returned as a finitely presented group. The list R.elts is a partial listing of the elements of G which grows as R is used. Initially R.elts is empty and then, any time the boundary of a resolution generator is called, R.elts is updated to include elements of G involved in the boundary.

The contracting homotopy on R has not yet been implemented! Furthermore, the group G is currently returned only as a finitely presented group (without any method for solving the word problem).

Examples: 1 , 2 , 3 , 4

##### 5.1-10 ResolutionAsphericalPresentation

`‣ ResolutionAsphericalPresentation`( F, R, n ) | ( function )

Inputs a free group F, a set R of words in F which constitute an aspherical presentation for a group G, and a positive integer n. (Asphericity can be a difficult property to verify. The function IsAspherical(F,R) could be of help.)

The function returns n terms of a free ZG-resolution R which has generators in dimensions < 3 only. No contracting homotopy on R will be returned.

Examples: 1

##### 5.1-11 ResolutionBieberbachGroup

`‣ ResolutionBieberbachGroup`( G ) | ( function )

`‣ ResolutionBieberbachGroup`( G, v ) | ( function )

Inputs a torsion free crystallographic group G, also known as a Bieberbach group, represented using AffineCrystGroupOnRight as in the GAP package Cryst. It also optionally inputs a choice of vector v in the euclidean space R^n on which G acts freely. The function returns n+1 terms of the free ZG-resolution of Z arising as the cellular chain complex of the tesselation of R^n by the Dirichlet-Voronoi fundamental domain determined by v.

This function is part of the HAPcryst package written by Marc Roeder and thus requires the HAPcryst package to be loaded.

The function requires the use of Polymake software.

Examples:

##### 5.1-12 ResolutionCoxeterGroup

`‣ ResolutionCoxeterGroup`( D, n ) | ( function )

Inputs a Coxeter diagram D and an integer n>1. It returns k terms of a free ZG-resolution R where G is the Coxeter group associated to D. Here k is the maximum of n and the number of vertices in the Coxeter diagram. At present the implementation is only for finite Coxeter groups and the group G is returned as a permutation group. The contracting homotopy on R has not yet been implemented!

Examples: 1 , 2

##### 5.1-13 ResolutionDirectProduct

`‣ ResolutionDirectProduct`( R, S ) | ( function )

`‣ ResolutionDirectProduct`( R, S, str ) | ( function )

Inputs a ZG-resolution R and ZH-resolution S. It outputs a ZD-resolution for the direct product D=G x H.

If G and H lie in a common group K, and if they commute and have trivial intersection, then an optional third variable str="internal" can be used. This will force D to be the subgroup GH in K.

Examples: 1

##### 5.1-14 ResolutionExtension

`‣ ResolutionExtension`( g, R, S ) | ( function )

`‣ ResolutionExtension`( g, R, S, str ) | ( function )

`‣ ResolutionExtension`( g, R, S, str, GmapE ) | ( function )

Inputs a surjective group homomorphism g:E ⟶ G with kernel N. It also inputs a ZN-resolution R and a ZG-resolution S. It returns a ZE-resolution. The groups E and G can be infinite.

If an optional fourth argument stris set equal to "TestFiniteness" then the groups N and G will be tested to see if they are finite. If they are finite then some speed saving routines will be invoked. One can also set str="NoTest".

If the homomorphism g is such that the GAP function PreImagesElement(g,x) doesn't work, then a function GmapE() should be included as a fifth input. For any x in G this function should return an element GmapE(x) in E which gets mapped onto x by g.

The contracting homotopy on the ZE-resolution has not yet been fully implemented for infinite groups!

Examples: 1 , 2

##### 5.1-15 ResolutionFiniteDirectProduct

`‣ ResolutionFiniteDirectProduct`( R, S ) | ( function )

`‣ ResolutionFiniteDirectProduct`( R, S, str ) | ( function )

Inputs a ZG-resolution R and ZH-resolution S where G and H are finite groups. It outputs a ZD-resolution for the direct product D=G×H.

If G and H lie in a common group K, and if they commute and have trivial intersection, then an optional third variable str="internal" can be used. This will force D to be the subgroup GH in K.

Examples:

##### 5.1-16 ResolutionFiniteExtension

`‣ ResolutionFiniteExtension`( gensE, gensG, R, n ) | ( function )

`‣ ResolutionFiniteExtension`( gensE, gensG, R, n, true ) | ( function )

`‣ ResolutionFiniteExtension`( gensE, gensG, R, n, false, S ) | ( function )

Inputs: a set gensE of generators for a finite group E; a set gensG equal to the image of gensE in a quotient group G of E; a ZG-resolution R up to dimension at least n; a positive integer n. It uses the TwistedTensorProduct() construction to return n terms of a ZE-resolution.

The function has an optional fourth argument which, when set equal to "true", invokes tietze reductions in the construction of a resolution for the kernel of E ⟶ G.

If a ZN-resolution S is available, where N is the kernel of the quotient E ⟶ G, then this can be incorporated into the computations using an optional fifth argument.

Examples: 1 , 2

##### 5.1-17 ResolutionFiniteGroup

`‣ ResolutionFiniteGroup`( gens, n ) | ( function )

`‣ ResolutionFiniteGroup`( gens, n, true ) | ( function )

`‣ ResolutionFiniteGroup`( gens, n, false, p ) | ( function )

`‣ ResolutionFiniteGroup`( gens, n, false, 0, str ) | ( function )

Inputs a set gens of generators for a finite group G and a positive integer n. It outputs n terms of a ZG-resolution.

The function has an optional third argument which, when set equal to true, invokes tietze reductions in the construction of the resolution.

The function has an optional fourth argument which, when set equal to a prime p, records the fact that the resolution will only be used for mod p calculations. This could speed up subsequent constructions.

The function has an optional fifth argument str which, when set equal to "extendible", returns a resolution whose length can be increased using the command R!.extend() .

Examples: 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15

##### 5.1-18 ResolutionFiniteSubgroup

`‣ ResolutionFiniteSubgroup`( R, K ) | ( function )

`‣ ResolutionFiniteSubgroup`( R, gensG, gensK ) | ( function )

Inputs a ZG-resolution for a finite group G and a subgroup K of index |G:K|. It returns a free ZK-resolution whose ZK-rank is |G:K| times the ZG-rank in each dimension.

Generating sets gensG, gensK for G and K can also be input to the function (though the method does not depend on a choice of generators).

This ZK-resolution is not reduced. ie. it has more than one generator in dimension 0.

Examples: 1 , 2 , 3

##### 5.1-19 ResolutionGraphOfGroups

`‣ ResolutionGraphOfGroups`( D, n ) | ( function )

`‣ ResolutionGraphOfGroups`( D, n, L ) | ( function )

Inputs a graph of groups D and a positive integer n. It returns n terms of a free ZG-resolution for the fundamental group G of D.

An optional third argument L=[R_1 , ... , R_t] can be used to list (in any order) free resolutions for some/all of the vertex and edge groups in D. If for some vertex or edge group no resolution is listed in L then the function ResolutionFiniteGroup() will be used to try to construct the resolution.

The ZG-resolution is usually not reduced. i.e. it has more than one generator in dimension 0.

The contracting homotopy on the ZG-resolution has not yet been implemented! Furthermore, the group G is currently returned only as a finitely presented group (without any method for solving the word problem).

Examples: 1 , 2

##### 5.1-20 ResolutionNilpotentGroup

`‣ ResolutionNilpotentGroup`( G, n ) | ( function )

`‣ ResolutionNilpotentGroup`( G, n, str ) | ( function )

Inputs a nilpotent group G and positive integer n. It returns n terms of a free ZG-resolution. The resolution is computed using a divide-and-conquer technique involving the lower central series.

This function can be applied to infinite groups G. For finite groups the function ResolutionNormalSeries() probably gives better results.

If an optional third argument str is set equal to "TestFiniteness" then the groups N and G will be tested to see if they are finite. If they are finite then some speed saving routines will be invoked.

The contracting homotopy on the ZE-resolution has not yet been fully implemented for infinite groups.

Examples: 1 , 2 , 3

##### 5.1-21 ResolutionNormalSeries

`‣ ResolutionNormalSeries`( L, n ) | ( function )

`‣ ResolutionNormalSeries`( L, n, true ) | ( function )

`‣ ResolutionNormalSeries`( L, n, false, p ) | ( function )

Inputs a positive integer n and a list L = [L_1 , ..., L_k] of normal subgroups L_i of a finite group G satisfying G = L_1 > L2 >... >L_k. Alternatively, L = [gensL_1, ... gensL_k] can be a list of generating sets for the L_i (and these particular generators will be used in the construction of resolutions). It returns a ZG-resolution by repeatedly using the function ResolutionFiniteExtension().

The function has an optional third argument which, if set equal to true, invokes tietze reductions in the construction of resolutions.

The function has an optional fourth argument which, if set equal to p > 0, produces a resolution which is only valid for mod p calculations.

Examples: 1 , 2 , 3 , 4 , 5

##### 5.1-22 ResolutionPrimePowerGroup

`‣ ResolutionPrimePowerGroup`( P, n ) | ( function )

`‣ ResolutionPrimePowerGroup`( G, n, p ) | ( function )

Inputs a p-group P and integer n>0. It uses GAP's standard linear algebra functions over the field F of p elements to construct a free FP-resolution for mod p calculations only. The resolution is minimal - meaning that the number of generators of R_n equals the rank of H_n(P,F).

The function can also be used to obtain a free non-minimal FG-resolution of a small group G of non-prime-power order. In this case the prime p must be entered as the third input variable. (In the non-prime-power case the algorithm is naive and not very good.)

Examples: 1 , 2 , 3

##### 5.1-23 ResolutionSmallFpGroup

`‣ ResolutionSmallFpGroup`( G, n ) | ( function )

`‣ ResolutionSmallFpGroup`( G, n, p ) | ( function )

Inputs a small finitely presented group G and an integer n>0. It returns n terms of a ZG-resolution which, in dimensions 1 and 2, corresponds to the given presentation for G. The method returns no contracting homotopy for the resolution.

The function has an optional fourth argument which, when set equal to a prime p, records the fact that the resolution will only be used for mod p calculations. This could speed up subsequent constructions.

This function was written by Irina Kholodna.

Examples: 1 , 2

##### 5.1-24 ResolutionSubgroup

`‣ ResolutionSubgroup`( R, K ) | ( function )

Inputs a ZG-resolution for an (infinite) group G and a subgroup K of finite index |G:K|. It returns a free ZK-resolution whose ZK-rank is |G:K| times the ZG-rank in each dimension.

If G is finite then the function ResolutionFiniteSubgroup(R,G,K) will probably work better. In particular, resolutions from this function probably won't work with the function EquivariantChainMap(). This ZK-resolution is not reduced. i.e. it has more than one generator in dimension 0.

Examples: 1 , 2 , 3

##### 5.1-25 ResolutionSubnormalSeries

`‣ ResolutionSubnormalSeries`( L, n ) | ( function )

Inputs a positive integer n and a list L = [L_1 , ... , L_k] of subgroups L_i of a finite group G=L_1 such that L_1 > L2 ... > L_k is a subnormal series in G (meaning that each L_i+1 must be normal in L_i). It returns a ZG-resolution by repeatedly using the function ResolutionFiniteExtension().

If L is a series of normal subgroups in G then the function ResolutionNormalSeries(L,n) will possibly work more efficiently.

Examples: 1

##### 5.1-26 TwistedTensorProduct

`‣ TwistedTensorProduct`( R, S, EhomG, GmapE, NhomE, NEhomN, EltsE, Mult, InvE ) | ( function )

Inputs a ZG-resolution R, a ZN-resolution S, and other data relating to a short exact sequence 1 ⟶ N ⟶ E ⟶ G ⟶ 1. It uses a perturbation technique of CTC Wall to construct a ZE-resolution F. Both G and N could be infinite. The "length" of F is equal to the minimum of the "length"s of R and S. The resolution R needs no contracting homotopy if no such homotopy is requied for F.

Examples: 1

##### 5.1-27 ConjugatedResolution

`‣ ConjugatedResolution`( R, x ) | ( function )

Inputs a ZG-resoluton R and an element x from some group containing G. It returns a ZG^x-resolution S where the group G^x is the conjugate of G by x. (The component S!.elts will be a pseudolist rather than a list.)

Examples:

##### 5.1-28 RecalculateIncidenceNumbers

`‣ RecalculateIncidenceNumbers`( R ) | ( function )

Inputs a ZG-resoluton R which arises as the cellular chain complex of a regular CW-complex. (Thus the boundary of any cell is a list of distinct cells.) It recalculates the incidence numbers for R. If it is applied to a resolution that is not regular then a wrong answer may be returned.

Examples:

[Top of Book] [Contents] [Previous Chapter] [Next Chapter]
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 Ind

generated by GAPDoc2HTML