GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
1[1X12 [33X[0;0YForman's discrete Morse theory[133X[101X23[33X[0;0YIn this chapter a framework is provided to use Forman's discrete Morse4theory [For95] within [5Xsimpcomp[105X. See Section [14X2.6[114X for a brief introduction.[133X56[33X[0;0YNote: this is not to be confused with Banchoff and Kühnel's theory of7regular simplexwise linear functions which is described in Chapter [14X11[114X.[133X8910[1X12.1 [33X[0;0YFunctions using discrete Morse theory[133X[101X1112[1X12.1-1 SCCollapseGreedy[101X1314[29X[2XSCCollapseGreedy[102X( [3Xcomplex[103X ) [32X method15[6XReturns:[106X [33X[0;10Ysimplicial complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X16otherwise.[133X1718[33X[0;0YEmploys a greedy collapsing algorithm to collapse the simplicial complex19[3Xcomplex[103X. See also [2XSCCollapseLex[102X ([14X12.1-2[114X) and [2XSCCollapseRevLex[102X ([14X12.1-3[114X).[133X2021[4X[32X Example [32X[104X22[4X[28X gap> SCLib.SearchByName("T^2"){[1..6]}; [128X[104X23[4X[28X [ [ 4, "T^2 (VT)" ], [ 5, "T^2 (VT)" ], [ 9, "T^2 (VT)" ], [ 10, "T^2 (VT)" ],[128X[104X24[4X[28X [ 18, "T^2 (VT)" ], [ 20, "(T^2)#2" ] ][128X[104X25[4X[28X gap> torus:=SCLib.Load(last[1][1]);;[128X[104X26[4X[28X gap> bdtorus:=SCDifference(torus,SC([torus.Facets[1]]));;[128X[104X27[4X[28X gap> coll:=SCCollapseGreedy(bdtorus);[128X[104X28[4X[28X [SimplicialComplex[128X[104X29[4X[28X [128X[104X30[4X[28X Properties known: Dim, FacetsEx, Name, Vertices.[128X[104X31[4X[28X [128X[104X32[4X[28X Name="collapsed version of T^2 (VT) \ unnamed complex 8"[128X[104X33[4X[28X Dim=1[128X[104X34[4X[28X [128X[104X35[4X[28X /SimplicialComplex][128X[104X36[4X[28X gap> coll.Facets;[128X[104X37[4X[28X [ [ 2, 5 ], [ 2, 6 ], [ 2, 7 ], [ 5, 6 ], [ 5, 7 ] ][128X[104X38[4X[28X gap> sphere:=SCBdSimplex(4);; [128X[104X39[4X[28X gap> bdsphere:=SCDifference(sphere,SC([sphere.Facets[1]]));;[128X[104X40[4X[28X gap> coll:=SCCollapseGreedy(bdsphere);[128X[104X41[4X[28X [SimplicialComplex[128X[104X42[4X[28X [128X[104X43[4X[28X Properties known: Dim, FVector, FacetsEx, IsPure, Name, NumFaces[], [128X[104X44[4X[28X SkelExs[], Vertices.[128X[104X45[4X[28X [128X[104X46[4X[28X Name="collapsed version of S^3_5 \ unnamed complex 12"[128X[104X47[4X[28X Dim=0[128X[104X48[4X[28X FVector=[ 1 ][128X[104X49[4X[28X IsPure=true[128X[104X50[4X[28X [128X[104X51[4X[28X /SimplicialComplex][128X[104X52[4X[28X gap> coll.Facets; [128X[104X53[4X[28X [ [ 2 ] ][128X[104X54[4X[28X [128X[104X55[4X[32X[104X5657[1X12.1-2 SCCollapseLex[101X5859[29X[2XSCCollapseLex[102X( [3Xcomplex[103X ) [32X method60[6XReturns:[106X [33X[0;10Ysimplicial complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X61otherwise.[133X6263[33X[0;0YEmploys a greedy collapsing algorithm in lexicographical order to collapse64the simplicial complex [3Xcomplex[103X. See also [2XSCCollapseGreedy[102X ([14X12.1-1[114X) and65[2XSCCollapseRevLex[102X ([14X12.1-3[114X).[133X6667[4X[32X Example [32X[104X68[4X[28X gap> s:=SCSurface(1,true);;[128X[104X69[4X[28X gap> s:=SCDifference(s,SC([SCFacets(s)[1]]));;[128X[104X70[4X[28X gap> coll:=SCCollapseGreedy(s);[128X[104X71[4X[28X [SimplicialComplex[128X[104X72[4X[28X [128X[104X73[4X[28X Properties known: Dim, FacetsEx, Name, Vertices.[128X[104X74[4X[28X [128X[104X75[4X[28X Name="collapsed version of T^2 \ unnamed complex 18"[128X[104X76[4X[28X Dim=1[128X[104X77[4X[28X [128X[104X78[4X[28X /SimplicialComplex][128X[104X79[4X[28X gap> coll.Facets;[128X[104X80[4X[28X [ [ 1, 6 ], [ 1, 7 ], [ 2, 5 ], [ 2, 7 ], [ 5, 7 ], [ 6, 7 ] ][128X[104X81[4X[28X gap> sphere:=SCBdSimplex(4);; [128X[104X82[4X[28X gap> ball:=SCDifference(sphere,SC([sphere.Facets[1]]));;[128X[104X83[4X[28X gap> coll:=SCCollapseLex(ball);[128X[104X84[4X[28X [SimplicialComplex[128X[104X85[4X[28X [128X[104X86[4X[28X Properties known: Dim, FVector, FacetsEx, IsPure, Name, NumFaces[], [128X[104X87[4X[28X SkelExs[], Vertices.[128X[104X88[4X[28X [128X[104X89[4X[28X Name="collapsed version of S^3_5 \ unnamed complex 22"[128X[104X90[4X[28X Dim=0[128X[104X91[4X[28X FVector=[ 1 ][128X[104X92[4X[28X IsPure=true[128X[104X93[4X[28X [128X[104X94[4X[28X /SimplicialComplex][128X[104X95[4X[28X gap> coll.Facets; [128X[104X96[4X[28X [ [ 5 ] ][128X[104X97[4X[28X [128X[104X98[4X[32X[104X99100[1X12.1-3 SCCollapseRevLex[101X101102[29X[2XSCCollapseRevLex[102X( [3Xcomplex[103X ) [32X method103[6XReturns:[106X [33X[0;10Ysimplicial complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X104otherwise.[133X105106[33X[0;0YEmploys a greedy collapsing algorithm in reverse lexicographical order to107collapse the simplicial complex [3Xcomplex[103X. See also [2XSCCollapseGreedy[102X ([14X12.1-1[114X)108and [2XSCCollapseLex[102X ([14X12.1-2[114X).[133X109110[4X[32X Example [32X[104X111[4X[28X gap> s:=SCSurface(1,true);;[128X[104X112[4X[28X gap> s:=SCDifference(s,SC([SCFacets(s)[1]]));;[128X[104X113[4X[28X gap> coll:=SCCollapseGreedy(s);[128X[104X114[4X[28X [SimplicialComplex[128X[104X115[4X[28X [128X[104X116[4X[28X Properties known: Dim, FacetsEx, Name, Vertices.[128X[104X117[4X[28X [128X[104X118[4X[28X Name="collapsed version of T^2 \ unnamed complex 28"[128X[104X119[4X[28X Dim=1[128X[104X120[4X[28X [128X[104X121[4X[28X /SimplicialComplex][128X[104X122[4X[28X gap> coll.Facets;[128X[104X123[4X[28X [ [ 1, 3 ], [ 1, 7 ], [ 3, 4 ], [ 3, 5 ], [ 4, 7 ], [ 5, 7 ] ][128X[104X124[4X[28X gap> sphere:=SCBdSimplex(4);; [128X[104X125[4X[28X gap> ball:=SCDifference(sphere,SC([sphere.Facets[1]]));;[128X[104X126[4X[28X gap> coll:=SCCollapseRevLex(ball);[128X[104X127[4X[28X [SimplicialComplex[128X[104X128[4X[28X [128X[104X129[4X[28X Properties known: Dim, FVector, FacetsEx, IsPure, Name, NumFaces[], [128X[104X130[4X[28X SkelExs[], Vertices.[128X[104X131[4X[28X [128X[104X132[4X[28X Name="collapsed version of S^3_5 \ unnamed complex 32"[128X[104X133[4X[28X Dim=0[128X[104X134[4X[28X FVector=[ 1 ][128X[104X135[4X[28X IsPure=true[128X[104X136[4X[28X [128X[104X137[4X[28X /SimplicialComplex][128X[104X138[4X[28X gap> coll.Facets; [128X[104X139[4X[28X [ [ 1 ] ][128X[104X140[4X[28X [128X[104X141[4X[32X[104X142143[1X12.1-4 SCHasseDiagram[101X144145[29X[2XSCHasseDiagram[102X( [3Xc[103X ) [32X function146[6XReturns:[106X [33X[0;10Ytwo lists of lists upon success, [10Xfail[110X otherweise.[133X147148[33X[0;0YComputes the Hasse diagram of [10XSCSimplicialComplex[110X object [3Xc[103X. The Hasse149diagram is returned as two sets of lists. The first set of lists contains150the upward part of the Hasse diagram, the second set of lists contains the151downward part of the Hasse diagram.[133X152153[33X[0;0YThe [22Xi[122X-th list of each set of lists represents the incidences between the154[22X(i-1)[122X-faces and the [22Xi[122X-faces. The faces are given by their indices of the155face lattice.[133X156157[4X[32X Example [32X[104X158[4X[28X gap> c:=SCBdSimplex(3);;[128X[104X159[4X[28X gap> HD:=SCHasseDiagram(c);[128X[104X160[4X[28X [ [ [ [ 1, 2, 3 ], [ 1, 4, 5 ], [ 2, 4, 6 ], [ 3, 5, 6 ] ], [128X[104X161[4X[28X [ [ 1, 2 ], [ 1, 3 ], [ 2, 3 ], [ 1, 4 ], [ 2, 4 ], [ 3, 4 ] ] ], [128X[104X162[4X[28X [ [ [ 2, 1 ], [ 3, 1 ], [ 4, 1 ], [ 3, 2 ], [ 4, 2 ], [ 4, 3 ] ], [128X[104X163[4X[28X [ [ 4, 2, 1 ], [ 5, 3, 1 ], [ 6, 3, 2 ], [ 6, 5, 4 ] ] ] ][128X[104X164[4X[28X [128X[104X165[4X[32X[104X166167[1X12.1-5 SCMorseEngstroem[101X168169[29X[2XSCMorseEngstroem[102X( [3Xcomplex[103X ) [32X function170[6XReturns:[106X [33X[0;10Ytwo lists of small integer lists upon success, [10Xfail[110X otherweise.[133X171172[33X[0;0YBuilds a discrete Morse function following the Engstroem method by reducing173the input complex to smaller complexes defined by minimal link and deletion174operations. See [Eng09] for details.[133X175176[4X[32X Example [32X[104X177[4X[28X gap> c:=SCBdSimplex(3);;[128X[104X178[4X[28X gap> f:=SCMorseEngstroem(c);[128X[104X179[4X[28X [ [ [ 2 ], [ 2, 3 ], [ 2, 4 ], [ 2 .. 4 ], [ ], [ 3 ], [ 4 ], [ 3, 4 ], [128X[104X180[4X[28X [ 1, 3 ], [ 1, 3, 4 ], [ 1 ], [ 1, 4 ], [ 1, 2, 4 ], [ 1, 2 ], [128X[104X181[4X[28X [ 1 .. 3 ] ], [ [ 2 ], [ 1 .. 3 ] ] ][128X[104X182[4X[28X [128X[104X183[4X[32X[104X184185[1X12.1-6 SCMorseRandom[101X186187[29X[2XSCMorseRandom[102X( [3Xcomplex[103X ) [32X function188[6XReturns:[106X [33X[0;10Ytwo lists of small integer lists upon success, [10Xfail[110X otherweise.[133X189190[33X[0;0YBuilds a discrete Morse function following Lutz and Benedetti's random191discrete Morse theory approach: Faces are paired with free co-dimension one192faces until now free faces remain. Then a critical face is removed at193random. See [BL14a] for details.[133X194195[4X[32X Example [32X[104X196[4X[28X gap> c:=SCBdSimplex(3);;[128X[104X197[4X[28X gap> f:=SCMorseRandom(c);;[128X[104X198[4X[28X gap> Size(f[2]);[128X[104X199[4X[28X 2[128X[104X200[4X[28X [128X[104X201[4X[32X[104X202203[1X12.1-7 SCMorseRandomLex[101X204205[29X[2XSCMorseRandomLex[102X( [3Xcomplex[103X ) [32X function206[6XReturns:[106X [33X[0;10Ytwo lists of small integer lists upon success, [10Xfail[110X otherweise.[133X207208[33X[0;0YBuilds a discrete Morse function following Adiprasito, Benedetti and Lutz'209lexicographic random discrete Morse theory approach. See [BL14a], [BL14b]210for details.[133X211212[4X[32X Example [32X[104X213[4X[28X gap> c := SCSurface(3,true);;[128X[104X214[4X[28X gap> f:=SCMorseRandomLex(c);;[128X[104X215[4X[28X gap> Size(f[2]);[128X[104X216[4X[28X 8[128X[104X217[4X[28X [128X[104X218[4X[32X[104X219220[1X12.1-8 SCMorseRandomRevLex[101X221222[29X[2XSCMorseRandomRevLex[102X( [3Xcomplex[103X ) [32X function223[6XReturns:[106X [33X[0;10Ytwo lists of small integer lists upon success, [10Xfail[110X otherweise.[133X224225[33X[0;0YBuilds a discrete Morse function following Adiprasito, Benedetti and Lutz'226reverse lexicographic random discrete Morse theory approach. See [BL14a],227[BL14b] for details.[133X228229[4X[32X Example [32X[104X230[4X[28X gap> c := SCSurface(5,false);;[128X[104X231[4X[28X gap> f:=SCMorseRandomRevLex(c);;[128X[104X232[4X[28X gap> Size(f[2]);[128X[104X233[4X[28X 7[128X[104X234[4X[28X [128X[104X235[4X[32X[104X236237[1X12.1-9 SCMorseSpec[101X238239[29X[2XSCMorseSpec[102X( [3Xcomplex[103X, [3Xiter[103X[, [3Xmorsefunc[103X] ) [32X function240[6XReturns:[106X [33X[0;10Ya list upon success, [10Xfail[110X otherweise.[133X241242[33X[0;0YComputes [3Xiter[103X versions of a discrete Morse function of [3Xcomplex[103X using a243randomised method specified by [3Xmorsefunc[103X (default choice is [2XSCMorseRandom[102X244([14X12.1-6[114X), other randomised methods available are [2XSCMorseRandomLex[102X ([14X12.1-7[114X)245[2XSCMorseRandomRevLex[102X ([14X12.1-8[114X), and [2XSCMorseUST[102X ([14X12.1-10[114X)). The result is246referred to by the Morse spectrum of [3Xcomplex[103X and is returned in form of a247list containing all Morse vectors sorted by number of critical points248together with the actual vector of critical points and how often they249ocurred (see [BL14a] for details).[133X250251[4X[32X Example [32X[104X252[4X[28X gap> c:=SCSeriesTorus(2);;[128X[104X253[4X[28X gap> f:=SCMorseSpec(c,30);[128X[104X254[4X[28X [ [ 4, [ 1, 2, 1 ], 30 ] ][128X[104X255[4X[28X [128X[104X256[4X[32X[104X257258[4X[32X Example [32X[104X259[4X[28X gap> c:=SCSeriesHomologySphere(2,3,5);;[128X[104X260[4X[28X gap> f:=SCMorseSpec(c,30,SCMorseRandom);[128X[104X261[4X[28X [ [ 6, [ 1, 2, 2, 1 ], 25 ], [ 8, [ 1, 3, 3, 1 ], 5 ] ][128X[104X262[4X[28X gap> f:=SCMorseSpec(c,30,SCMorseRandomLex);[128X[104X263[4X[28X [ [ 6, [ 1, 2, 2, 1 ], 30 ] ][128X[104X264[4X[28X gap> f:=SCMorseSpec(c,30,SCMorseRandomRevLex);[128X[104X265[4X[28X [ [ 6, [ 1, 2, 2, 1 ], 7 ], [ 8, [ 1, 3, 3, 1 ], 13 ], [128X[104X266[4X[28X [ 10, [ 1, 4, 4, 1 ], 9 ], [ 10, [ 2, 4, 3, 1 ], 1 ] ][128X[104X267[4X[28X gap> f:=SCMorseSpec(c,30,SCMorseUST);[128X[104X268[4X[28X [ [ 6, [ 1, 2, 2, 1 ], 18 ], [ 8, [ 1, 3, 3, 1 ], 8 ], [128X[104X269[4X[28X [ 10, [ 1, 4, 4, 1 ], 4 ] ][128X[104X270[4X[28X [128X[104X271[4X[32X[104X272273[1X12.1-10 SCMorseUST[101X274275[29X[2XSCMorseUST[102X( [3Xcomplex[103X ) [32X function276[6XReturns:[106X [33X[0;10Ya random Morse function of a simplicial complex and a list of277critical faces.[133X278279[33X[0;0YBuilds a random Morse function by removing a uniformly sampled spanning tree280from the dual 1-skeleton followed by a collapsing approach. [3Xcomplex[103X needs to281be a closed weak pseudomanifold for this to work. For details of the282algorithm, see [PS15].[133X283284[4X[32X Example [32X[104X285[4X[28X gap> c:=SCBdSimplex(3);;[128X[104X286[4X[28X gap> f:=SCMorseUST(c);;[128X[104X287[4X[28X gap> Size(f[2]);[128X[104X288[4X[28X 2[128X[104X289[4X[28X [128X[104X290[4X[32X[104X291292[1X12.1-11 SCSpanningTreeRandom[101X293294[29X[2XSCSpanningTreeRandom[102X( [3XHD[103X, [3Xtop[103X ) [32X function295[6XReturns:[106X [33X[0;10Ya list of edges upon success, [10Xfail[110X otherweise.[133X296297[33X[0;0YComputes a uniformly sampled spanning tree of the complex belonging to the298Hasse diagram [3XHD[103X using Wilson's algorithm (see [Wil96]). If [3Xtop = true[103X the299output is a spanning tree of the dual graph of the underlying complex. If300[3Xtop = false[103X the output is a spanning tree of the primal graph (i.e., the301[22X1[122X-skeleton.[133X302303[4X[32X Example [32X[104X304[4X[28X gap> c:=SCSurface(1,false);;[128X[104X305[4X[28X gap> HD:=SCHasseDiagram(c);;[128X[104X306[4X[28X gap> stTop:=SCSpanningTreeRandom(HD,true);[128X[104X307[4X[28X [ 15, 2, 6, 12, 7, 8, 1, 3, 11 ][128X[104X308[4X[28X gap> stBot:=SCSpanningTreeRandom(HD,false);[128X[104X309[4X[28X [ 9, 5, 3, 6, 11 ][128X[104X310[4X[28X [128X[104X311[4X[32X[104X312313[1X12.1-12 SCHomology[101X314315[29X[2XSCHomology[102X( [3Xcomplex[103X ) [32X method316[6XReturns:[106X [33X[0;10Ya list of pairs of the form [10X[ integer, list ][110X upon success[133X317318[33X[0;0YComputes the homology groups of a given simplicial complex [3Xcomplex[103X using319[2XSCMorseRandom[102X ([14X12.1-6[114X) to obtain a Morse function and320[10XSmithNormalFormIntegerMat[110X. Use [2XSCHomologyEx[102X ([14X12.1-13[114X) to use alternative321methods to compute discrete Morse functions (such as [2XSCMorseEngstroem[102X322([14X12.1-5[114X), or [2XSCMorseUST[102X ([14X12.1-10[114X)) or the Smith normal form.[133X323324[33X[0;0YThe output is a list of homology groups of the form [22X[H_0,....,H_d][122X, where [22Xd[122X325is the dimension of [3Xcomplex[103X. The format of the homology groups [22XH_i[122X is given326in terms of their maximal cyclic subgroups, i.e. a homology group [22XH_i≅ Z^f +327Z / t_1 Z × dots × Z / t_n Z[122X is returned in form of a list [22X[ f,328[t_1,...,t_n] ][122X, where [22Xf[122X is the (integer) free part of [22XH_i[122X and [22Xt_i[122X denotes329the torsion parts of [22XH_i[122X ordered in weakly increasing size.[133X330331[4X[32X Example [32X[104X332[4X[28X gap> c:=SCSeriesTorus(2);;[128X[104X333[4X[28X gap> f:=SCHomology(c);[128X[104X334[4X[28X [ [ 0, [ ] ], [ 2, [ ] ], [ 1, [ ] ] ][128X[104X335[4X[28X [128X[104X336[4X[32X[104X337338[1X12.1-13 SCHomologyEx[101X339340[29X[2XSCHomologyEx[102X( [3Xc[103X, [3Xmorsechoice[103X, [3Xsmithchoice[103X ) [32X method341[6XReturns:[106X [33X[0;10Ya list of pairs of the form [10X[ integer, list ][110X upon success, fail342otherwise.[133X343344[33X[0;0YComputes the homology groups of a given simplicial complex [3Xc[103X using the345function [3Xmorsechoice[103X for discrete Morse function computations and346[3Xsmithchoice[103X for Smith normal form computations.[133X347348[33X[0;0YThe output is a list of homology groups of the form [22X[H_0,....,H_d][122X, where [22Xd[122X349is the dimension of [3Xcomplex[103X. The format of the homology groups [22XH_i[122X is given350in terms of their maximal cyclic subgroups, i.e. a homology group [22XH_i≅ Z^f +351Z / t_1 Z × dots × Z / t_n Z[122X is returned in form of a list [22X[ f,352[t_1,...,t_n] ][122X, where [22Xf[122X is the (integer) free part of [22XH_i[122X and [22Xt_i[122X denotes353the torsion parts of [22XH_i[122X ordered in weakly increasing size.[133X354355[4X[32X Example [32X[104X356[4X[28X gap> c:=SCSeriesTorus(2);;[128X[104X357[4X[28X gap> f:=SCHomology(c);[128X[104X358[4X[28X [ [ 0, [ ] ], [ 2, [ ] ], [ 1, [ ] ] ][128X[104X359[4X[28X [128X[104X360[4X[32X[104X361362[4X[32X Example [32X[104X363[4X[28X gap> c := SCSeriesHomologySphere(2,3,5);;[128X[104X364[4X[28X gap> SCHomologyEx(c,SCMorseRandom,SmithNormalFormIntegerMat); time;[128X[104X365[4X[28X [ [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ][128X[104X366[4X[28X 40[128X[104X367[4X[28X gap> c := SCSeriesHomologySphere(2,3,5);;[128X[104X368[4X[28X gap> SCHomologyEx(c,SCMorseRandomLex,SmithNormalFormIntegerMat); time;[128X[104X369[4X[28X [ [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ][128X[104X370[4X[28X 40[128X[104X371[4X[28X gap> c := SCSeriesHomologySphere(2,3,5);;[128X[104X372[4X[28X gap> SCHomologyEx(c,SCMorseRandomRevLex,SmithNormalFormIntegerMat); time;[128X[104X373[4X[28X [ [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ][128X[104X374[4X[28X 44[128X[104X375[4X[28X gap> c := SCSeriesHomologySphere(2,3,5);;[128X[104X376[4X[28X gap> SCHomologyEx(c,SCMorseEngstroem,SmithNormalFormIntegerMat); time;[128X[104X377[4X[28X [ [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ][128X[104X378[4X[28X 92[128X[104X379[4X[28X gap> c := SCSeriesHomologySphere(2,3,5);;[128X[104X380[4X[28X gap> SCHomologyEx(c,SCMorseUST,SmithNormalFormIntegerMat); time;[128X[104X381[4X[28X [ [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ][128X[104X382[4X[28X 92[128X[104X383[4X[28X [128X[104X384[4X[32X[104X385386[1X12.1-14 SCIsSimplyConnected[101X387388[29X[2XSCIsSimplyConnected[102X( [3Xc[103X ) [32X function389[6XReturns:[106X [33X[0;10Ya boolean value upon success, [10Xfail[110X otherweise.[133X390391[33X[0;0YComputes if the [10XSCSimplicialComplex[110X object [3Xc[103X is simply connected. The392algorithm is a heuristic method and is described in [PS15]. Internally calls393[2XSCIsSimplyConnectedEx[102X ([14X12.1-15[114X).[133X394395[4X[32X Example [32X[104X396[4X[28X gap> rp2:=SCSurface(1,false);;[128X[104X397[4X[28X gap> SCIsSimplyConnected(rp2);[128X[104X398[4X[28X false[128X[104X399[4X[28X gap> c:=SCBdCyclicPolytope(8,18);;[128X[104X400[4X[28X gap> SCIsSimplyConnected(c);[128X[104X401[4X[28X true[128X[104X402[4X[28X [128X[104X403[4X[32X[104X404405[1X12.1-15 SCIsSimplyConnectedEx[101X406407[29X[2XSCIsSimplyConnectedEx[102X( [3Xc[103X[, [3Xtop[103X, [3Xtries[103X] ) [32X function408[6XReturns:[106X [33X[0;10Ya boolean value upon success, [10Xfail[110X otherweise.[133X409410[33X[0;0YComputes if the [10XSCSimplicialComplex[110X object [3Xc[103X is simply connected. The411optional boolean argument [3Xtop[103X determines whether a spanning graph in the412dual or the primal graph of [3Xc[103X will be used for a collapsing sequence. The413optional positive integer argument [3Xtries[103X determines the number of times the414algorithm will try to find a collapsing sequence. The algorithm is a415heuristic method and is described in [PS15].[133X416417[4X[32X Example [32X[104X418[4X[28X gap> rp2:=SCSurface(1,false);;[128X[104X419[4X[28X gap> SCIsSimplyConnectedEx(rp2);[128X[104X420[4X[28X false[128X[104X421[4X[28X gap> c:=SCBdCyclicPolytope(8,18);;[128X[104X422[4X[28X gap> SCIsSimplyConnectedEx(c);[128X[104X423[4X[28X true[128X[104X424[4X[28X [128X[104X425[4X[32X[104X426427[1X12.1-16 SCIsSphere[101X428429[29X[2XSCIsSphere[102X( [3Xc[103X ) [32X function430[6XReturns:[106X [33X[0;10Ya boolean value upon success, [10Xfail[110X otherweise.[133X431432[33X[0;0YDetermines whether the [10XSCSimplicialComplex[110X object [3Xc[103X is a topological sphere.433In dimension [22X≠ 4[122X the algorithm determines whether [3Xc[103X is PL-homeomorphic to434the standard sphere. In dimension [22X4[122X the PL type is not specified. The435algorithm uses a result due to [KS77] stating that, in dimension [22X≠ 4[122X, any436simply connected homology sphere with PL structure is a standard PL sphere.437The function calls [2XSCIsSimplyConnected[102X ([14X12.1-14[114X) which uses a heuristic438method described in [PS15].[133X439440[4X[32X Example [32X[104X441[4X[28X gap> c:=SCBdCyclicPolytope(4,20);;[128X[104X442[4X[28X gap> SCIsSphere(c);[128X[104X443[4X[28X true[128X[104X444[4X[28X gap> c:=SCSurface(1,true);;[128X[104X445[4X[28X gap> SCIsSphere(c);[128X[104X446[4X[28X false[128X[104X447[4X[28X [128X[104X448[4X[32X[104X449450[1X12.1-17 SCIsManifold[101X451452[29X[2XSCIsManifold[102X( [3Xc[103X ) [32X function453[6XReturns:[106X [33X[0;10Ya boolean value upon success, [10Xfail[110X otherweise.[133X454455[33X[0;0YThe algorithm is a heuristic method and is described in [PS15] in more456detail. Internally calls [2XSCIsManifoldEx[102X ([14X12.1-18[114X).[133X457458[4X[32X Example [32X[104X459[4X[28X gap> c:=SCBdCyclicPolytope(4,20);;[128X[104X460[4X[28X gap> SCIsManifold(c);[128X[104X461[4X[28X true[128X[104X462[4X[28X [128X[104X463[4X[32X[104X464465[1X12.1-18 SCIsManifoldEx[101X466467[29X[2XSCIsManifoldEx[102X( [3Xc[103X[, [3Xaut[103X, [3Xquasi[103X] ) [32X function468[6XReturns:[106X [33X[0;10Ya boolean value upon success, [10Xfail[110X otherweise.[133X469470[33X[0;0YIf the boolean argument [3Xaut[103X is [10Xtrue[110X the automorphism group is computed and471only one link per orbit is checked to be a sphere. If [3Xaut[103X is not provided472symmetry information is only used if the automorphism group is already473known. If the boolean argument [3Xquasi[103X is [10Xfalse[110X the algorithm returns whether474or not [3Xc[103X is a combinatorial manifold. If [3Xquasi[103X is [10Xtrue[110X the [22X4[122X-dimensional475links are not verified to be standard PL [22X4[122X-spheres and [3Xc[103X is a combinatorial476manifold modulo the smooth Poincare conjecture. By default [3Xquasi[103X is set to477[10Xfalse[110X. The algorithm is a heuristic method and is described in [PS15] in478more detail.[133X479480[33X[0;0YSee [2XSCBistellarIsManifold[102X ([14X9.2-6[114X) for an alternative method for manifold481verification.[133X482483[4X[32X Example [32X[104X484[4X[28X gap> c:=SCBdCyclicPolytope(4,20);;[128X[104X485[4X[28X gap> SCIsManifold(c);[128X[104X486[4X[28X true[128X[104X487[4X[28X [128X[104X488[4X[32X[104X489490491492