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 ]
 



generated by GAPDoc2HTML