GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
1[1X10 [33X[0;0YSimplicial blowups[133X[101X234[1X10.1 [33X[0;0YTheory[133X[101X56[33X[0;0YIn this chapter functions are provided to perform simplicial blowups as well7as the resolution of isolated singularities of certain types of8combinatorial [22X4[122X-manifolds. As of today singularities where the link is9homeomorphic to [22XRP^3[122X, [22XS^2 × S^1[122X, [22XS^2 dtimes S^1[122X and the lens spaces [22XL(k,1)[122X10are supported. In addition, the program provides the possibility to hand11over additional types of mapping cylinders to cover other types of12singularities.[133X1314[33X[0;0YPlease note that the program is based on a heuristic algorithm using15bistellar moves. Hence, the search for a suitable sequence of bistellar16moves to perform the blowup does not always terminate. However, especially17in the case of ordinary double points (singularities of type [22XRP^3[122X), a lot of18blowups have already been successful. For a very short introduction to19simplicial blowups see [14X2.8[114X, for further information see [SK11].[133X202122[1X10.2 [33X[0;0YFunctions related to simplicial blowups[133X[101X2324[1X10.2-1 SCBlowup[101X2526[29X[2XSCBlowup[102X( [3Xpseudomanifold[103X, [3Xsingularity[103X[, [3XmappingCyl[103X] ) [32X property27[6XReturns:[106X [33X[0;10Ysimplicial complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X28otherwise.[133X2930[33X[0;0YIf [10Xsingularity[110X is an ordinary double point of a combinatorial31[22X4[122X-pseudomanifold [3Xpseudomanifold[103X (lk([10Xsingularity[110X[22X) = RP^3[122X) the blowup of32[10Xpseudomanifold[110X at [10Xsingularity[110X is computed. If it is a singularity of type33[22XS^2 × S^1[122X, [22XS^2 dtimes S^1[122X or [22XL(k,1)[122X, [22Xk ≤ 4[122X, the canonical resolution of34[10Xsingularity[110X is computed using the bounded complexes provided in the source35code below.[133X3637[33X[0;0YIf the optional argument [10XmappingCyl[110X of type [10XSCIsSimplicialComplex[110X is given,38this complex will be used to to resolve the singularity [10Xsingularity[110X.[133X3940[33X[0;0YNote that bistellar moves do not necessarily preserve any orientation. Thus,41the orientation of the blowup has to be checked in order to verify which42type of blowup was performed. Normally, repeated computation results in both43versions.[133X4445[4X[32X Example [32X[104X46[4X[28X gap> SCLib.SearchByName("Kummer variety");[128X[104X47[4X[28X [ [ 7493, "4-dimensional Kummer variety (VT)" ] ][128X[104X48[4X[28X gap> c:=SCLib.Load(last[1][1]);; [128X[104X49[4X[28X gap> d:= SCBlowup(c,1);[128X[104X50[4X[28X #I SCBlowup: checking if singularity is a combinatorial manifold...[128X[104X51[4X[28X #I SCBlowup: ...true[128X[104X52[4X[28X #I SCBlowup: checking type of singularity...[128X[104X53[4X[28X #I SCReduceComplexEx: complexes are bistellarly equivalent.[128X[104X54[4X[28X #I SCBlowup: ...ordinary double point (supported type).[128X[104X55[4X[28X #I SCBlowup: starting blowup...[128X[104X56[4X[28X #I SCBlowup: map boundaries...[128X[104X57[4X[28X #I SCBlowup: boundaries not isomorphic, initializing bistellar moves...[128X[104X58[4X[28X #I SCBlowup: found complex with smaller boundary: f = [ 15, 74, 118, 59 ].[128X[104X59[4X[28X #I SCBlowup: found complex with smaller boundary: f = [ 14, 70, 112, 56 ].[128X[104X60[4X[28X #I SCBlowup: found complex with smaller boundary: f = [ 14, 69, 110, 55 ].[128X[104X61[4X[28X #I SCBlowup: found complex with smaller boundary: f = [ 14, 68, 108, 54 ].[128X[104X62[4X[28X #I SCBlowup: found complex with smaller boundary: f = [ 13, 65, 104, 52 ].[128X[104X63[4X[28X #I SCBlowup: found complex with smaller boundary: f = [ 13, 64, 102, 51 ].[128X[104X64[4X[28X #I SCBlowup: found complex with smaller boundary: f = [ 13, 63, 100, 50 ].[128X[104X65[4X[28X #I SCBlowup: found complex with smaller boundary: f = [ 13, 62, 98, 49 ].[128X[104X66[4X[28X #I SCBlowup: found complex with smaller boundary: f = [ 13, 61, 96, 48 ].[128X[104X67[4X[28X #I SCBlowup: found complex with smaller boundary: f = [ 12, 57, 90, 45 ].[128X[104X68[4X[28X #I SCBlowup: found complex with smaller boundary: f = [ 12, 56, 88, 44 ].[128X[104X69[4X[28X #I SCBlowup: found complex with smaller boundary: f = [ 12, 55, 86, 43 ].[128X[104X70[4X[28X #I SCBlowup: found complex with smaller boundary: f = [ 11, 51, 80, 40 ].[128X[104X71[4X[28X #I SCBlowup: found complex with isomorphic boundaries.[128X[104X72[4X[28X #I SCBlowup: ...boundaries mapped succesfully.[128X[104X73[4X[28X #I SCBlowup: build complex...[128X[104X74[4X[28X #I SCBlowup: ...done.[128X[104X75[4X[28X #I SCBlowup: ...blowup completed.[128X[104X76[4X[28X #I SCBlowup: You may now want to reduce the complex via 'SCReduceComplex'.[128X[104X77[4X[28X [SimplicialComplex[128X[104X78[4X[28X [128X[104X79[4X[28X Properties known: Dim, FacetsEx, Name, Vertices.[128X[104X80[4X[28X [128X[104X81[4X[28X Name="unnamed complex 2735 \ star([ 1 ]) in unnamed complex 2735 cup unnamed \[128X[104X82[4X[28X complex 2739 cup unnamed complex 2737"[128X[104X83[4X[28X Dim=4[128X[104X84[4X[28X [128X[104X85[4X[28X /SimplicialComplex][128X[104X86[4X[28X [128X[104X87[4X[32X[104X8889[4X[32X Example [32X[104X90[4X[28X gap> # resolving the singularities of a 4 dimensional Kummer variety[128X[104X91[4X[28X gap> SCLib.SearchByName("Kummer variety");[128X[104X92[4X[28X [ [ 7488, "4-dimensional Kummer variety (VT)" ] ][128X[104X93[4X[28X gap> c:=SCLib.Load(last[1][1]);;[128X[104X94[4X[28X gap> for i in [1..16] do[128X[104X95[4X[28X for j in SCLabels(c) do [128X[104X96[4X[28X lk:=SCLink(c,j);[128X[104X97[4X[28X if lk.Homology = [[0],[0],[0],[1]] then continue; fi; [128X[104X98[4X[28X singularity := j; break;[128X[104X99[4X[28X od;[128X[104X100[4X[28X c:=SCBlowup(c,singularity); [128X[104X101[4X[28X od;[128X[104X102[4X[28X gap> d.IsManifold;[128X[104X103[4X[28X true[128X[104X104[4X[28X gap> d.Homology;[128X[104X105[4X[28X [ [ 0, [ ] ], [ 0, [ ] ], [ 22, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ][128X[104X106[4X[28X [128X[104X107[4X[32X[104X108109[1X10.2-2 SCMappingCylinder[101X110111[29X[2XSCMappingCylinder[102X( [3Xk[103X ) [32X function112[6XReturns:[106X [33X[0;10Ysimplicial complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X113otherwise.[133X114115[33X[0;0YGenerates a bounded version of [22XCP^2[122X (a so-called mapping cylinder for a116simplicial blowup, compare [SK11]) with boundary [22XL([122X[10Xk[110X[22X,1)[122X.[133X117118[4X[32X Example [32X[104X119[4X[28X gap> mapCyl:=SCMappingCylinder(3);;[128X[104X120[4X[28X gap> mapCyl.Homology; [128X[104X121[4X[28X [ [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ], [ 0, [ ] ], [ 0, [ ] ] ][128X[104X122[4X[28X gap> l31:=SCBoundary(mapCyl);;[128X[104X123[4X[28X gap> l31.Homology;[128X[104X124[4X[28X [ [ 0, [ ] ], [ 0, [ 3 ] ], [ 0, [ ] ], [ 1, [ ] ] ][128X[104X125[4X[28X [128X[104X126[4X[32X[104X127128129130