GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
1[1X9 [33X[0;0YBistellar flips[133X[101X234[1X9.1 [33X[0;0YTheory[133X[101X56[33X[0;0YSince two combinatorial manifolds are already considered distinct to each7other as soon as they are not combinatorially isomorphic, a topological8PL-manifold is represented by a whole class of combinatorial manifolds.9Thus, a frequent question when working with combinatorial manifolds is10whether two such objects are PL-homeomorphic or not. One possibility to11approach this problem, i. e. to find combinatorially distinct members of the12class of a PL-manifold, is a heuristic algorithm using the concept of13bistellar moves.[133X14[33X[0;0Y[12XDefinition[112X (Bistellar moves [Pac87])[133X15[33X[0;0YLet [22XM[122X be a combinatorial [22Xd[122X-manifold ([22Xd[122X-pseudomanifold), [22Xγ = ⟨ v_0 , ... ,16v_k ⟩[122X a [22Xk[122X-face and [22Xδ = ⟨ w_0 , ... , w_d-k ⟩[122X a [22X(d-k+1)[122X-tuple of vertices of17[22XM[122X that does not span a [22X(d-k)[122X-face in [22XM[122X, [22X0 ≤ k ≤ d[122X, such that [22X{ v_0 , ...,18v_k } ∩ { w_0 , ... , w_d-k } = ∅[122X and [22X{ v_0 , ... , v_k, w_0 , ... w_k-d }[122X19spans exactly [22Xd-k+1[122X facets. Then the operation[133X20[33X[0;0Y[22Xκ_(γ,δ) ( M ) = M ∖ (γ ⋆ ∂ δ) ∪ (∂ γ ⋆ δ)[122X[133X21[33X[0;0Yis called a [13Xbistellar [22X(d-k)[122X-move[113X.[133X22[33X[0;0YIn other words: If there exists a bouquet [22XD ⊂ M[122X of [22Xd-k+1[122X facets on a subset23of vertices [22XW ⊂ V[122X of order [22Xd+2[122X with a common [22Xk[122X-face [22Xγ[122X and the complement [22Xδ[122X24of the vertices of [22Xγ[122X in [22XW[122X does not span a [22X(d-k)[122X-face in [22XM[122X we can remove [22XD[122X25and replace it by a bouquet of [22Xk+1[122X facets [22XE ⊂ M[122X with vertex set [22XW[122X with a26common face spanned by [22Xδ[122X. By construction [22X∂ D = ∂ E[122X and the altered complex27is again a combinatorial [22Xd[122X-manifold ([22Xd[122X-pseudomanifold). See Fig. 11 for a28bistellar [22X1[122X-move of a [22X2[122X-dimensional complex, see Fig. 12 for all bistellar29moves in dimension [22X3[122X.[133X3031[33X[0;0YA bistellar [22X0[122X-move is a [13Xstellar subdivision[113X, i. e. the subdivision of a32facet [22Xδ[122X into [22Xd+1[122X new facets by introducing a new vertex at the center of [22Xδ[122X33(cf. Fig. 12 on the left). In particular, the vertex set of a combinatorial34manifold (pseudomanifold) is not invariant under bistellar moves. For any35bistellar [22X(d-k)[122X-move [22Xκ_(γ,δ)[122X we have an inverse bistellar [22Xk[122X-move [22Xκ^-1_(γ,δ)36= κ_(δ,γ)[122X such that [22Xκ_(δ,γ) ( κ_(γ,δ) (M)) = M[122X. If for two combinatorial37manifolds [22XM[122X and [22XN[122X there exist a sequence of bistellar moves that transforms38one into the other, [22XM[122X and [22XN[122X are called [13Xbistellarly equivalent[113X. So far39bistellar moves are local operations on combinatorial manifolds that change40its combinatorial type. However, the strength of the concept in41combinatorial topology is a consequence of the following[133X42[33X[0;0Y[12XTheorem[112X (Bistellar moves [Pac87])[133X43[33X[0;0YTwo combinatorial manifolds (pseudomanifolds) [22XM[122X and [22XN[122X are PL homeomorphic if44and only if they are bistellarly equivalent.[133X45[33X[0;0YUnfortunately Pachners theorem does not guarantee that the search for a46connecting sequence of bistellar moves between [22XM[122X and [22XN[122X terminates. Hence,47using bistellar moves, we can not prove that [22XM[122X and [22XN[122X are not48PL-homeomorphic. However, there is a very effective simulated annealing49approach that is able to give a positive answer in a lot of cases. The50heuristic was first implemented by Bjoerner and Lutz in [BL00]. The51functions presented in this chapter are based on this code which can be used52for several tasks:[133X5354[33X[0;0YIn many cases the heuristic reduces a given triangulation but does not reach55a minimal triangulation after a reasonable amount of flips. Thus, we usually56can not expect the algorithm to terminate. However, in some cases the57program normally stops after a small number of flips:[133X5859[33X[0;0YTechnical note: Since bistellar flips do not respect the combinatorial60properties of a complex, no attention to the original vertex labels is61payed, i. e. the flipped complex will be relabeled whenever its vertex62labels become different from the standard labeling (for example after every63reverse 0-move).[133X646566[1X9.2 [33X[0;0YFunctions for bistellar flips[133X[101X6768[1X9.2-1 SCBistellarOptions[101X6970[29X[2XSCBistellarOptions[102X[32X global variable7172[33X[0;0YRecord of global variables to adjust output an behavior of bistellar moves73in [2XSCIntFunc.SCChooseMove[102X ([14X9.2-4[114X) and [2XSCReduceComplexEx[102X ([14X9.2-14[114X)74respectively.[133X7576[31X1[131X [33X[0;6Y[10XBaseRelaxation[110X: determines the length of the relaxation period.77Default: [22X3[122X[133X7879[31X2[131X [33X[0;6Y[10XBaseHeating[110X: determines the length of the heating period. Default: [22X4[122X[133X8081[31X3[131X [33X[0;6Y[10XRelaxation[110X: value of the current relaxation period. Default: [22X0[122X[133X8283[31X4[131X [33X[0;6Y[10XHeating[110X: value of the current heating period. Default: [22X0[122X[133X8485[31X5[131X [33X[0;6Y[10XMaxRounds[110X: maximal over all number of bistellar flips that will be86performed. Default: [22X500000[122X[133X8788[31X6[131X [33X[0;6Y[10XMaxInterval[110X: maximal number of bistellar flips that will be performed89without a change of the [22Xf[122X-vector of the moved complex. Default: [22X100000[122X[133X9091[31X7[131X [33X[0;6Y[10XMode[110X: flip mode, [22X0[122X=reducing, [22X1[122X=comparing, [22X2[122X=reduce as sub-complex,92[22X3[122X=randomize. Default: [22X0[122X[133X9394[31X8[131X [33X[0;6Y[10XWriteLevel[110X: [22X0[122X=no output, [22X1[122X=storing of every vertex minimal complex to95user library, [22X2[122X=e-mail notification. Default: [22X1[122X[133X9697[31X9[131X [33X[0;6Y[10XMailNotifyIntervall[110X: (minimum) number of seconds between two e-mail98notifications. Default: [22X24 ⋅ 60 ⋅ 60[122X (one day)[133X99100[31X10[131X [33X[0;6Y[10XMaxIntervalIsManifold[110X: maximal number of bistellar flips that will be101performed without a change of the [22Xf[122X-vector of a vertex link while102trying to prove that the complex is a combinatorial manifold. Default:103[22X5000[122X[133X104105[31X11[131X [33X[0;6Y[10XMaxIntervalRandomize := 50[110X: number of flips performed to create a106randomized sphere. Default: [22X50[122X[133X107108[4X[32X Example [32X[104X109[4X[28X gap> SCBistellarOptions.BaseRelaxation;[128X[104X110[4X[28X 3[128X[104X111[4X[28X gap> SCBistellarOptions.BaseHeating;[128X[104X112[4X[28X 4[128X[104X113[4X[28X gap> SCBistellarOptions.Relaxation;[128X[104X114[4X[28X 0[128X[104X115[4X[28X gap> SCBistellarOptions.Heating;[128X[104X116[4X[28X 0[128X[104X117[4X[28X gap> SCBistellarOptions.MaxRounds;[128X[104X118[4X[28X 500000[128X[104X119[4X[28X gap> SCBistellarOptions.MaxInterval;[128X[104X120[4X[28X 100000[128X[104X121[4X[28X gap> SCBistellarOptions.Mode;[128X[104X122[4X[28X 0[128X[104X123[4X[28X gap> SCBistellarOptions.WriteLevel;[128X[104X124[4X[28X 0[128X[104X125[4X[28X gap> SCBistellarOptions.MailNotifyInterval;[128X[104X126[4X[28X 86400[128X[104X127[4X[28X gap> SCBistellarOptions.MaxIntervalIsManifold;[128X[104X128[4X[28X 5000[128X[104X129[4X[28X gap> SCBistellarOptions.MaxIntervalRandomize;[128X[104X130[4X[28X 50[128X[104X131[4X[28X [128X[104X132[4X[32X[104X133134[1X9.2-2 SCEquivalent[101X135136[29X[2XSCEquivalent[102X( [3Xcomplex1[103X, [3Xcomplex2[103X ) [32X method137[6XReturns:[106X [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X or a list of type [10X[ fail,138SCSimplicialComplex, Integer, facet list][110X otherwise.[133X139140[33X[0;0YChecks if the simplicial complex [3Xcomplex1[103X (which has to fulfill the weak141pseudomanifold property with empty boundary) can be reduced to the142simplicial complex [3Xcomplex2[103X via bistellar moves, i. e. if [3Xcomplex1[103X and143[3Xcomplex2[103X are [22XPL[122X-homeomorphic. Note that in general the problem is144undecidable. In this case [9Xfail[109X is returned.[133X145146[33X[0;0YIt is recommended to use a minimal triangulation [3Xcomplex2[103X for the check if147possible.[133X148149[33X[0;0YInternally calls [2XSCReduceComplexEx[102X ([14X9.2-14[114X)150[10X(complex1,complex2,1,SCIntFunc.SCChooseMove);[110X[133X151152[4X[32X Example [32X[104X153[4X[28X gap> SCBistellarOptions.WriteLevel:=0;; # do not save complexes to disk[128X[104X154[4X[28X gap> obj:=SC([[1,2],[2,3],[3,4],[4,5],[5,6],[6,1]]);; # hexagon[128X[104X155[4X[28X gap> refObj:=SCBdSimplex(2);; # triangle as a (minimal) reference object[128X[104X156[4X[28X gap> SCEquivalent(obj,refObj);[128X[104X157[4X[28X #I SCReduceComplexEx: complexes are bistellarly equivalent.[128X[104X158[4X[28X true[128X[104X159[4X[28X [128X[104X160[4X[32X[104X161162[1X9.2-3 SCExamineComplexBistellar[101X163164[29X[2XSCExamineComplexBistellar[102X( [3Xcomplex[103X ) [32X method165[6XReturns:[106X [33X[0;10Ysimplicial complex passed as argument with additional properties166upon success, [9Xfail[109X otherwise.[133X167168[33X[0;0YComputes the face lattice, the [22Xf[122X-vector, the AS-determinant, the dimension169and the maximal vertex label of [3Xcomplex[103X.[133X170171[4X[32X Example [32X[104X172[4X[28X gap> obj:=SC([[1,2],[2,3],[3,4],[4,5],[5,6],[6,1]]);[128X[104X173[4X[28X [SimplicialComplex[128X[104X174[4X[28X [128X[104X175[4X[28X Properties known: Dim, FacetsEx, Name, Vertices.[128X[104X176[4X[28X [128X[104X177[4X[28X Name="unnamed complex 7"[128X[104X178[4X[28X Dim=1[128X[104X179[4X[28X [128X[104X180[4X[28X /SimplicialComplex][128X[104X181[4X[28X gap> SCExamineComplexBistellar(obj);[128X[104X182[4X[28X [SimplicialComplex[128X[104X183[4X[28X [128X[104X184[4X[28X Properties known: AltshulerSteinberg, BoundaryEx, Dim, FVector, [128X[104X185[4X[28X FacetsEx, HasBoundary, IsPseudoManifold, IsPure, [128X[104X186[4X[28X Name, NumFaces[], SkelExs[], Vertices.[128X[104X187[4X[28X [128X[104X188[4X[28X Name="unnamed complex 7"[128X[104X189[4X[28X Dim=1[128X[104X190[4X[28X AltshulerSteinberg=0[128X[104X191[4X[28X FVector=[ 6, 6 ][128X[104X192[4X[28X HasBoundary=false[128X[104X193[4X[28X IsPseudoManifold=true[128X[104X194[4X[28X IsPure=true[128X[104X195[4X[28X [128X[104X196[4X[28X /SimplicialComplex][128X[104X197[4X[28X [128X[104X198[4X[32X[104X199200[1X9.2-4 SCIntFunc.SCChooseMove[101X201202[29X[2XSCIntFunc.SCChooseMove[102X( [3Xdim[103X, [3Xmoves[103X ) [32X function203[6XReturns:[106X [33X[0;10Ya bistellar move, i. e. a pair of lists upon success, [9Xfail[109X204otherwise.[133X205206[33X[0;0YSince the problem of finding a bistellar flip sequence that reduces a207simplicial complex is undecidable, we have to use an heuristic approach to208choose the next move.[133X209210[33X[0;0YThe implemented strategy [10XSCIntFunc.SCChooseMove[110X first tries to directly211remove vertices, edges, [22Xi[122X-faces in increasing dimension etc. If this is not212possible it inserts high dimensional faces in decreasing co-dimension. To do213this in an efficient way a number of parameters have to be adjusted, namely214[10XSCBistellarOptions.BaseHeating[110X and [10XSCBistellarOptions.BaseRelaxation[110X. See215[2XSCBistellarOptions[102X ([14X9.2-1[114X) for further options.[133X216217[33X[0;0YIf this strategy does not work for you, just implement a customized strategy218and pass it to [2XSCReduceComplexEx[102X ([14X9.2-14[114X).[133X219220[33X[0;0YSee [2XSCRMoves[102X ([14X9.2-10[114X) for further information.[133X221222[1X9.2-5 SCIsKStackedSphere[101X223224[29X[2XSCIsKStackedSphere[102X( [3Xcomplex[103X, [3Xk[103X ) [32X method225[6XReturns:[106X [33X[0;10Ya list upon success, [9Xfail[109X otherwise.[133X226227[33X[0;0YChecks, whether the given simplicial complex [3Xcomplex[103X that must be a PL228[22Xd[122X-sphere is a [3Xk[103X-stacked sphere with [22X1≤ k≤ ⌊fracd+22⌋[122X using a randomized229algorithm based on bistellar moves (see [Eff11b], [Eff11a]). Note that it is230not checked whether [3Xcomplex[103X is a PL sphere -- if not, the algorithm will not231succeed. Returns a list upon success: the first entry is a boolean, where232[9Xtrue[109X means that the complex is [10Xk[110X-stacked and [9Xfalse[109X means that the complex233cannot be [3Xk[103X-stacked. A value of -1 means that the question could not be234decided. The second argument contains a simplicial complex that, in case of235success, contains the trigangulated [22X(d+1)[122X-ball [22XB[122X with [22X∂ B=S[122X and236[22Xoperatornameskel_d-k(B)=operatornameskel_d-k(S)[122X, where [22XS[122X denotes the237simplicial complex passed in [3Xcomplex[103X.[133X238239[33X[0;0YInternally calls [2XSCReduceComplexEx[102X ([14X9.2-14[114X).[133X240241[4X[32X Example [32X[104X242[4X[28X gap> SCLib.SearchByName("S^4~S^1");[128X[104X243[4X[28X [ [ 463, "S^4~S^1 (VT)" ], [ 1473, "S^4~S^1 (VT)" ], [ 1474, "S^4~S^1 (VT)" ],[128X[104X244[4X[28X [ 2477, "S^4~S^1 (VT)" ], [ 4395, "S^4~S^1 (VT)" ], [128X[104X245[4X[28X [ 4396, "S^4~S^1 (VT)" ], [ 4397, "S^4~S^1 (VT)" ], [128X[104X246[4X[28X [ 4398, "S^4~S^1 (VT)" ], [ 4399, "S^4~S^1 (VT)" ], [128X[104X247[4X[28X [ 4402, "S^4~S^1 (VT)" ], [ 4403, "S^4~S^1 (VT)" ], [128X[104X248[4X[28X [ 4404, "S^4~S^1 (VT)" ] ][128X[104X249[4X[28X gap> c:=SCLib.Load(last[1][1]);;[128X[104X250[4X[28X gap> l:=SCLink(c,1);[128X[104X251[4X[28X [SimplicialComplex[128X[104X252[4X[28X [128X[104X253[4X[28X Properties known: Dim, FacetsEx, Name, Vertices.[128X[104X254[4X[28X [128X[104X255[4X[28X Name="lk([ 1 ]) in S^4~S^1 (VT)"[128X[104X256[4X[28X Dim=4[128X[104X257[4X[28X [128X[104X258[4X[28X /SimplicialComplex][128X[104X259[4X[28X gap> SCIsKStackedSphere(l,1);[128X[104X260[4X[28X #I SCIsKStackedSphere: checking if complex is a 1-stacked sphere...[128X[104X261[4X[28X #I SCIsKStackedSphere: try 1/1[128X[104X262[4X[28X #I SCIsKStackedSphere: complex is a 1-stacked sphere.[128X[104X263[4X[28X [ true, [SimplicialComplex[128X[104X264[4X[28X [128X[104X265[4X[28X Properties known: Dim, FacetsEx, Name, Vertices.[128X[104X266[4X[28X [128X[104X267[4X[28X Name="Filled 1-stacked sphere (lk([ 1 ]) in S^4~S^1 (VT))"[128X[104X268[4X[28X Dim=5[128X[104X269[4X[28X [128X[104X270[4X[28X /SimplicialComplex] ][128X[104X271[4X[28X [128X[104X272[4X[32X[104X273274[1X9.2-6 SCBistellarIsManifold[101X275276[29X[2XSCBistellarIsManifold[102X( [3Xcomplex[103X ) [32X method277[6XReturns:[106X [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X278279[33X[0;0YTries to prove that a closed simplicial [22Xd[122X-pseudomanifold is a combinatorial280manifold by reducing its vertex links to the boundary of the d-simplex.[133X281282[33X[0;0Y[9Xfalse[109X is returned if it can be proven that there exists a vertex link which283is not PL-homeomorphic to the standard PL-sphere, [9Xtrue[109X is returned if all284vertex links are bistellarly equivalent to the boundary of the simplex, [9Xfail[109X285is returned if the algorithm does not terminate after the number of rounds286indicated by [10XSCBistellarOptions.MaxIntervallIsManifold[110X.[133X287288[33X[0;0YInternally calls [2XSCReduceComplexEx[102X ([14X9.2-14[114X)289[10X(link,SCEmpty(),0,SCIntFunc.SCChooseMove);[110X for every link of [3Xcomplex[103X. Note290that [9Xfalse[109X is returned in case of a bounded manifold.[133X291292[33X[0;0YSee [2XSCIsManifoldEx[102X ([14X12.1-18[114X) and [2XSCIsManifold[102X ([14X12.1-17[114X) for alternative293methods for manifold verification.[133X294295[4X[32X Example [32X[104X296[4X[28X gap> c:=SCBdCrossPolytope(3);;[128X[104X297[4X[28X gap> SCBistellarIsManifold(c);[128X[104X298[4X[28X true[128X[104X299[4X[28X [128X[104X300[4X[32X[104X301302[1X9.2-7 SCIsMovableComplex[101X303304[29X[2XSCIsMovableComplex[102X( [3Xcomplex[103X ) [32X method305[6XReturns:[106X [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X306307[33X[0;0YChecks if a simplicial complex [3Xcomplex[103X can be modified by bistellar moves,308i. e. if it is a pure simplicial complex which fulfills the weak309pseudomanifold property with empty boundary.[133X310311[4X[32X Example [32X[104X312[4X[28X gap> c:=SCBdCrossPolytope(3);;[128X[104X313[4X[28X gap> SCIsMovableComplex(c);[128X[104X314[4X[28X true[128X[104X315[4X[28X [128X[104X316[4X[32X[104X317318[33X[0;0YComplex with non-empty boundary:[133X319320[4X[32X Example [32X[104X321[4X[28X gap> c:=SC([[1,2],[2,3],[3,4],[3,1]]);;[128X[104X322[4X[28X gap> SCIsMovableComplex(c);[128X[104X323[4X[28X false[128X[104X324[4X[28X [128X[104X325[4X[32X[104X326327[1X9.2-8 SCMove[101X328329[29X[2XSCMove[102X( [3Xc[103X, [3Xmove[103X ) [32X method330[6XReturns:[106X [33X[0;10Ysimplicial complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X331otherwise.[133X332333[33X[0;0YApplies the bistellar move [3Xmove[103X to a simplicial complex [3Xc[103X. [3Xmove[103X is given as334a [22X(r+1)[122X-tuple together with a [22X(d+1-r)[122X-tuple if [22Xd[122X is the dimension of [3Xc[103X and335if [3Xmove[103X is a [22Xr[122X-move. See [2XSCRMoves[102X ([14X9.2-10[114X) for detailed information about336bistellar [22Xr[122X-moves.[133X337338[33X[0;0YNote: [3Xmove[103X and [3Xc[103X should be given in standard labeling to ensure a correct339result.[133X340341[4X[32X Example [32X[104X342[4X[28X gap> obj:=SC([[1,2],[2,3],[3,4],[4,1]]);[128X[104X343[4X[28X [SimplicialComplex[128X[104X344[4X[28X [128X[104X345[4X[28X Properties known: Dim, FacetsEx, Name, Vertices.[128X[104X346[4X[28X [128X[104X347[4X[28X Name="unnamed complex 5"[128X[104X348[4X[28X Dim=1[128X[104X349[4X[28X [128X[104X350[4X[28X /SimplicialComplex][128X[104X351[4X[28X gap> moves:=SCMoves(obj);[128X[104X352[4X[28X [ [ [ [ 1, 2 ], [ ] ], [ [ 1, 4 ], [ ] ], [ [ 2, 3 ], [ ] ], [128X[104X353[4X[28X [ [ 3, 4 ], [ ] ] ], [128X[104X354[4X[28X [ [ [ 1 ], [ 2, 4 ] ], [ [ 2 ], [ 1, 3 ] ], [ [ 3 ], [ 2, 4 ] ], [128X[104X355[4X[28X [ [ 4 ], [ 1, 3 ] ] ] ][128X[104X356[4X[28X gap> obj:=SCMove(obj,last[2][1]);[128X[104X357[4X[28X [SimplicialComplex[128X[104X358[4X[28X [128X[104X359[4X[28X Properties known: Dim, FacetsEx, Name, NumFaces[], SkelExs[], [128X[104X360[4X[28X Vertices.[128X[104X361[4X[28X [128X[104X362[4X[28X Name="unnamed complex 6"[128X[104X363[4X[28X Dim=1[128X[104X364[4X[28X [128X[104X365[4X[28X /SimplicialComplex][128X[104X366[4X[28X [128X[104X367[4X[32X[104X368369[1X9.2-9 SCMoves[101X370371[29X[2XSCMoves[102X( [3Xcomplex[103X ) [32X method372[6XReturns:[106X [33X[0;10Ya list of list of pairs of lists upon success, [9Xfail[109X otherwise.[133X373374[33X[0;0YSee [2XSCRMoves[102X ([14X9.2-10[114X) for further information.[133X375376[4X[32X Example [32X[104X377[4X[28X gap> c:=SCBdCrossPolytope(3);;[128X[104X378[4X[28X gap> moves:=SCMoves(c);[128X[104X379[4X[28X [ [ [ [ 1, 3, 5 ], [ ] ], [ [ 1, 3, 6 ], [ ] ], [ [ 1, 4, 5 ], [ ] ], [128X[104X380[4X[28X [ [ 1, 4, 6 ], [ ] ], [ [ 2, 3, 5 ], [ ] ], [ [ 2, 3, 6 ], [ ] ], [128X[104X381[4X[28X [ [ 2, 4, 5 ], [ ] ], [ [ 2, 4, 6 ], [ ] ] ], [128X[104X382[4X[28X [ [ [ 1, 3 ], [ 5, 6 ] ], [ [ 1, 4 ], [ 5, 6 ] ], [ [ 1, 5 ], [ 3, 4 ] ], [128X[104X383[4X[28X [ [ 1, 6 ], [ 3, 4 ] ], [ [ 2, 3 ], [ 5, 6 ] ], [ [ 2, 4 ], [ 5, 6 ] ], [128X[104X384[4X[28X [ [ 2, 5 ], [ 3, 4 ] ], [ [ 2, 6 ], [ 3, 4 ] ], [ [ 3, 5 ], [ 1, 2 ] ], [128X[104X385[4X[28X [ [ 3, 6 ], [ 1, 2 ] ], [ [ 4, 5 ], [ 1, 2 ] ], [ [ 4, 6 ], [ 1, 2 ] ] ][128X[104X386[4X[28X , [ ] ][128X[104X387[4X[28X [128X[104X388[4X[32X[104X389390[1X9.2-10 SCRMoves[101X391392[29X[2XSCRMoves[102X( [3Xcomplex[103X, [3Xr[103X ) [32X method393[6XReturns:[106X [33X[0;10Ya list of pairs of the form [10X[ list, list ][110X, [9Xfail[109X otherwise.[133X394395[33X[0;0YA bistellar [22Xr[122X-move of a [22Xd[122X-dimensional combinatorial manifold [3Xcomplex[103X is a396[22Xr[122X-face [22Xm_1[122X together with a [22Xd-r[122X-tuple [22Xm_2[122X where [22Xm_1[122X is a common face of397exactly [22X(d+1-r)[122X facets and [22Xm_2[122X is not a face of [3Xcomplex[103X.[133X398399[33X[0;0YThe [22Xr[122X-move removes all facets containing [22Xm_1[122X and replaces them by the [22X(r+1)[122X400faces obtained by uniting [22Xm_2[122X with any subset of [22Xm_1[122X of order [22Xr[122X.[133X401402[33X[0;0YThe resulting complex is PL-homeomorphic to [3Xcomplex[103X.[133X403404[4X[32X Example [32X[104X405[4X[28X gap> c:=SCBdCrossPolytope(3);;[128X[104X406[4X[28X gap> moves:=SCRMoves(c,1);[128X[104X407[4X[28X [ [ [ 1, 3 ], [ 5, 6 ] ], [ [ 1, 4 ], [ 5, 6 ] ], [ [ 1, 5 ], [ 3, 4 ] ], [128X[104X408[4X[28X [ [ 1, 6 ], [ 3, 4 ] ], [ [ 2, 3 ], [ 5, 6 ] ], [ [ 2, 4 ], [ 5, 6 ] ], [128X[104X409[4X[28X [ [ 2, 5 ], [ 3, 4 ] ], [ [ 2, 6 ], [ 3, 4 ] ], [ [ 3, 5 ], [ 1, 2 ] ], [128X[104X410[4X[28X [ [ 3, 6 ], [ 1, 2 ] ], [ [ 4, 5 ], [ 1, 2 ] ], [ [ 4, 6 ], [ 1, 2 ] ] ][128X[104X411[4X[28X [128X[104X412[4X[32X[104X413414[1X9.2-11 SCRandomize[101X415416[29X[2XSCRandomize[102X( [3Xcomplex[103X[[, [3Xrounds[103X][, [3Xallowedmoves[103X]] ) [32X function417[6XReturns:[106X [33X[0;10Ya simplicial complex upon success, [9Xfail[109X otherwise.[133X418419[33X[0;0YRandomizes the given simplicial complex [3Xcomplex[103X via bistellar moves chosen420at random. By passing the optional array [3Xallowedmoves[103X, which has to be a421dense array of integer values of length [10XSCDim(complex)[110X, certain moves can be422allowed or forbidden in the proccess. An entry [10Xallowedmoves[i]=1[110X allows423[22X(i-1)[122X-moves and an entry [10Xallowedmoves[i]=0[110X forbids [22X(i-1)[122X-moves in the424randomization process.[133X425426[33X[0;0YWith optional positive integer argument [3Xrounds[103X, the amount of randomization427can be controlled. The higher the value of [3Xrounds[103X, the more bistellar moves428will be randomly performed on [3Xcomplex[103X. Note that the argument [3Xrounds[103X429overrides the global setting [10XSCBistellarOptions.MaxIntervalRandomize[110X (this430value is used, if [3Xrounds[103X is not specified). Internally calls431[2XSCReduceComplexEx[102X ([14X9.2-14[114X).[133X432433[4X[32X Example [32X[104X434[4X[28X gap> c:=SCRandomize(SCBdSimplex(4));[128X[104X435[4X[28X [SimplicialComplex[128X[104X436[4X[28X [128X[104X437[4X[28X Properties known: Dim, FacetsEx, Name, Vertices.[128X[104X438[4X[28X [128X[104X439[4X[28X Name="Randomized S^3_5"[128X[104X440[4X[28X Dim=3[128X[104X441[4X[28X [128X[104X442[4X[28X /SimplicialComplex][128X[104X443[4X[28X gap> c.F;[128X[104X444[4X[28X [ 16, 65, 98, 49 ][128X[104X445[4X[28X [128X[104X446[4X[32X[104X447448[1X9.2-12 SCReduceAsSubcomplex[101X449450[29X[2XSCReduceAsSubcomplex[102X( [3Xcomplex1[103X, [3Xcomplex2[103X ) [32X method451[6XReturns:[106X [33X[0;10Y[10XSCBistellarOptions.WriteLevel=0[110X: a triple of the form [10X[ boolean,452simplicial complex, rounds performed ][110X upon termination of the453algorithm.[133X454455[33X[0;10Y[10XSCBistellarOptions.WriteLevel=1[110X: A library of simplicial complexes456with a number of complexes from the reducing process and (upon457termination) a triple of the form [10X[ boolean, simplicial complex,458rounds performed ][110X.[133X459460[33X[0;10Y[10XSCBistellarOptions.WriteLevel=2[110X: A mail in case a smaller version461of [3Xcomplex1[103X was found, a library of simplicial complexes with a462number of complexes from the reducing process and (upon463termination) a triple of the form [10X[ boolean, simplicial complex,464rounds performed ][110X.[133X465466[33X[0;10YReturns [9Xfail[109X upon an error.[133X467468[33X[0;0YReduces a simplicial complex [3Xcomplex1[103X (satisfying the weak pseudomanifold469property with empty boundary) as a sub-complex of the simplicial complex470[3Xcomplex2[103X.[133X471472[33X[0;0YMain application: Reduce a sub-complex of the cross polytope without473introducing diagonals.[133X474475[33X[0;0YInternally calls [2XSCReduceComplexEx[102X ([14X9.2-14[114X)476[10X(complex1,complex2,2,SCIntFunc.SCChooseMove);[110X[133X477478[4X[32X Example [32X[104X479[4X[28X gap> c:=SCFromFacets([[1,3],[3,5],[4,5],[4,1]]);;[128X[104X480[4X[28X gap> SCBistellarOptions.WriteLevel:=0;; # do not save complexes [128X[104X481[4X[28X gap> SCReduceAsSubcomplex(c,SCBdCrossPolytope(3));[128X[104X482[4X[28X [ true, [SimplicialComplex[128X[104X483[4X[28X [128X[104X484[4X[28X Properties known: Dim, FacetsEx, Name, Vertices.[128X[104X485[4X[28X [128X[104X486[4X[28X Name="unnamed complex 36"[128X[104X487[4X[28X Dim=1[128X[104X488[4X[28X [128X[104X489[4X[28X /SimplicialComplex], 1 ][128X[104X490[4X[32X[104X491492[1X9.2-13 SCReduceComplex[101X493494[29X[2XSCReduceComplex[102X( [3Xcomplex[103X ) [32X method495[6XReturns:[106X [33X[0;10Y[10XSCBistellarOptions.WriteLevel=0[110X: a triple of the form [10X[ boolean,496simplicial complex, rounds performed ][110X upon termination of the497algorithm.[133X498499[33X[0;10Y[10XSCBistellarOptions.WriteLevel=1[110X: A library of simplicial complexes500with a number of complexes from the reducing process and (upon501termination) a triple of the form [10X[ boolean, simplicial complex,502rounds performed ][110X.[133X503504[33X[0;10Y[10XSCBistellarOptions.WriteLevel=2[110X: A mail in case a smaller version505of [3Xcomplex1[103X was found, a library of simplicial complexes with a506number of complexes from the reducing process and (upon507termination) a triple of the form [10X[ boolean, simplicial complex,508rounds performed ][110X.[133X509510[33X[0;10YReturns [9Xfail[109X upon an error..[133X511512[33X[0;0YReduces a pure simplicial complex [3Xcomplex[103X satisfying the weak pseudomanifold513property via bistellar moves. Internally calls [2XSCReduceComplexEx[102X ([14X9.2-14[114X)514[10X(complex,SCEmpty(),0,SCIntFunc.SCChooseMove);[110X[133X515516[4X[32X Example [32X[104X517[4X[28X gap> obj:=SC([[1,2],[2,3],[3,4],[4,5],[5,6],[6,1]]);; # hexagon[128X[104X518[4X[28X gap> SCBistellarOptions.WriteLevel:=0;; # do not save complexes [128X[104X519[4X[28X gap> tmp := SCReduceComplex(obj);[128X[104X520[4X[28X [ true, [SimplicialComplex[128X[104X521[4X[28X [128X[104X522[4X[28X Properties known: Dim, FacetsEx, Name, Vertices.[128X[104X523[4X[28X [128X[104X524[4X[28X Name="unnamed complex 27"[128X[104X525[4X[28X Dim=1[128X[104X526[4X[28X [128X[104X527[4X[28X /SimplicialComplex], 3 ][128X[104X528[4X[28X [128X[104X529[4X[32X[104X530531[1X9.2-14 SCReduceComplexEx[101X532533[29X[2XSCReduceComplexEx[102X( [3Xcomplex[103X, [3XrefComplex[103X, [3Xmode[103X, [3Xchoosemove[103X ) [32X function534[6XReturns:[106X [33X[0;10Y[10XSCBistellarOptions.WriteLevel=0[110X: a triple of the form [10X[ boolean,535simplicial complex, rounds ][110X upon termination of the algorithm.[133X536537[33X[0;10Y[10XSCBistellarOptions.WriteLevel=1[110X: A library of simplicial complexes538with a number of complexes from the reducing process and (upon539termination) a triple of the form [10X[ boolean, simplicial complex,540rounds ][110X.[133X541542[33X[0;10Y[10XSCBistellarOptions.WriteLevel=2[110X: A mail in case a smaller version543of [3Xcomplex1[103X was found, a library of simplicial complexes with a544number of complexes from the reducing process and (upon545termination) a triple of the form [10X[ boolean, simplicial complex,546rounds ][110X.[133X547548[33X[0;10YReturns [9Xfail[109X upon an error.[133X549550[33X[0;0YReduces a pure simplicial complex [3Xcomplex[103X satisfying the weak pseudomanifold551property via bistellar moves [3Xmode = 0[103X, compares it to the simplicial complex552[3XrefComplex[103X ([3Xmode = 1[103X) or reduces it as a sub-complex of [3XrefComplex[103X ([3Xmode =5532[103X).[133X554555[33X[0;0Y[3Xchoosemove[103X is a function containing a flip strategy, see also556[2XSCIntFunc.SCChooseMove[102X ([14X9.2-4[114X).[133X557558[33X[0;0YThe currently smallest complex is stored to the variable [10XminComplex[110X, the559currently smallest [22Xf[122X-vector to [10XminF[110X. Note that in general the algorithm will560not stop until the maximum number of rounds is reached. You can adjust the561maximum number of rounds via the property [2XSCBistellarOptions[102X ([14X9.2-1[114X). The562number of rounds performed is returned in the third entry of the triple563returned by this function.[133X564565[33X[0;0YThis function is called by[133X566567[31X1[131X [33X[0;6Y[2XSCReduceComplex[102X ([14X9.2-13[114X),[133X568569[31X2[131X [33X[0;6Y[2XSCEquivalent[102X ([14X9.2-2[114X),[133X570571[31X3[131X [33X[0;6Y[2XSCReduceAsSubcomplex[102X ([14X9.2-12[114X),[133X572573[31X4[131X [33X[0;6Y[2XSCBistellarIsManifold[102X ([14X9.2-6[114X).[133X574575[31X5[131X [33X[0;6Y[2XSCRandomize[102X ([14X9.2-11[114X).[133X576577[33X[0;0YPlease see [2XSCMailIsPending[102X ([14X15.2-3[114X) for further information about the email578notification system in case [10XSCBistellarOptions.WriteLevel[110X is set to [22X2[122X.[133X579580[4X[32X Example [32X[104X581[4X[28X gap> c:=SCBdCrossPolytope(4);;[128X[104X582[4X[28X gap> SCBistellarOptions.WriteLevel:=0;; # do not save complexes [128X[104X583[4X[28X gap> SCReduceComplexEx(c,SCEmpty(),0,SCIntFunc.SCChooseMove);[128X[104X584[4X[28X [ true, [SimplicialComplex[128X[104X585[4X[28X [128X[104X586[4X[28X Properties known: Dim, FacetsEx, Name, Vertices.[128X[104X587[4X[28X [128X[104X588[4X[28X Name="unnamed complex 13"[128X[104X589[4X[28X Dim=3[128X[104X590[4X[28X [128X[104X591[4X[28X /SimplicialComplex], 7 ][128X[104X592[4X[28X gap> SCReduceComplexEx(c,SCEmpty(),0,SCIntFunc.SCChooseMove);[128X[104X593[4X[28X [ true, [SimplicialComplex[128X[104X594[4X[28X [128X[104X595[4X[28X Properties known: Dim, FacetsEx, Name, Vertices.[128X[104X596[4X[28X [128X[104X597[4X[28X Name="unnamed complex 18"[128X[104X598[4X[28X Dim=3[128X[104X599[4X[28X [128X[104X600[4X[28X /SimplicialComplex], 9 ][128X[104X601[4X[28X gap> SCMailSetAddress("johndoe@somehost"); [128X[104X602[4X[28X true[128X[104X603[4X[28X gap> SCMailIsEnabled(); [128X[104X604[4X[28X true[128X[104X605[4X[28X gap> SCReduceComplexEx(c,SCEmpty(),0,SCIntFunc.SCChooseMove);[128X[104X606[4X[28X [ true, [SimplicialComplex[128X[104X607[4X[28X [128X[104X608[4X[28X Properties known: Dim, FacetsEx, Name, Vertices.[128X[104X609[4X[28X [128X[104X610[4X[28X Name="unnamed complex 23"[128X[104X611[4X[28X Dim=3[128X[104X612[4X[28X [128X[104X613[4X[28X /SimplicialComplex], 7 ][128X[104X614[4X[28X [128X[104X615[4X[32X[104X616617[33X[0;0YContent of sent mail:[133X618619[4X[32X Example [32X[104X620[4X[28X Greetings master,[128X[104X621[4X[28X [128X[104X622[4X[28X this is simpcomp 2.1.7 running on igt215.mathematik.uni-stuttgart.de[128X[104X623[4X[28X (Linux igt215 2.6.26-2-amd64 #1 SMP Thu Nov 5 02:23:12 UTC 2009 x86_64[128X[104X624[4X[28X GNU/Linux), GAP 4.4.12.[128X[104X625[4X[28X [128X[104X626[4X[28X I have been working hard for 0 seconds and have a message for you, see below.[128X[104X627[4X[28X [128X[104X628[4X[28X #### START MESSAGE ####[128X[104X629[4X[28X [128X[104X630[4X[28X SCReduceComplex:[128X[104X631[4X[28X [128X[104X632[4X[28X Computed locally minimal complex after 7 rounds:[128X[104X633[4X[28X [128X[104X634[4X[28X [SimplicialComplex[128X[104X635[4X[28X [128X[104X636[4X[28X Properties known: Boundary, Chi, Date, Dim, F, Faces, Facets, G, H,[128X[104X637[4X[28X HasBoundary, Homology, IsConnected, IsManifold, IsPM, Name, SCVertices,[128X[104X638[4X[28X Vertices.[128X[104X639[4X[28X [128X[104X640[4X[28X Name="ReducedComplex_5_vertices_7"[128X[104X641[4X[28X Dim=3[128X[104X642[4X[28X Chi=0[128X[104X643[4X[28X F=[ 5, 10, 10, 5 ][128X[104X644[4X[28X G=[ 0, 0 ][128X[104X645[4X[28X H=[ 1, 1, 1, 1 ][128X[104X646[4X[28X HasBoundary=false[128X[104X647[4X[28X Homology=[ [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ][128X[104X648[4X[28X IsConnected=true[128X[104X649[4X[28X IsPM=true[128X[104X650[4X[28X [128X[104X651[4X[28X /SimplicialComplex][128X[104X652[4X[28X [128X[104X653[4X[28X ##### END MESSAGE #####[128X[104X654[4X[28X [128X[104X655[4X[28X That's all, I hope this is good news! Have a nice day.[128X[104X656[4X[28X [128X[104X657[4X[32X[104X658659[1X9.2-15 SCReduceComplexFast[101X660661[29X[2XSCReduceComplexFast[102X( [3Xcomplex[103X ) [32X function662[6XReturns:[106X [33X[0;10Ya simplicial complex upon success, [9Xfail[109X otherwise.[133X663664[33X[0;0YSame as [2XSCReduceComplex[102X ([14X9.2-13[114X), but calls an external binary provided with665the simpcomp package.[133X666667668669