Goto Chapter: | Top | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Bib | Ind

### 5. (Co-)Homology of simplicial complexes

Although simpcomp relies on the GAP package ''homology'' [DH+04] for its homology calculations due to efficiency reasons, the package contains some additional homology related functionality, which will be explained in this chapter.

#### 5.1 Homology computation

Apart from calculating boundaries of simplices, boundary matrices or the simplicial homology of a given complex, simpcomp is also able to compute a basis of the homology groups.

##### 5.1-1 SCBoundaryOperatorMatrix

`> SCBoundaryOperatorMatrix`( complex, dim ) | ( function )

Returns: a rectangular matrix upon success, `fail` otherwise.

Calculates the matrix of the boundary operator partial_dim+1. Notice, that each column contains the boundaries of a (dim+1)-simplex as a list of oriented dim-simplices and that the matrix is stored (GAP-typical) as a list of row vectors (as usual in GAP).

     gap> c:=SCFromFacets([[1,2,3],[1,2,6],[1,3,5],[1,4,5],[1,4,6],
                           [2,3,4],[2,4,5],[2,5,6],[3,4,6],[3,5,6]]);;
     gap> mat:=SCBoundaryOperatorMatrix(c,1);
     [ [ 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
       [ -1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 ],
       [ 0, -1, 0, 0, 0, -1, 0, 0, 0, 1, 1, 1, 0, 0, 0 ],
       [ 0, 0, -1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 1, 1, 0 ],
       [ 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, -1, 0, -1, 0, 1 ],
       [ 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0, -1, 0, -1, -1 ] ]
     gap>

##### 5.1-2 SCBoundarySimplex

`> SCBoundarySimplex`( simplex, orientation ) | ( function )

Returns: a list upon success, `fail` otherwise.

Calculates the boundary of a given simplex. If the flag orientation is set to true, the function returns the boundary as a list of oriented simplices of the form [ ORIENTATION, SIMPLEX ], where ORIENTATION is either +1 or -1 and a value of +1 means that SIMPLEX is positively oriented and a value of -1 that SIMPLEX is negatively oriented. If the ORIENTATION flag is false, an unoriented list of simplices is returned, see the example.

     gap> SCBoundarySimplex([1..5],true);
     [ [ -1, [ 2, 3, 4, 5 ] ], [ 1, [ 1, 3, 4, 5 ] ], [ -1, [ 1, 2, 4, 5 ] ],
       [ 1, [ 1, 2, 3, 5 ] ], [ -1, [ 1, 2, 3, 4 ] ] ]
     gap> SCBoundarySimplex([1..5],false);
     [ [ 2, 3, 4, 5 ], [ 1, 3, 4, 5 ], [ 1, 2, 4, 5 ], [ 1, 2, 3, 5 ],
       [ 1, 2, 3, 4 ] ]

##### 5.1-3 SCHomologyBasis

`> SCHomologyBasis`( complex, dim ) | ( function )

Returns: a list of pairs of the form `[ integer, list ]` upon success, `fail` otherwise.

Calculates a set of basis vectors for the dim-dimensional homology group (with integer coefficients) of complex. The entries of the returned list are of the form [ MODULUS, [ BASEELM1, BASEELM2, ...] ], where the value MODULUS is 1 for the basis elements of the free part of the dim-th homology group and k>= 2 for the basis elements of the k-torsion part. The basis elements are stored as lists of coefficient-index pairs referring to the simplices of the complex, i.e. a basis element of the form [ [ lambda_1, i], [lambda_2, j], dots ] encodes the linear combination of simplices of the form lambda_1*Delta_1+lambda_2*Delta_2 with Delta_1=`SCSkel(complex,dim)[i]`, Delta_2=`SCSkel(complex,dim)[j]` and so on.

     gap> SCLib.SearchByName("(S^2xS^1)#RP^3");
     [ [ 247, "(S^2xS^1)#RP^3" ] ]
     gap> c:=SCLib.Load(247);;
     gap> SCHomologyBasis(c,1);
     [ [ 1, [ [ 1, 12 ], [ -1, 7 ], [ 1, 1 ] ] ],
       [ 2, [ [ 1, 68 ], [ -1, 69 ], [ -1, 71 ], [ 2, 72 ], [ -2, 73 ] ] ] ]

##### 5.1-4 SCHomologyBasisAsSimplices

`> SCHomologyBasisAsSimplices`( complex, dim ) | ( function )

Returns: a list of pairs of the form `[ integer, linear combination of simplices ]` upon success, `fail` otherwise.

In contrast to the function `SCHomologyBasis` (5.1-3) this functSion returns the basis elements in the same format as `SCHomologyBasis` (5.1-3), but every basis element is returned as a linear combination of simplices of complex. Each term of the linear combination is of the form [ FACTOR, SIMPLEX ], where FACTOR is a non-zero integer value.

     gap> SCLib.SearchByName("(S^2xS^1)#RP^3");
     [ [ 247, "(S^2xS^1)#RP^3" ] ]
     gap> c:=SCLib.Load(247);;
     gap> SCHomologyBasisAsSimplices(c,1);
     [ [ 1, [ [ 1, [ 2, 8 ] ], [ -1, [ 1, 8 ] ], [ 1, [ 1, 2 ] ] ] ],
       [ 2, [ [ 1, [ 11, 12 ] ], [ -1, [ 11, 13 ] ], [ -1, [ 12, 13 ] ],
              [ 2, [ 12, 14 ] ], [ -2, [ 13, 14 ] ] ] ] ]

##### 5.1-5 SCHomologyInternal

`> SCHomologyInternal`( complex ) | ( function )

Returns: a list of pairs of the form `[ integer, list ]` upon success, `fail` otherwise.

This function computes the reduced simplicial homology with integer coefficients of a given simplicial complex complex with integer coefficients. It uses the algorithm described in [DKT08].

The output is a list of homology groups of the form [H_0,....,H_d], where d is the dimension of complex. The format of the homology groups H_i is given in terms of their maximal cyclic subgroups, i.e. a homology group H_icong Z^f + Z / t_1 Z times dots times Z / t_n Z is returned in form of a list [ f, [t_1,...,t_n] ], where f is the (integer) free part of H_i and t_i denotes the torsion parts of H_i ordered in weakly incresing size.

     gap> c:=SCFromFacets([[1,2,3],[1,2,6],[1,3,5],[1,4,5],[1,4,6],
                           [2,3,4],[2,4,5],[2,5,6],[3,4,6],[3,5,6]]);;
     gap> SCHomologyInternal(c);
     [ [ 0, [  ] ], [ 0, [ 2 ] ], [ 0, [  ] ] ]

#### 5.2 Cohomology computation

simpcomp can also compute the cohomology groups of simplicial complexes, bases of these cohomology groups, the cup product of two cocycles and the intersection form of (orientable) 4-manifolds. Due to the enormous amount of resources needed for the computation of exact eigenvalues, the signature of the intersection form cannot be computed within `GAP`. However, in some cases the `GAP` function `Eigenvalues` can be used.

##### 5.2-1 SCCoboundaryOperatorMatrix

`> SCCoboundaryOperatorMatrix`( complex, dim ) | ( function )

Returns: a rectangular matrix upon success, `fail` otherwise.

Calculates the matrix of the coboundary operator d^dim+1 as a list of row vectors.

     gap> c:=SCFromFacets([[1,2,3],[1,2,6],[1,3,5],[1,4,5],[1,4,6],
                           [2,3,4],[2,4,5],[2,5,6],[3,4,6],[3,5,6]]);
     gap> mat:=SCCoboundaryOperatorMatrix(c,1);;
     [ [ -1, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
       [ -1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0 ],
       [ 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0 ],
       [ 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0 ],
       [ 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0 ],
       [ 0, 0, 0, 0, 0, -1, 1, 0, 0, -1, 0, 0, 0, 0, 0 ],
       [ 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0 ],
       [ 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, -1 ],
       [ 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, -1, 0 ],
       [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, -1 ] ]

##### 5.2-2 SCCohomology

`> SCCohomology`( complex ) | ( function )

Returns: a list of pairs of the form `[ integer, list ]` upon success, `fail` otherwise.

This function computes the simplicial cohomology of a given simplicial complex complex with integer coefficients. It uses the algorithm described in [DKT08].

The output is a list of cohomology groups of the form [H^0,....,H^d], where d is the dimension of complex. The format of the cohomology groups H^i is given in terms of their maximal cyclic subgroups, i.e. a cohomology group H^icong Z^f + Z / t_1 Z times dots times Z / t_n Z is returned in form of a list [ f, [t_1,...,t_n] ], where f is the (integer) free part of H^i and t_i denotes the torsion parts of H^i ordered in weakly incresing size.

     gap> c:=SCFromFacets([[1,2,3],[1,2,6],[1,3,5],[1,4,5],[1,4,6],
                           [2,3,4],[2,4,5],[2,5,6],[3,4,6],[3,5,6]]);
     gap> SCCohomology(c);
     [ [ 1, [  ] ], [ 0, [  ] ], [ 0, [ 2 ] ] ]
     gap>

##### 5.2-3 SCCohomologyBasis

`> SCCohomologyBasis`( complex, dim ) | ( function )

Returns: a list of pairs of the form `[ integer, list ]` upon success, `fail` otherwise.

Calculates a set of basis vectors for the dim-dimensional cohomology group (with integer coefficients) of complex. The entries of the returned list are of the form [ MODULUS, [ BASEELM1, BASEELM2, ...] ], where the value MODULUS is 1 for the basis elements of the free part of the dim-th cohomology group and k>= 2 for the basis elements of the k-torsion part. The basis elements are stored as lists of coefficient-index pairs referring to the simplices of the complex, i.e. a basis element of the form [ [ lambda_1, i], [lambda_2, j], dots ] encodes the linear combination of simplices of the form lambda_1*Delta_1+lambda_2*Delta_2 with Delta_1=`SCSkel(complex,dim)[i]`, Delta_2=`SCSkel(complex,dim)[j]` and so on.

     gap> SCLib.SearchByName("SU(3)/SO(3)");
     [ [ 222, "SU(3)/SO(3) (VT)" ], [ 520, "SU(3)/SO(3) (VT)" ],
       [ 526, "SU(3)/SO(3) (VT)" ], [ 528, "SU(3)/SO(3) (VT)" ] ]
     gap> c:=SCLib.Load(222);;
     gap> SCCohomologyBasis(c,3);
     [ [ 2, [ [ -9, 259 ], [ 9, 262 ], [ 9, 263 ], [ -9, 270 ], [ 9, 271 ],
               [ -9, 273 ], [ -9, 274 ], [ -18, 275 ], [ -9, 276 ], [ 9, 278 ],
               [ -9, 279 ], [ -9, 280 ], [ 3, 283 ], [ -3, 285 ], [ 3, 289 ],
               [ -3, 294 ], [ 3, 310 ], [ -3, 313 ], [ 3, 316 ], [ -1, 317 ],
               [ -6, 318 ], [ 3, 319 ], [ -6, 320 ], [ 6, 321 ], [ 1, 322 ],
               [ 3, 325 ], [ -1, 328 ], [ 6, 330 ], [ -2, 331 ], [ 12, 332 ],
               [ 7, 333 ], [ -5, 334 ], [ 1, 345 ], [ 3, 355 ], [ -9, 357 ],
               [ 9, 358 ], [ 1, 363 ], [ 12, 365 ], [ -9, 366 ], [ -3, 370 ],
               [ -1, 371 ], [ -3, 372 ], [ 8, 373 ], [ -1, 374 ], [ 6, 375 ],
               [ 9, 376 ], [ 3, 377 ], [ 1, 380 ], [ 3, 383 ], [ -8, 385 ],
               [ -9, 386 ], [ -9, 388 ], [ -18, 404 ], [ 9, 410 ], [ -9, 425 ],
               [ -18, 426 ], [ -9, 427 ], [ 9, 428 ], [ -9, 429 ], [ 3, 433 ],
               [ -3, 435 ], [ -9, 437 ], [ 10, 442 ], [ 12, 445 ], [ 1, 447 ],
               [ -19, 448 ], [ 2, 449 ], [ -1, 450 ], [ -9, 451 ], [ 3, 453 ],
               [ 1, 455 ], [ 1, 457 ], [ -11, 458 ], [ -9, 459 ], [ 9, 461 ],
               [ 9, 462 ], [ -9, 468 ], [ 9, 469 ], [ -18, 471 ], [ -9, 472 ],
               [ 9, 474 ], [ -9, 475 ], [ 9, 488 ], [ 9, 495 ], [ -9, 500 ],
               [ -3, 504 ], [ 9, 505 ], [ 9, 512 ], [ 9, 515 ], [ 6, 519 ],
               [ 18, 521 ], [ -15, 523 ], [ 9, 524 ], [ -3, 525 ], [ 18, 527 ],
               [ -18, 528 ], [ 6, 529 ], [ 6, 531 ], [ 12, 532 ] ] ] ]

##### 5.2-4 SCCohomologyBasisAsSimplices

`> SCCohomologyBasisAsSimplices`( complex, dim ) | ( function )

Returns: a list of pars of the form `[ integer, linear combination of simplices ]` upon success, `fail` otherwise.

In contrast to the function `SCCohomologyBasis` (5.2-3) this function returns the basis elements in the same format as `SCCohomologyBasis` (5.2-3), but every basis element is returned as a linear combination of simplices of complex. Each term of the linear combination is of the form [ FACTOR, SIMPLEX ], where FACTOR is a non-zero integer value.

     gap> SCLib.SearchByName("SU(3)/SO(3)");
     [ [ 222, "SU(3)/SO(3) (VT)" ], [ 520, "SU(3)/SO(3) (VT)" ],
       [ 526, "SU(3)/SO(3) (VT)" ], [ 528, "SU(3)/SO(3) (VT)" ] ]
     gap> c:=SCLib.Load(222);;
     gap> SCCohomologyBasisAsSimplices(c,3);
     [ [ 2, [ [ -9, [ 2, 7, 8, 9 ] ], [ 9, [ 2, 7, 8, 12 ] ], [ 9, [ 2, 7, 8, 13 ] ],
              [ -9, [ 2, 7, 11, 12 ] ], [ 9, [ 2, 7, 11, 13 ] ], [ -9, [ 2, 8, 9, 10 ] ],
              [ -9, [ 2, 8, 9, 11 ] ], [ -18, [ 2, 8, 9, 12 ] ], [ -9, [ 2, 8, 9, 13 ] ],
              [ 9, [ 2, 8, 10, 12 ] ], [ -9, [ 2, 8, 10, 13 ] ],
              [ -9, [ 2, 8, 11, 12 ] ], [ 3, [ 2, 9, 10, 12 ] ],
              [ -3, [ 2, 9, 11, 12 ] ], [ 3, [ 3, 4, 5, 7 ] ], [ -3, [ 3, 4, 5, 12 ] ],
              [ 3, [ 3, 4, 10, 12 ] ], [ -3, [ 3, 5, 6, 7 ] ], [ 3, [ 3, 5, 6, 11 ] ],
              [ -1, [ 3, 5, 6, 13 ] ], [ -6, [ 3, 5, 7, 8 ] ], [ 3, [ 3, 5, 7, 10 ] ],
              [ -6, [ 3, 5, 7, 11 ] ], [ 6, [ 3, 5, 7, 12 ] ], [ 1, [ 3, 5, 7, 13 ] ],
              [ 3, [ 3, 5, 8, 12 ] ], [ -1, [ 3, 5, 9, 13 ] ], [ 6, [ 3, 5, 10, 12 ] ],
              [ -2, [ 3, 5, 10, 13 ] ], [ 12, [ 3, 5, 11, 12 ] ],
              [ 7, [ 3, 5, 11, 13 ] ], [ -5, [ 3, 5, 12, 13 ] ], [ 1, [ 3, 6, 9, 13 ] ],
              [ 3, [ 3, 7, 10, 12 ] ], [ -9, [ 3, 7, 11, 12 ] ], [ 9, [ 3, 7, 11, 13 ] ],
              [ 1, [ 3, 8, 9, 13 ] ], [ 12, [ 3, 8, 10, 12 ] ], [ -9, [ 3, 8, 10, 13 ] ],
              [ -3, [ 3, 9, 10, 12 ] ], [ -1, [ 3, 9, 10, 13 ] ],
              [ -3, [ 3, 9, 11, 12 ] ], [ 8, [ 3, 9, 11, 13 ] ],
              [ -1, [ 3, 9, 12, 13 ] ], [ 6, [ 3, 10, 11, 12 ] ],
              [ 9, [ 3, 10, 11, 13 ] ], [ 3, [ 3, 10, 12, 13 ] ], [ 1, [ 4, 5, 6, 8 ] ],
              [ 3, [ 4, 5, 6, 11 ] ], [ -8, [ 4, 5, 6, 13 ] ], [ -9, [ 4, 5, 7, 8 ] ],
              [ -9, [ 4, 5, 7, 11 ] ], [ -18, [ 4, 6, 8, 9 ] ], [ 9, [ 4, 6, 9, 13 ] ],
              [ -9, [ 4, 8, 9, 10 ] ], [ -18, [ 4, 8, 9, 12 ] ], [ -9, [ 4, 8, 9, 13 ] ],
              [ 9, [ 4, 8, 10, 12 ] ], [ -9, [ 4, 8, 10, 13 ] ], [ 3, [ 4, 9, 10, 12 ] ],
              [ -3, [ 4, 9, 11, 12 ] ], [ -9, [ 4, 9, 12, 13 ] ], [ 10, [ 5, 6, 7, 8 ] ],
              [ 12, [ 5, 6, 7, 11 ] ], [ 1, [ 5, 6, 7, 13 ] ], [ -19, [ 5, 6, 8, 9 ] ],
              [ 2, [ 5, 6, 8, 11 ] ], [ -1, [ 5, 6, 8, 12 ] ], [ -9, [ 5, 6, 8, 13 ] ],
              [ 3, [ 5, 6, 9, 11 ] ], [ 1, [ 5, 6, 9, 13 ] ], [ 1, [ 5, 6, 10, 13 ] ],
              [ -11, [ 5, 6, 11, 13 ] ], [ -9, [ 5, 7, 8, 9 ] ], [ 9, [ 5, 7, 8, 12 ] ],
              [ 9, [ 5, 7, 8, 13 ] ], [ -9, [ 5, 7, 11, 12 ] ], [ 9, [ 5, 7, 11, 13 ] ],
              [ -18, [ 5, 8, 9, 12 ] ], [ -9, [ 5, 8, 9, 13 ] ], [ 9, [ 5, 8, 10, 12 ] ],
              [ -9, [ 5, 8, 11, 12 ] ], [ 9, [ 6, 7, 8, 13 ] ], [ 9, [ 6, 7, 11, 13 ] ],
              [ -9, [ 6, 8, 10, 13 ] ], [ -3, [ 6, 9, 11, 12 ] ],
              [ 9, [ 6, 9, 11, 13 ] ], [ 9, [ 7, 8, 9, 13 ] ], [ 9, [ 7, 8, 11, 12 ] ],
              [ 6, [ 7, 9, 11, 12 ] ], [ 18, [ 7, 11, 12, 13 ] ],
              [ -15, [ 8, 9, 10, 12 ] ], [ 9, [ 8, 9, 10, 13 ] ],
              [ -3, [ 8, 9, 11, 12 ] ], [ 18, [ 8, 10, 11, 12 ] ],
              [ -18, [ 8, 10, 12, 13 ] ], [ 6, [ 9, 10, 11, 12 ] ],
              [ 6, [ 9, 10, 12, 13 ] ], [ 12, [ 9, 11, 12, 13 ] ] ] ] ]

##### 5.2-5 SCCupProduct

`> SCCupProduct`( complex, cocycle1, cocycle2 ) | ( function )

Returns: a list of oriented simplices upon success, `fail` otherwise.

The cup product is a method of adjoining two cocycles of degree p and q to form a composite cocycle of degree p + q.
The construction of the cup product starts with a product of cochains: if cocycle1 is a p-cochain and cocylce2 is a q-cochain (given as list of oriented p- (q-)simplices, then
cocycle1 smile cocycle2(sigma) =cocycle1(sigma circ iota_0,1, ... p) * cocycle2(sigma circ iota_p, p+1 ,..., p + q)
where sigma is a (p + q)-simplex and iota_S, S subset 0,1,...,p+q is the canonical embedding of the simplex spanned by S into the (p + q)-standard simplex.
sigma circ iota_0,1, ..., p is called the p-th front face and sigma circ iota_p, p+1, ..., p + q is the q-th back face of sigma, respectively.

     gap> SCLib.SearchByName("K3");
     [ [ 584, "K3 surface" ] ]
     gap> c:=SCLib.Load(584);;
     gap> basis:=SCCohomologyBasisAsSimplices(c,2);;
     gap> SCCupProduct(c,basis[1][2],basis[1][2]);
     [ [ 1, [ 1, 2, 4, 7, 11 ] ], [ 1, [ 2, 3, 4, 5, 9 ] ] ]
     gap> SCCupProduct(c,basis[1][2],basis[2][2]);
     [ [ -1, [ 1, 2, 4, 7, 11 ] ], [ -1, [ 1, 2, 4, 7, 15 ] ],
       [ -1, [ 2, 3, 4, 5, 9 ] ] ]
     gap>

##### 5.2-6 SCIntersectionForm

`> SCIntersectionForm`( complex ) | ( function )

Returns: a square matrix of integer values upon success, `fail` otherwise.

For 2d-dimensional orientable pseudomanifolds M the cup product (see `SCCupProduct` (5.2-5)) defines a bilinear function
H^d ( M ) timesH^d ( M ) ->H^2d (M), (a,b) -> a cup b
called the intersection form. This function returns the intersection form in integral cohomology in form of a matrix `mat` with respect to the basis of H^d ( M ) computed by `SCCohomologyBasisAsSimplices` (5.2-4). The matrix entry `M[i][j]` equals the intersection number of the `i`-th element with the `j`-th element of the basis.

     gap> SCLib.SearchByName("CP^2");
     [ [ 17, "CP^2 (VT)" ], [ 88, "CP^2#CP^2" ], [ 89, "CP^2#-CP^2" ],
       [ 186, "CP^2#(S^2xS^2)" ], [ 499, "(S^3~S^1)#(CP^2)^{#5} (VT)" ] ]
     gap> c:=SCLib.Load(17);;
     gap> c1:=SCConnectedSum(c,c);;
     gap> c2:=SCConnectedSumMinus(c,c);;
     gap> q1:=SCIntersectionForm(c1);;
     gap> q2:=SCIntersectionForm(c2);;
     gap> PrintArray(q1);
     [ [  1,  0 ],
       [  0,  1 ] ]
     gap> PrintArray(q2);
     [ [   1,   0 ],
       [   0,  -1 ] ]

##### 5.2-7 SCIntersectionFormParity

`> SCIntersectionFormParity`( complex ) | ( function )

Returns: `0` or `1` upon success, `fail` otherwise.

Computes the parity of the intersection form of complex (see `SCIntersectionForm` (5.2-6)). If the intersection for is even (i. e. all diagonal entries are even numbers) `0`, if it is odd (at least one diagonal entry is odd), `1` is returned.

     gap> SCLib.SearchByName("S^2xS^2");
     [ [ 51, "S^2xS^2" ], [ 110, "S^2xS^2 (VT)" ], [ 111, "S^2xS^2 (VT)" ],
       [ 112, "S^2xS^2 (VT)" ], [ 114, "(S^2xS^2)#(S^2xS^2)" ],
       [ 144, "(S^2xS^2)#(S^2xS^2) (VT)" ], [ 145, "(S^2xS^2)#(S^2xS^2) (VT)" ],
       [ 186, "CP^2#(S^2xS^2)" ] ]
     gap> c:=SCLib.Load(51);;
     gap> SCIntersectionFormParity(c);
     0
     gap> SCLib.SearchByName("CP^2");
     [ [ 17, "CP^2 (VT)" ], [ 88, "CP^2#CP^2" ], [ 89, "CP^2#-CP^2" ],
       [ 186, "CP^2#(S^2xS^2)" ], [ 499, "(S^3~S^1)#(CP^2)^{#5} (VT)" ] ]
     gap> c:=SCLib.Load(17);;
     gap> SCIntersectionFormParity(c);
     1
     gap>

##### 5.2-8 SCIntersectionFormDimensionality

`> SCIntersectionFormDimensionality`( complex ) | ( function )

Returns: an integer upon success, `fail` otherwise.

Returns the dimensionality of the intersection form of complex, i. e. the length of a minimal generating set of H^d (M) (where 2d is the dimension of complex). See `SCIntersectionForm` (5.2-6) for further details.

     gap> SCLib.SearchByName("CP^2");
     [ [ 17, "CP^2 (VT)" ], [ 88, "CP^2#CP^2" ], [ 89, "CP^2#-CP^2" ],
       [ 186, "CP^2#(S^2xS^2)" ], [ 499, "(S^3~S^1)#(CP^2)^{#5} (VT)" ] ]
     gap> c:=SCLib.Load(17);; ## gap> SCIntersectionFormParity(c);
     1
     gap> SCCohomology(c);
     [ [ 1, [  ] ], [ 0, [  ] ], [ 1, [  ] ], [ 0, [  ] ], [ 1, [  ] ] ]
     gap> SCIntersectionFormDimensionality(c);
     1
     gap> d:=SCConnectedProduct(c,10);;
     gap> SCIntersectionFormDimensionality(d);
     10

##### 5.2-9 SCIntersectionFormSignature

`> SCIntersectionFormSignature`( complex ) | ( function )

Returns: a triple of integers upon success, `fail` otherwise.

Returns the dimensionality and the signature of the intersection form of complex as a 3-tuple that contains the dimensionality in the first entry and the number of positive / negative eigenvalues in the second and third entry. See `SCIntersectionForm` (5.2-6) for further details.

     gap> SCLib.SearchByName("CP^2");
     [ [ 17, "CP^2 (VT)" ], [ 88, "CP^2#CP^2" ], [ 89, "CP^2#-CP^2" ],
       [ 186, "CP^2#(S^2xS^2)" ], [ 499, "(S^3~S^1)#(CP^2)^{#5} (VT)" ] ]
     gap> c:=SCLib.Load(17);; ## gap> SCIntersectionFormParity(c);
     1
     gap> SCCohomology(c);
     [ [ 1, [  ] ], [ 0, [  ] ], [ 1, [  ] ], [ 0, [  ] ], [ 1, [  ] ] ]
     gap> SCIntersectionFormSignature(c);
     [ 1, 0, 1 ]
     gap> d:=SCConnectedSum(c,c);
     [SimplicialComplex

      Properties known: Dim, Facets, Name, VertexLabels, Vertices.

      Name="CP^2 (VT)#+-CP^2 (VT)"
      Dim=4

     /SimplicialComplex]
     gap> SCIntersectionFormSignature(d);
     [ 2, 1, 1 ]
     gap> d:=SCConnectedSumMinus(c,c);;
     gap> SCIntersectionFormSignature(d);
     [ 2, 0, 2 ]

Top of Book | Previous Chapter | Next Chapter

Goto Chapter: | Top | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Bib | Ind

generated by GAPDoc2HTML