By default, simpcomp uses an algorithm based on discrete Morse theory (see Chapter 12, SCHomology
(7.3-9)) for its homology computations. However, some additional (co-)homology related functionality cannot be realised using this algorithm. For this, simpcomp contains an additional (co-)homology algorithm (cf. SCHomologyInternal
(8.1-5)), which will be presented in this chapter.
Furthermore, whenever possible simpcomp makes use of the GAP package ''homology'' [DHSW11], for an alternative method to calculate homology groups (cf. SCHomologyClassic
(6.9-31)) which sometimes is much faster than the built-in discrete Morse theory algorithm.
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.
‣ SCBoundaryOperatorMatrix ( complex, k ) | ( method ) |
Returns: a rectangular matrix upon success, fail
otherwise.
Calculates the matrix of the boundary operator \(\partial_{\textit{k+1}}\) of a simplicial complex complex. Note that each column contains the boundaries of a k\(+1\)-simplex as a list of oriented k-simplices and that the matrix is stored 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 ] ]
‣ 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 orientation is set to false
, an unoriented list of simplices is returned.
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 ] ]
‣ SCHomologyBasis ( complex, k ) | ( method ) |
Returns: a list of pairs of the form [ integer, list of linear combinations of simplices ]
upon success, fail
otherwise.
Calculates a set of basis elements for the k-dimensional homology group (with integer coefficients) of a simplicial complex 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 k-th homology group and \(q\geq 2\) for the basis elements of the \(q\)-torsion part. In contrast to the function SCHomologyBasisAsSimplices
(8.1-4) 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 ] \dots\) encodes the linear combination of simplices of the form \(\lambda_1*\Delta_1+\lambda_2*\Delta_2\) with \(\Delta_1\)=SCSkel(complex,k)[i]
, \(\Delta_2\)=SCSkel(complex,k)[j]
and so on.
gap> SCLib.SearchByName("(S^2xS^1)#RP^3"); [ [ 237, "(S^2xS^1)#RP^3" ] ] gap> c:=SCLib.Load(last[1][1]);; gap> SCHomologyBasis(c,1); [ [ 1, [ [ 1, 12 ], [ -1, 7 ], [ 1, 1 ] ] ], [ 2, [ [ 1, 68 ], [ -1, 69 ], [ -1, 71 ], [ 2, 72 ], [ -2, 73 ] ] ] ]
‣ SCHomologyBasisAsSimplices ( complex, k ) | ( method ) |
Returns: a list of pairs of the form [ integer, list of linear combinations of simplices ]
upon success, fail
otherwise.
Calculates a set of basis elements for the k-dimensional homology group (with integer coefficients) of a simplicial complex 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 k-th homology group and \(q\geq 2\) for the basis elements of the \(q\)-torsion part. In contrast to the function SCHomologyBasis
(8.1-3) the basis elements are stored as lists of coefficient-simplex pairs, i.e. a basis element of the form \([ [ \lambda_1, \Delta_1], [\lambda_2, \Delta_2], \dots ]\) encodes the linear combination of simplices of the form \(\lambda_1*\Delta_1+\lambda_2*\Delta_2 + \dots\).
gap> SCLib.SearchByName("(S^2xS^1)#RP^3"); [ [ 237, "(S^2xS^1)#RP^3" ] ] gap> c:=SCLib.Load(last[1][1]);; 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 ] ] ] ] ]
‣ 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_i\cong \mathbb{Z}^f + \mathbb{Z} / t_1 \mathbb{Z} \times \dots \times \mathbb{Z} / t_n \mathbb{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. See also SCHomology
(7.3-9) and SCHomologyClassic
(6.9-31).
gap> c:=SCSurface(1,false);; gap> SCHomologyInternal(c); [ [ 0, [ ] ], [ 0, [ 2 ] ], [ 0, [ ] ] ]
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.
‣ SCCoboundaryOperatorMatrix ( complex, k ) | ( method ) |
Returns: a rectangular matrix upon success, fail
otherwise.
Calculates the matrix of the coboundary operator \(d^{\textit{k+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]]); > <SimplicialComplex: unnamed complex 2 | dim = 2 | n = 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 ] ]
‣ SCCohomology ( complex ) | ( method ) |
Returns: a list of pairs of the form [ integer, list ]
upon success, fail
otherwise.
This function computes the simplicial cohomology groups 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^i\cong \mathbb{Z}^f + \mathbb{Z} / t_1 \mathbb{Z} \times \dots \times \mathbb{Z} / t_n \mathbb{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 increasing 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]]); > <SimplicialComplex: unnamed complex 4 | dim = 2 | n = 6> gap> SCCohomology(c); [ [ 1, [ ] ], [ 0, [ ] ], [ 0, [ 2 ] ] ]
‣ SCCohomologyBasis ( complex, k ) | ( method ) |
Returns: a list of pairs of the form [ integer, list of linear combinations of simplices ]
upon success, fail
otherwise.
Calculates a set of basis elements for the k-dimensional cohomology group (with integer coefficients) of a simplicial complex 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 k-th homology group and \(q\geq 2\) for the basis elements of the \(q\)-torsion part. In contrast to the function SCCohomologyBasisAsSimplices
(8.2-4) the basis elements are stored as lists of coefficient-index pairs referring to the linear forms dual to the simplices in the \(k\)-th cochain complex of complex, i.e. a basis element of the form \([ [ \lambda_1, i], [\lambda_2, j], \dots ] \dots\) encodes the linear combination of simplices (or their dual linear forms in the corresponding cochain complex) of the form \(\lambda_1*\Delta_1+\lambda_2*\Delta_2\) with \(\Delta_1\)=SCSkel(complex,k)[i]
, \(\Delta_2\)=SCSkel(complex,k)[j]
and so on.
gap> SCLib.SearchByName("SU(3)/SO(3)"); [ [ 219, "SU(3)/SO(3) (VT)" ], [ 477, "SU(3)/SO(3) (VT)" ], [ 484, "SU(3)/SO(3) (VT)" ], [ 486, "SU(3)/SO(3) (VT)" ] ] gap> c:=SCLib.Load(last[1][1]);; 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 ] ] ] ]
‣ SCCohomologyBasisAsSimplices ( complex, k ) | ( method ) |
Returns: a list of pars of the form [ integer, linear combination of simplices ]
upon success, fail
otherwise.
Calculates a set of basis elements for the k-dimensional cohomology group (with integer coefficients) of a simplicial complex 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 k-th homology group and \(q\geq 2\) for the basis elements of the \(q\)-torsion part. In contrast to the function SCCohomologyBasis
(8.2-3) the basis elements are stored as lists of coefficient-simplex pairs referring to the linear forms dual to the simplices in the \(k\)-th cochain complex of complex, i.e. a basis element of the form \([ [ \lambda_1, \Delta_i], [\lambda_2, \Delta_j], \dots ] \dots\) encodes the linear combination of simplices (or their dual linear forms in the corresponding cochain complex) of the form \(\lambda_1*\Delta_1+\lambda_2*\Delta_2 + \dots\).
gap> SCLib.SearchByName("SU(3)/SO(3)"); [ [ 219, "SU(3)/SO(3) (VT)" ], [ 477, "SU(3)/SO(3) (VT)" ], [ 484, "SU(3)/SO(3) (VT)" ], [ 486, "SU(3)/SO(3) (VT)" ] ] gap> c:=SCLib.Load(last[1][1]);; 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 ] ] ] ] ]
‣ SCCupProduct ( complex, cocycle1, cocycle2 ) | ( function ) |
Returns: a list of pairs of the form [ ORIENTATION, SIMPLEX ]
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\). It endows the cohomology groups of a simplicial complex with the structure of a ring.
The construction of the cup product starts with a product of cochains: if cocycle1 is a p-cochain and cocylce2 is a q-cochain of a simplicial complex complex (given as list of oriented p- (q-)simplices), then
cocycle1 \(\smile\) cocycle2\((\sigma) = \)cocycle1\((\sigma \circ \iota_{0,1, ... p}) \cdot\) 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.
Note that this function only computes the cup product in the case that complex is an orientable weak pseudomanifold of dimension \(2k\) and \(p = q = k\). Furthermore, complex must be given in standard labeling, with sorted facet list and cocylce1 and cocylce2 must be given in simplex notation and labeled accordingly. Note that the latter condition is usually fulfilled in case the cocycles were computed using SCCohomologyBasisAsSimplices
(8.2-4).
gap> SCLib.SearchByName("K3"); [ [ 520, "K3_16" ], [ 539, "K3_17" ] ] gap> c:=SCLib.Load(last[1][1]);; 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 ] ] ]
‣ SCIntersectionForm ( complex ) | ( method ) |
Returns: a square matrix of integer values upon success, fail
otherwise.
For \(2k\)-dimensional orientable manifolds \(M\) the cup product (see SCCupProduct
(8.2-5)) defines a bilinear form
H\(^k ( M ) \times \)H\(^k ( M ) \to \)H\(^{2k} (M), (a,b) \mapsto a \cup b \)
called the intersection form of \(M\). This function returns the intersection form of an orientable combinatorial \(2k\)-manifold complex in form of a matrix mat
with respect to the basis of H\(^k ( \)complexM\()\) computed by SCCohomologyBasisAsSimplices
(8.2-4). The matrix entry mat[i][j]
equals the intersection number of the i
-th base element with the j
-th base element of H\(^k ( \)complexM\()\).
gap> SCLib.SearchByName("CP^2"); [ [ 16, "CP^2 (VT)" ], [ 96, "CP^2#-CP^2" ], [ 97, "CP^2#CP^2" ], [ 185, "CP^2#(S^2xS^2)" ], [ 397, "Gaifullin CP^2" ], [ 457, "(S^3~S^1)#(CP^2)^{#5} (VT)" ] ] gap> c:=SCLib.Load(last[1][1]);; 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 ] ]
‣ SCIntersectionFormParity ( complex ) | ( method ) |
Returns: 0
or 1
upon success, fail
otherwise.
Computes the parity of the intersection form of a combinatorial manifold complex (see SCIntersectionForm
(8.2-6)). If the intersection for is even (i. e. all diagonal entries are even numbers) 0
is returned, otherwise 1
is returned.
gap> SCLib.SearchByName("S^2xS^2");; gap> c:=SCLib.Load(last[1][1]);; gap> SCIntersectionFormParity(c); 0 gap> SCLib.SearchByName("CP^2");; gap> c:=SCLib.Load(last[1][1]);; gap> SCIntersectionFormParity(c); 1
‣ SCIntersectionFormDimensionality ( complex ) | ( method ) |
Returns: an integer upon success, fail
otherwise.
Returns the dimensionality of the intersection form of a combinatorial manifold complex, i. e. the length of a minimal generating set of H\(^k (M)\) (where \(2k\) is the dimension of complex). See SCIntersectionForm
(8.2-6) for further details.
gap> SCLib.SearchByName("CP^2");; gap> c:=SCLib.Load(last[1][1]);; 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
‣ SCIntersectionFormSignature ( complex ) | ( method ) |
Returns: a triple of integers upon success, fail
otherwise.
Computes the dimensionality (see SCIntersectionFormDimensionality
(8.2-8)) and the signature of the intersection form of a combinatorial manifold 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
(8.2-6) for further details.
Internally calls the GAP-functions Matrix_CharacteristicPolynomialSameField
and CoefficientsOfLaurentPolynomial
to compute the number of positive / negative eigenvalues of the intersection form.
gap> SCLib.SearchByName("CP^2");; gap> c:=SCLib.Load(last[1][1]);; gap> SCIntersectionFormParity(c); 1 gap> SCCohomology(c); [ [ 1, [ ] ], [ 0, [ ] ], [ 1, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ] gap> SCIntersectionFormSignature(c); [ 1, 0, 1 ] gap> d:=SCConnectedSum(c,c); <SimplicialComplex: CP^2 (VT)#+-CP^2 (VT) | dim = 4 | n = 13> gap> SCIntersectionFormSignature(d); [ 2, 2, 0 ] gap> d:=SCConnectedSumMinus(c,c);; gap> SCIntersectionFormSignature(d); [ 2, 1, 1 ]
generated by GAPDoc2HTML