In this chapter functions are provided to perform simplicial blowups as well as the resolution of isolated singularities of certain types of combinatorial \(4\)-manifolds. As of today singularities where the link is homeomorphic to \(\mathbb{R}P^3\), \(S^2 \times S^1\), \(S^2 \dtimes S^1\) and the lens spaces \(L(k,1)\) are supported. In addition, the program provides the possibility to hand over additional types of mapping cylinders to cover other types of singularities.
Please note that the program is based on a heuristic algorithm using bistellar moves. Hence, the search for a suitable sequence of bistellar moves to perform the blowup does not always terminate. However, especially in the case of ordinary double points (singularities of type \(\mathbb{R}P^3\)), a lot of blowups have already been successful. For a very short introduction to simplicial blowups see 2.8, for further information see [SK11].
‣ SCBlowup ( pseudomanifold, singularity[, mappingCyl] ) | ( property ) |
Returns: simplicial complex of type SCSimplicialComplex
upon success, fail
otherwise.
If singularity
is an ordinary double point of a combinatorial \(4\)-pseudomanifold pseudomanifold (lk(singularity
\() = \mathbb{R}P^3\)) the blowup of pseudomanifold
at singularity
is computed. If it is a singularity of type \(S^2 \times S^1\), \(S^2 \dtimes S^1\) or \(L(k,1)\), \(k \leq 4\), the canonical resolution of singularity
is computed using the bounded complexes provided in the source code below.
If the optional argument mappingCyl
of type SCIsSimplicialComplex
is given, this complex will be used to to resolve the singularity singularity
.
Note that bistellar moves do not necessarily preserve any orientation. Thus, the orientation of the blowup has to be checked in order to verify which type of blowup was performed. Normally, repeated computation results in both versions.
gap> SCLib.SearchByName("Kummer variety"); [ [ 519, "4-dimensional Kummer variety (VT)" ] ] gap> c:=SCLib.Load(last[1][1]);; gap> d:= SCBlowup(c,1); #I SCBlowup: checking if singularity is a combinatorial manifold... #I SCBlowup: ...true #I SCBlowup: checking type of singularity... #I SCReduceComplexEx: complexes are bistellarly equivalent. #I SCBlowup: ...ordinary double point (supported type). #I SCBlowup: starting blowup... #I SCBlowup: map boundaries... #I SCBlowup: boundaries not isomorphic, initializing bistellar moves... #I SCBlowup: found complex with smaller boundary: f = [ 15, 74, 118, 59 ]. #I SCBlowup: found complex with smaller boundary: f = [ 14, 70, 112, 56 ]. #I SCBlowup: found complex with smaller boundary: f = [ 14, 69, 110, 55 ]. #I SCBlowup: found complex with smaller boundary: f = [ 14, 68, 108, 54 ]. #I SCBlowup: found complex with smaller boundary: f = [ 13, 65, 104, 52 ]. #I SCBlowup: found complex with smaller boundary: f = [ 13, 64, 102, 51 ]. #I SCBlowup: found complex with smaller boundary: f = [ 13, 63, 100, 50 ]. #I SCBlowup: found complex with smaller boundary: f = [ 13, 62, 98, 49 ]. #I SCBlowup: found complex with smaller boundary: f = [ 13, 61, 96, 48 ]. #I SCBlowup: found complex with smaller boundary: f = [ 12, 57, 90, 45 ]. #I SCBlowup: found complex with smaller boundary: f = [ 12, 56, 88, 44 ]. #I SCBlowup: found complex with smaller boundary: f = [ 12, 55, 86, 43 ]. #I SCBlowup: found complex with smaller boundary: f = [ 11, 51, 80, 40 ]. #I SCBlowup: found complex with isomorphic boundaries. #I SCBlowup: ...boundaries mapped succesfully. #I SCBlowup: build complex... #I SCBlowup: ...done. #I SCBlowup: ...blowup completed. #I SCBlowup: You may now want to reduce the complex via 'SCReduceComplex'. <SimplicialComplex: unnamed complex 2735 \ star([ 1 ]) in unnamed complex 2735\ cup unnamed complex 2739 cup unnamed complex 2737 | dim = 4 | n = 39>
gap> # resolving the singularities of a 4 dimensional Kummer variety gap> SCLib.SearchByName("Kummer variety"); [ [ 519, "4-dimensional Kummer variety (VT)" ] ] gap> c:=SCLib.Load(last[1][1]);; gap> for i in [1..16] do for j in SCLabels(c) do lk:=SCLink(c,j); if lk.Homology = [[0],[0],[0],[1]] then continue; fi; singularity := j; break; od; c:=SCBlowup(c,singularity); od; gap> d.IsManifold; true gap> d.Homology; [ [ 0, [ ] ], [ 0, [ ] ], [ 22, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ]
‣ SCMappingCylinder ( k ) | ( function ) |
Returns: simplicial complex of type SCSimplicialComplex
upon success, fail
otherwise.
Generates a bounded version of \(\mathbb{C}P^2\) (a so-called mapping cylinder for a simplicial blowup, compare [SK11]) with boundary \(L(\)k
\(,1)\).
gap> mapCyl:=SCMappingCylinder(3);; gap> mapCyl.Homology; [ [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ], [ 0, [ ] ], [ 0, [ ] ] ] gap> l31:=SCBoundary(mapCyl);; gap> l31.Homology; [ [ 0, [ ] ], [ 0, [ 3 ] ], [ 0, [ ] ], [ 1, [ ] ] ]
generated by GAPDoc2HTML