GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
1[1X7 [33X[0;0YFunctions and operations for [10XSCNormalSurface[110X[101X[1X[133X[101X234[1X7.1 [33X[0;0YCreating an [10XSCNormalSurface[110X[101X[1X object[133X[101X56[33X[0;0YThis section contains functions to construct discrete normal surfaces that7are slicings from a list of [22X2[122X-dimensional facets (triangles and8quadrilaterals) or combinatorial [22X3[122X-manifolds.[133X910[33X[0;0YFor a very short introduction to the theory of discrete normal surfaces and11slicings see Section [14X2.4[114X and Section [14X2.5[114X, for an introduction to the [5XGAP[105X12object type [10XSCNormalSurface[110X see [14X5.4[114X, for more information see the article13[Spr11b].[133X1415[1X7.1-1 SCNSEmpty[101X1617[29X[2XSCNSEmpty[102X( ) [32X function18[6XReturns:[106X [33X[0;10Ydiscrete normal surface of type [10XSCNormalSurface[110X upon success, [9Xfail[109X19otherwise.[133X2021[33X[0;0YGenerates an empty complex (of dimension [22X-1[122X), i. e. an object of type22[10XSCNormalSurface[110X with empty facet list.[133X2324[4X[32X Example [32X[104X25[4X[28X gap> SCNSEmpty();[128X[104X26[4X[28X [NormalSurface[128X[104X27[4X[28X [128X[104X28[4X[28X Properties known: Dim, FacetsEx, Name, Vertices.[128X[104X29[4X[28X [128X[104X30[4X[28X Name="empty normal surface"[128X[104X31[4X[28X Dim=-1[128X[104X32[4X[28X [128X[104X33[4X[28X /NormalSurface][128X[104X34[4X[28X [128X[104X35[4X[32X[104X3637[1X7.1-2 SCNSFromFacets[101X3839[29X[2XSCNSFromFacets[102X( [3Xfacets[103X ) [32X method40[6XReturns:[106X [33X[0;10Ydiscrete normal surface of type [10XSCNormalSurface[110X upon success, [9Xfail[109X41otherwise.[133X4243[33X[0;0YConstructor for a discrete normal surface from a facet list, see44[2XSCFromFacets[102X ([14X6.1-1[114X) for details.[133X4546[4X[32X Example [32X[104X47[4X[28X gap> sl:=SCNSFromFacets([[1,2,3],[1,2,4,5],[1,3,4,6],[2,3,5,6],[4,5,6]]);[128X[104X48[4X[28X [NormalSurface[128X[104X49[4X[28X [128X[104X50[4X[28X Properties known: Dim, FacetsEx, Name, Vertices.[128X[104X51[4X[28X [128X[104X52[4X[28X Name="unnamed complex 86"[128X[104X53[4X[28X Dim=2[128X[104X54[4X[28X [128X[104X55[4X[28X /NormalSurface][128X[104X56[4X[28X [128X[104X57[4X[32X[104X5859[1X7.1-3 SCNS[101X6061[29X[2XSCNS[102X( [3Xfacets[103X ) [32X method62[6XReturns:[106X [33X[0;10Ydiscrete normal surface of type [10XSCNormalSurface[110X upon success, [9Xfail[109X63otherwise.[133X6465[33X[0;0YInternally calls [2XSCNSFromFacets[102X ([14X7.1-2[114X).[133X6667[4X[32X Example [32X[104X68[4X[28X gap> sl:=SCNS([[1,2,3],[1,2,4,5],[1,3,4,6],[2,3,5,6],[4,5,6]]);[128X[104X69[4X[28X [NormalSurface[128X[104X70[4X[28X [128X[104X71[4X[28X Properties known: Dim, FacetsEx, Name, Vertices.[128X[104X72[4X[28X [128X[104X73[4X[28X Name="unnamed complex 87"[128X[104X74[4X[28X Dim=2[128X[104X75[4X[28X [128X[104X76[4X[28X /NormalSurface][128X[104X77[4X[28X [128X[104X78[4X[32X[104X7980[1X7.1-4 SCNSSlicing[101X8182[29X[2XSCNSSlicing[102X( [3Xcomplex[103X, [3Xslicing[103X ) [32X function83[6XReturns:[106X [33X[0;10Ydiscrete normal surface of type [10XSCNormalSurface[110X upon success, [9Xfail[109X84otherwise.[133X8586[33X[0;0YComputes a slicing defined by a partition [3Xslicing[103X of the set of vertices of87the [22X3[122X-dimensional combinatorial pseudomanifold [3Xcomplex[103X. In particular,88[3Xslicing[103X has to be a pair of lists of vertex labels and has to contain all89vertex labels of [3Xcomplex[103X.[133X9091[4X[32X Example [32X[104X92[4X[28X gap> SCLib.SearchByAttribute("F=[ 10, 35, 50, 25 ]");[128X[104X93[4X[28X [ [ 19, "S^3 (VT)" ] ][128X[104X94[4X[28X gap> c:=SCLib.Load(last[1][1]);; [128X[104X95[4X[28X gap> sl:=SCNSSlicing(c,[[1..5],[6..10]]); [128X[104X96[4X[28X [NormalSurface[128X[104X97[4X[28X [128X[104X98[4X[28X Properties known: ConnectedComponents, Dim, EulerCharacteristic, FVector, Fac\[128X[104X99[4X[28X etsEx, Genus, IsConnected, IsOrientable, NSTriangulation, Name, TopologicalTyp\[128X[104X100[4X[28X e, Vertices.[128X[104X101[4X[28X [128X[104X102[4X[28X Name="slicing [ [ 1, 2, 3, 4, 5 ], [ 6, 7, 8, 9, 10 ] ] of S^3 (VT)"[128X[104X103[4X[28X Dim=2[128X[104X104[4X[28X FVector=[ 17, 36, 12, 9 ][128X[104X105[4X[28X EulerCharacteristic=2[128X[104X106[4X[28X IsOrientable=true[128X[104X107[4X[28X TopologicalType="S^2"[128X[104X108[4X[28X [128X[104X109[4X[28X /NormalSurface][128X[104X110[4X[28X gap> sl.Facets;[128X[104X111[4X[28X [ [ [ 1, 6 ], [ 1, 8 ], [ 1, 9 ] ], [ [ 1, 6 ], [ 1, 8 ], [ 3, 6 ], [ 3, 8 ] ][128X[104X112[4X[28X , [ [ 1, 6 ], [ 1, 9 ], [ 4, 6 ], [ 4, 9 ] ], [128X[104X113[4X[28X [ [ 1, 6 ], [ 3, 6 ], [ 4, 6 ] ], [ [ 1, 8 ], [ 1, 9 ], [ 1, 10 ] ], [128X[104X114[4X[28X [ [ 1, 8 ], [ 1, 10 ], [ 3, 8 ], [ 3, 10 ] ], [128X[104X115[4X[28X [ [ 1, 9 ], [ 1, 10 ], [ 2, 9 ], [ 2, 10 ] ], [128X[104X116[4X[28X [ [ 1, 9 ], [ 2, 9 ], [ 4, 9 ] ], [ [ 1, 10 ], [ 2, 10 ], [ 3, 10 ] ], [128X[104X117[4X[28X [ [ 2, 7 ], [ 2, 9 ], [ 2, 10 ] ], [128X[104X118[4X[28X [ [ 2, 7 ], [ 2, 9 ], [ 4, 7 ], [ 4, 9 ] ], [128X[104X119[4X[28X [ [ 2, 7 ], [ 2, 10 ], [ 5, 7 ], [ 5, 10 ] ], [128X[104X120[4X[28X [ [ 2, 7 ], [ 4, 7 ], [ 5, 7 ] ], [ [ 2, 10 ], [ 3, 10 ], [ 5, 10 ] ], [128X[104X121[4X[28X [ [ 3, 6 ], [ 3, 8 ], [ 5, 6 ], [ 5, 8 ] ], [ [ 3, 6 ], [ 4, 6 ], [ 5, 6 ] ][128X[104X122[4X[28X , [ [ 3, 8 ], [ 3, 10 ], [ 5, 8 ], [ 5, 10 ] ], [128X[104X123[4X[28X [ [ 4, 6 ], [ 4, 7 ], [ 4, 9 ] ], [ [ 4, 6 ], [ 4, 7 ], [ 5, 6 ], [ 5, 7 ] ][128X[104X124[4X[28X , [ [ 5, 6 ], [ 5, 7 ], [ 5, 8 ] ], [ [ 5, 7 ], [ 5, 8 ], [ 5, 10 ] ] ][128X[104X125[4X[28X gap> sl:=SCNSSlicing(c,[[1,3,5,7,9],[2,4,6,8,10]]); [128X[104X126[4X[28X [NormalSurface[128X[104X127[4X[28X [128X[104X128[4X[28X Properties known: ConnectedComponents, Dim, EulerCharacteristic, FVector, Fac\[128X[104X129[4X[28X etsEx, Genus, IsConnected, IsOrientable, NSTriangulation, Name, TopologicalTyp\[128X[104X130[4X[28X e, Vertices.[128X[104X131[4X[28X [128X[104X132[4X[28X Name="slicing [ [ 1, 3, 5, 7, 9 ], [ 2, 4, 6, 8, 10 ] ] of S^3 (VT)"[128X[104X133[4X[28X Dim=2[128X[104X134[4X[28X FVector=[ 25, 50, 0, 25 ][128X[104X135[4X[28X EulerCharacteristic=0[128X[104X136[4X[28X IsOrientable=true[128X[104X137[4X[28X TopologicalType="T^2"[128X[104X138[4X[28X [128X[104X139[4X[28X /NormalSurface][128X[104X140[4X[28X gap> sl.Facets; [128X[104X141[4X[28X [ [ [ 1, 2 ], [ 1, 4 ], [ 3, 2 ], [ 3, 4 ] ], [128X[104X142[4X[28X [ [ 1, 2 ], [ 1, 4 ], [ 9, 2 ], [ 9, 4 ] ], [128X[104X143[4X[28X [ [ 1, 2 ], [ 1, 10 ], [ 3, 2 ], [ 3, 10 ] ], [128X[104X144[4X[28X [ [ 1, 2 ], [ 1, 10 ], [ 9, 2 ], [ 9, 10 ] ], [128X[104X145[4X[28X [ [ 1, 4 ], [ 1, 6 ], [ 3, 4 ], [ 3, 6 ] ], [128X[104X146[4X[28X [ [ 1, 4 ], [ 1, 6 ], [ 9, 4 ], [ 9, 6 ] ], [128X[104X147[4X[28X [ [ 1, 6 ], [ 1, 8 ], [ 3, 6 ], [ 3, 8 ] ], [128X[104X148[4X[28X [ [ 1, 6 ], [ 1, 8 ], [ 9, 6 ], [ 9, 8 ] ], [128X[104X149[4X[28X [ [ 1, 8 ], [ 1, 10 ], [ 3, 8 ], [ 3, 10 ] ], [128X[104X150[4X[28X [ [ 1, 8 ], [ 1, 10 ], [ 9, 8 ], [ 9, 10 ] ], [128X[104X151[4X[28X [ [ 3, 2 ], [ 3, 4 ], [ 5, 2 ], [ 5, 4 ] ], [128X[104X152[4X[28X [ [ 3, 2 ], [ 3, 10 ], [ 5, 2 ], [ 5, 10 ] ], [128X[104X153[4X[28X [ [ 3, 4 ], [ 3, 6 ], [ 5, 4 ], [ 5, 6 ] ], [128X[104X154[4X[28X [ [ 3, 6 ], [ 3, 8 ], [ 5, 6 ], [ 5, 8 ] ], [128X[104X155[4X[28X [ [ 3, 8 ], [ 3, 10 ], [ 5, 8 ], [ 5, 10 ] ], [128X[104X156[4X[28X [ [ 5, 2 ], [ 5, 4 ], [ 7, 2 ], [ 7, 4 ] ], [128X[104X157[4X[28X [ [ 5, 2 ], [ 5, 10 ], [ 7, 2 ], [ 7, 10 ] ], [128X[104X158[4X[28X [ [ 5, 4 ], [ 5, 6 ], [ 7, 4 ], [ 7, 6 ] ], [128X[104X159[4X[28X [ [ 5, 6 ], [ 5, 8 ], [ 7, 6 ], [ 7, 8 ] ], [128X[104X160[4X[28X [ [ 5, 8 ], [ 5, 10 ], [ 7, 8 ], [ 7, 10 ] ], [128X[104X161[4X[28X [ [ 7, 2 ], [ 7, 4 ], [ 9, 2 ], [ 9, 4 ] ], [128X[104X162[4X[28X [ [ 7, 2 ], [ 7, 10 ], [ 9, 2 ], [ 9, 10 ] ], [128X[104X163[4X[28X [ [ 7, 4 ], [ 7, 6 ], [ 9, 4 ], [ 9, 6 ] ], [128X[104X164[4X[28X [ [ 7, 6 ], [ 7, 8 ], [ 9, 6 ], [ 9, 8 ] ], [128X[104X165[4X[28X [ [ 7, 8 ], [ 7, 10 ], [ 9, 8 ], [ 9, 10 ] ] ][128X[104X166[4X[28X [128X[104X167[4X[32X[104X168169170[1X7.2 [33X[0;0YGenerating new objects from discrete normal surfaces[133X[101X171172[33X[0;0Y[5Xsimpcomp[105X provides the possibility to copy and / or triangulate normal173surfaces. Note that other constructions like the connected sum or the174cartesian product do not make sense for (embedded) normal surfaces in175general.[133X176177[1X7.2-1 SCCopy[101X178179[29X[2XSCCopy[102X( [3Xcomplex[103X ) [32X method180[6XReturns:[106X [33X[0;10Ydiscrete normal surface of type [10XSCNormalSurface[110X upon success, [9Xfail[109X181otherwise.[133X182183[33X[0;0YCopies a [5XGAP[105X object of type [10XSCNormalSurface[110X (cf. [2XSCCopy[102X).[133X184185[4X[32X Example [32X[104X186[4X[28X gap> sl:=SCNSSlicing(SCBdSimplex(4),[[1],[2..5]]);[128X[104X187[4X[28X [NormalSurface[128X[104X188[4X[28X [128X[104X189[4X[28X Properties known: ConnectedComponents, Dim, EulerCharacteristic, FVector, Fac\[128X[104X190[4X[28X etsEx, Genus, IsConnected, IsOrientable, NSTriangulation, Name, TopologicalTyp\[128X[104X191[4X[28X e, Vertices.[128X[104X192[4X[28X [128X[104X193[4X[28X Name="slicing [ [ 1 ], [ 2, 3, 4, 5 ] ] of S^3_5"[128X[104X194[4X[28X Dim=2[128X[104X195[4X[28X FVector=[ 4, 6, 4 ][128X[104X196[4X[28X EulerCharacteristic=2[128X[104X197[4X[28X IsOrientable=true[128X[104X198[4X[28X TopologicalType="S^2"[128X[104X199[4X[28X [128X[104X200[4X[28X /NormalSurface][128X[104X201[4X[28X gap> sl_2:=SCCopy(sl); [128X[104X202[4X[28X [NormalSurface[128X[104X203[4X[28X [128X[104X204[4X[28X Properties known: ConnectedComponents, Dim, EulerCharacteristic, FVector, Fac\[128X[104X205[4X[28X etsEx, Genus, IsConnected, IsOrientable, NSTriangulation, Name, TopologicalTyp\[128X[104X206[4X[28X e, Vertices.[128X[104X207[4X[28X [128X[104X208[4X[28X Name="slicing [ [ 1 ], [ 2, 3, 4, 5 ] ] of S^3_5"[128X[104X209[4X[28X Dim=2[128X[104X210[4X[28X FVector=[ 4, 6, 4 ][128X[104X211[4X[28X EulerCharacteristic=2[128X[104X212[4X[28X IsOrientable=true[128X[104X213[4X[28X TopologicalType="S^2"[128X[104X214[4X[28X [128X[104X215[4X[28X /NormalSurface][128X[104X216[4X[28X gap> IsIdenticalObj(sl,sl_2); [128X[104X217[4X[28X false[128X[104X218[4X[28X [128X[104X219[4X[32X[104X220221[1X7.2-2 SCNSTriangulation[101X222223[29X[2XSCNSTriangulation[102X( [3Xsl[103X ) [32X method224[6XReturns:[106X [33X[0;10Ysimplicial complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X225otherwise.[133X226227[33X[0;0YComputes a simplicial subdivision of a slicing [3Xsl[103X without introducing new228vertices. The subdivision is stored as a property of [3Xsl[103X and thus is returned229as an immutable object. Note that symmetry may be lost during the230computation.[133X231232[4X[32X Example [32X[104X233[4X[28X gap> SCLib.SearchByAttribute("F=[ 10, 35, 50, 25 ]");[128X[104X234[4X[28X [ [ 19, "S^3 (VT)" ] ][128X[104X235[4X[28X gap> c:=SCLib.Load(last[1][1]);;[128X[104X236[4X[28X gap> sl:=SCNSSlicing(c,[[1,3,5,7,9],[2,4,6,8,10]]);;[128X[104X237[4X[28X gap> sl.F; [128X[104X238[4X[28X [ 25, 50, 0, 25 ][128X[104X239[4X[28X gap> sc:=SCNSTriangulation(sl);;[128X[104X240[4X[28X gap> sc.F;[128X[104X241[4X[28X [ 25, 75, 50 ][128X[104X242[4X[28X [128X[104X243[4X[32X[104X244245246[1X7.3 [33X[0;0YProperties of [10XSCNormalSurface[110X[101X[1X objects[133X[101X247248[33X[0;0YAlthough some properties of a discrete normal surface can be computed by249using the functions for simplicial complexes, there is a variety of250properties needing specially designed functions. See below for a list.[133X251252[1X7.3-1 SCConnectedComponents[101X253254[29X[2XSCConnectedComponents[102X( [3Xcomplex[103X ) [32X method255[6XReturns:[106X [33X[0;10Ya list of simplicial complexes of type [10XSCNormalSurface[110X upon256success, [9Xfail[109X otherwise.[133X257258[33X[0;0YComputes all connected components of an arbitrary normal surface.[133X259260[4X[32X Example [32X[104X261[4X[28X gap> sl:=SCNSSlicing(SCBdCrossPolytope(4),[[1,2],[3..8]]);[128X[104X262[4X[28X [NormalSurface[128X[104X263[4X[28X [128X[104X264[4X[28X Properties known: ConnectedComponents, Dim, EulerCharacteristic, FVector, Fac\[128X[104X265[4X[28X etsEx, IsConnected, IsOrientable, NSTriangulation, Name, TopologicalType, Vert\[128X[104X266[4X[28X ices.[128X[104X267[4X[28X [128X[104X268[4X[28X Name="slicing [ [ 1, 2 ], [ 3, 4, 5, 6, 7, 8 ] ] of Bd(\beta^4)"[128X[104X269[4X[28X Dim=2[128X[104X270[4X[28X FVector=[ 12, 24, 16 ][128X[104X271[4X[28X EulerCharacteristic=4[128X[104X272[4X[28X IsOrientable=true[128X[104X273[4X[28X TopologicalType="S^2 U S^2"[128X[104X274[4X[28X [128X[104X275[4X[28X /NormalSurface][128X[104X276[4X[28X gap> cc:=SCConnectedComponents(sl);[128X[104X277[4X[28X [ [NormalSurface[128X[104X278[4X[28X [128X[104X279[4X[28X Properties known: Dim, EulerCharacteristic, FVector, FacetsEx, Genus, IsC\[128X[104X280[4X[28X onnected, IsOrientable, NSTriangulation, Name, TopologicalType, Vertices.[128X[104X281[4X[28X [128X[104X282[4X[28X Name="unnamed complex 302_cc_#1"[128X[104X283[4X[28X Dim=2[128X[104X284[4X[28X FVector=[ 6, 12, 8 ][128X[104X285[4X[28X EulerCharacteristic=2[128X[104X286[4X[28X IsOrientable=true[128X[104X287[4X[28X TopologicalType="S^2"[128X[104X288[4X[28X [128X[104X289[4X[28X /NormalSurface], [NormalSurface[128X[104X290[4X[28X [128X[104X291[4X[28X Properties known: Dim, EulerCharacteristic, FVector, FacetsEx, Genus, IsC\[128X[104X292[4X[28X onnected, IsOrientable, NSTriangulation, Name, TopologicalType, Vertices.[128X[104X293[4X[28X [128X[104X294[4X[28X Name="unnamed complex 302_cc_#2"[128X[104X295[4X[28X Dim=2[128X[104X296[4X[28X FVector=[ 6, 12, 8 ][128X[104X297[4X[28X EulerCharacteristic=2[128X[104X298[4X[28X IsOrientable=true[128X[104X299[4X[28X TopologicalType="S^2"[128X[104X300[4X[28X [128X[104X301[4X[28X /NormalSurface] ][128X[104X302[4X[28X [128X[104X303[4X[32X[104X304305[1X7.3-2 SCDim[101X306307[29X[2XSCDim[102X( [3Xsl[103X ) [32X method308[6XReturns:[106X [33X[0;10Yan integer upon success, [9Xfail[109X otherwise.[133X309310[33X[0;0YComputes the dimension of a discrete normal surface (which is always [22X2[122X if311the slicing [3Xsl[103X is not empty).[133X312313[4X[32X Example [32X[104X314[4X[28X gap> sl:=SCNSEmpty();; [128X[104X315[4X[28X gap> SCDim(sl); [128X[104X316[4X[28X -1[128X[104X317[4X[28X gap> sl:=SCNSFromFacets([[1,2,3],[1,2,4,5],[1,3,4,6],[2,3,5,6],[4,5,6]]);;[128X[104X318[4X[28X gap> SCDim(sl); [128X[104X319[4X[28X 2[128X[104X320[4X[28X [128X[104X321[4X[32X[104X322323[1X7.3-3 SCEulerCharacteristic[101X324325[29X[2XSCEulerCharacteristic[102X( [3Xsl[103X ) [32X method326[6XReturns:[106X [33X[0;10Yan integer upon success, [9Xfail[109X otherwise.[133X327328[33X[0;0YComputes the Euler characteristic of a discrete normal surface [3Xsl[103X, cf.329[2XSCEulerCharacteristic[102X.[133X330331[4X[32X Example [32X[104X332[4X[28X gap> list:=SCLib.SearchByName("S^2xS^1");; [128X[104X333[4X[28X gap> c:=SCLib.Load(list[1][1]);; [128X[104X334[4X[28X gap> sl:=SCNSSlicing(c,[[1..5],[6..10]]);;[128X[104X335[4X[28X gap> SCEulerCharacteristic(sl); [128X[104X336[4X[28X 4[128X[104X337[4X[28X [128X[104X338[4X[32X[104X339340[1X7.3-4 SCFVector[101X341342[29X[2XSCFVector[102X( [3Xsl[103X ) [32X method343[6XReturns:[106X [33X[0;10Ya [22X1[122X, [22X3[122X or [22X4[122X tuple of (non-negative) integer values upon success,344[9Xfail[109X otherwise.[133X345346[33X[0;0YComputes the [22Xf[122X-vector of a discrete normal surface, i. e. the number of347vertices, edges, triangles and quadrilaterals of [3Xsl[103X, cf. [2XSCFVector[102X.[133X348349[4X[32X Example [32X[104X350[4X[28X gap> list:=SCLib.SearchByName("S^2xS^1");;[128X[104X351[4X[28X gap> c:=SCLib.Load(list[1][1]);; [128X[104X352[4X[28X gap> sl:=SCNSSlicing(c,[[1..5],[6..10]]);;[128X[104X353[4X[28X gap> SCFVector(sl); [128X[104X354[4X[28X [ 20, 40, 16, 8 ][128X[104X355[4X[28X [128X[104X356[4X[32X[104X357358[1X7.3-5 SCFaceLattice[101X359360[29X[2XSCFaceLattice[102X( [3Xcomplex[103X ) [32X method361[6XReturns:[106X [33X[0;10Ya list of facet lists upon success, [9Xfail[109X otherwise.[133X362363[33X[0;0YComputes the face lattice of a discrete normal surface [3Xsl[103X in the original364labeling. Triangles and quadrilaterals are stored separately (cf. [2XSCSkel[102X365([14X6.9-54[114X)).[133X366367[4X[32X Example [32X[104X368[4X[28X gap> c:=SCBdSimplex(4);; [128X[104X369[4X[28X gap> sl:=SCNSSlicing(c,[[1,2],[3..5]]);;[128X[104X370[4X[28X gap> SCFaceLattice(sl); [128X[104X371[4X[28X [ [ [ [ 1, 3 ] ], [ [ 1, 4 ] ], [ [ 1, 5 ] ], [ [ 2, 3 ] ], [ [ 2, 4 ] ], [128X[104X372[4X[28X [ [ 2, 5 ] ] ], [128X[104X373[4X[28X [ [ [ 1, 3 ], [ 1, 4 ] ], [ [ 1, 3 ], [ 1, 5 ] ], [ [ 1, 3 ], [ 2, 3 ] ], [128X[104X374[4X[28X [ [ 1, 4 ], [ 1, 5 ] ], [ [ 1, 4 ], [ 2, 4 ] ], [ [ 1, 5 ], [ 2, 5 ] ], [128X[104X375[4X[28X [ [ 2, 3 ], [ 2, 4 ] ], [ [ 2, 3 ], [ 2, 5 ] ], [ [ 2, 4 ], [ 2, 5 ] ] ][128X[104X376[4X[28X , [ [ [ 1, 3 ], [ 1, 4 ], [ 1, 5 ] ], [ [ 2, 3 ], [ 2, 4 ], [ 2, 5 ] ] ], [128X[104X377[4X[28X [ [ [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 4 ] ], [128X[104X378[4X[28X [ [ 1, 3 ], [ 1, 5 ], [ 2, 3 ], [ 2, 5 ] ], [128X[104X379[4X[28X [ [ 1, 4 ], [ 1, 5 ], [ 2, 4 ], [ 2, 5 ] ] ] ][128X[104X380[4X[28X gap> sl.F;[128X[104X381[4X[28X [ 6, 9, 2, 3 ][128X[104X382[4X[28X [128X[104X383[4X[32X[104X384385[1X7.3-6 SCFaceLatticeEx[101X386387[29X[2XSCFaceLatticeEx[102X( [3Xcomplex[103X ) [32X method388[6XReturns:[106X [33X[0;10Ya list of face lists upon success, [9Xfail[109X otherwise.[133X389390[33X[0;0YComputes the face lattice of a discrete normal surface [3Xsl[103X in the standard391labeling. Triangles and quadrilaterals are stored separately (cf. [2XSCSkelEx[102X392([14X6.9-55[114X)).[133X393394[4X[32X Example [32X[104X395[4X[28X gap> c:=SCBdSimplex(4);; [128X[104X396[4X[28X gap> sl:=SCNSSlicing(c,[[1,2],[3..5]]);;[128X[104X397[4X[28X gap> SCFaceLatticeEx(sl); [128X[104X398[4X[28X [ [ [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ], [ 6 ] ], [128X[104X399[4X[28X [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 5 ], [ 3, 6 ], [ 4, 5 ], [128X[104X400[4X[28X [ 4, 6 ], [ 5, 6 ] ], [ [ 1, 2, 3 ], [ 4, 5, 6 ] ], [128X[104X401[4X[28X [ [ 1, 2, 4, 5 ], [ 1, 3, 4, 6 ], [ 2, 3, 5, 6 ] ] ][128X[104X402[4X[28X gap> sl.F;[128X[104X403[4X[28X [ 6, 9, 2, 3 ][128X[104X404[4X[28X [128X[104X405[4X[32X[104X406407[1X7.3-7 SCFpBettiNumbers[101X408409[29X[2XSCFpBettiNumbers[102X( [3Xsl[103X, [3Xp[103X ) [32X method410[6XReturns:[106X [33X[0;10Ya list of non-negative integers upon success, [9Xfail[109X otherwise.[133X411412[33X[0;0YComputes the Betti numbers modulo [3Xp[103X of a slicing [3Xsl[103X. Internally, [3Xsl[103X is413triangulated (using [2XSCNSTriangulation[102X ([14X7.2-2[114X)) and the Betti numbers are414computed via [2XSCFpBettiNumbers[102X using the triangulation.[133X415416[4X[32X Example [32X[104X417[4X[28X gap> SCLib.SearchByName("(S^2xS^1)#20"); [128X[104X418[4X[28X [ [ 7617, "(S^2xS^1)#20" ] ][128X[104X419[4X[28X gap> c:=SCLib.Load(last[1][1]);;[128X[104X420[4X[28X gap> c.F;[128X[104X421[4X[28X [ 27, 298, 542, 271 ][128X[104X422[4X[28X gap> sl:=SCNSSlicing(c,[[1..13],[14..27]]);;[128X[104X423[4X[28X gap> SCFpBettiNumbers(sl,2);[128X[104X424[4X[28X [ 2, 14, 2 ][128X[104X425[4X[28X [128X[104X426[4X[32X[104X427428[1X7.3-8 SCGenus[101X429430[29X[2XSCGenus[102X( [3Xsl[103X ) [32X method431[6XReturns:[106X [33X[0;10Ya non-negative integer upon success, [9Xfail[109X otherwise.[133X432433[33X[0;0YComputes the genus of a discrete normal surface [3Xsl[103X.[133X434435[4X[32X Example [32X[104X436[4X[28X gap> SCLib.SearchByName("(S^2xS^1)#20");[128X[104X437[4X[28X [ [ 7617, "(S^2xS^1)#20" ] ][128X[104X438[4X[28X gap> c:=SCLib.Load(last[1][1]);; [128X[104X439[4X[28X gap> c.F; [128X[104X440[4X[28X [ 27, 298, 542, 271 ][128X[104X441[4X[28X gap> sl:=SCNSSlicing(c,[[1..12],[13..27]]);;[128X[104X442[4X[28X gap> SCIsConnected(sl);[128X[104X443[4X[28X true[128X[104X444[4X[28X gap> SCGenus(sl); [128X[104X445[4X[28X 7[128X[104X446[4X[28X [128X[104X447[4X[32X[104X448449[1X7.3-9 SCHomology[101X450451[29X[2XSCHomology[102X( [3Xsl[103X ) [32X method452[6XReturns:[106X [33X[0;10Ya list of homology groups upon success, [9Xfail[109X otherwise.[133X453454[33X[0;0YComputes the homology of a slicing [3Xsl[103X. Internally, [3Xsl[103X is triangulated (cf.455[2XSCNSTriangulation[102X ([14X7.2-2[114X)) and simplicial homology is computed via456[2XSCHomology[102X using the triangulation.[133X457458[4X[32X Example [32X[104X459[4X[28X gap> SCLib.SearchByName("(S^2xS^1)#20"); [128X[104X460[4X[28X [ [ 7617, "(S^2xS^1)#20" ] ][128X[104X461[4X[28X gap> c:=SCLib.Load(last[1][1]);;[128X[104X462[4X[28X gap> c.F;[128X[104X463[4X[28X [ 27, 298, 542, 271 ][128X[104X464[4X[28X gap> sl:=SCNSSlicing(c,[[1..12],[13..27]]);; [128X[104X465[4X[28X gap> sl.Homology;[128X[104X466[4X[28X [ [ 0, [ ] ], [ 14, [ ] ], [ 1, [ ] ] ][128X[104X467[4X[28X gap> sl:=SCNSSlicing(c,[[1..13],[14..27]]);;[128X[104X468[4X[28X gap> sl.Homology; [128X[104X469[4X[28X [ [ 1, [ ] ], [ 14, [ ] ], [ 2, [ ] ] ][128X[104X470[4X[28X [128X[104X471[4X[32X[104X472473[1X7.3-10 SCIsConnected[101X474475[29X[2XSCIsConnected[102X( [3Xcomplex[103X ) [32X method476[6XReturns:[106X [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X477478[33X[0;0YChecks if a normal surface [3Xcomplex[103X is connected.[133X479480[4X[32X Example [32X[104X481[4X[28X gap> list:=SCLib.SearchByAttribute("Dim=3 and F[1]=10");;[128X[104X482[4X[28X gap> c:=SCLib.Load(list[1][1]);[128X[104X483[4X[28X [SimplicialComplex[128X[104X484[4X[28X [128X[104X485[4X[28X Properties known: AltshulerSteinberg, AutomorphismGroup, [128X[104X486[4X[28X AutomorphismGroupSize, AutomorphismGroupStructure, [128X[104X487[4X[28X AutomorphismGroupTransitivity, ConnectedComponents, [128X[104X488[4X[28X Dim, DualGraph, EulerCharacteristic, FVector, [128X[104X489[4X[28X FacetsEx, GVector, GeneratorsEx, HVector, [128X[104X490[4X[28X HasBoundary, HasInterior, Homology, Interior, [128X[104X491[4X[28X IsCentrallySymmetric, IsConnected, [128X[104X492[4X[28X IsEulerianManifold, IsManifold, IsOrientable, [128X[104X493[4X[28X IsPseudoManifold, IsPure, IsStronglyConnected, [128X[104X494[4X[28X MinimalNonFacesEx, Name, Neighborliness, [128X[104X495[4X[28X NumFaces[], Orientation, Reference, SkelExs[], [128X[104X496[4X[28X Vertices.[128X[104X497[4X[28X [128X[104X498[4X[28X Name="S^3 (VT)"[128X[104X499[4X[28X Dim=3[128X[104X500[4X[28X AltshulerSteinberg=0[128X[104X501[4X[28X AutomorphismGroupSize=200[128X[104X502[4X[28X AutomorphismGroupStructure="(D10 x D10) : C2"[128X[104X503[4X[28X AutomorphismGroupTransitivity=1[128X[104X504[4X[28X EulerCharacteristic=0[128X[104X505[4X[28X FVector=[ 10, 35, 50, 25 ][128X[104X506[4X[28X GVector=[ 5, 5 ][128X[104X507[4X[28X HVector=[ 6, 11, 6, 1 ][128X[104X508[4X[28X HasBoundary=false[128X[104X509[4X[28X HasInterior=true[128X[104X510[4X[28X Homology=[ [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ][128X[104X511[4X[28X IsCentrallySymmetric=false[128X[104X512[4X[28X IsConnected=true[128X[104X513[4X[28X IsEulerianManifold=true[128X[104X514[4X[28X IsOrientable=true[128X[104X515[4X[28X IsPseudoManifold=true[128X[104X516[4X[28X IsPure=true[128X[104X517[4X[28X IsStronglyConnected=true[128X[104X518[4X[28X Neighborliness=1[128X[104X519[4X[28X [128X[104X520[4X[28X /SimplicialComplex][128X[104X521[4X[28X gap> sl:=SCNSSlicing(c,[[1..5],[6..10]]);[128X[104X522[4X[28X [NormalSurface[128X[104X523[4X[28X [128X[104X524[4X[28X Properties known: ConnectedComponents, Dim, EulerCharacteristic, FVector, Fac\[128X[104X525[4X[28X etsEx, Genus, IsConnected, IsOrientable, NSTriangulation, Name, TopologicalTyp\[128X[104X526[4X[28X e, Vertices.[128X[104X527[4X[28X [128X[104X528[4X[28X Name="slicing [ [ 1, 2, 3, 4, 5 ], [ 6, 7, 8, 9, 10 ] ] of S^3 (VT)"[128X[104X529[4X[28X Dim=2[128X[104X530[4X[28X FVector=[ 17, 36, 12, 9 ][128X[104X531[4X[28X EulerCharacteristic=2[128X[104X532[4X[28X IsOrientable=true[128X[104X533[4X[28X TopologicalType="S^2"[128X[104X534[4X[28X [128X[104X535[4X[28X /NormalSurface][128X[104X536[4X[28X gap> SCIsConnected(sl);[128X[104X537[4X[28X true[128X[104X538[4X[28X [128X[104X539[4X[32X[104X540541[1X7.3-11 SCIsEmpty[101X542543[29X[2XSCIsEmpty[102X( [3Xcomplex[103X ) [32X method544[6XReturns:[106X [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X545546[33X[0;0YChecks if a normal surface [3Xcomplex[103X is the empty complex, i. e. a547[10XSCNormalSurface[110X object with empty facet list.[133X548549[4X[32X Example [32X[104X550[4X[28X gap> sl:=SCNS([]);;[128X[104X551[4X[28X gap> SCIsEmpty(sl);[128X[104X552[4X[28X true[128X[104X553[4X[28X [128X[104X554[4X[32X[104X555556[1X7.3-12 SCIsOrientable[101X557558[29X[2XSCIsOrientable[102X( [3Xsl[103X ) [32X method559[6XReturns:[106X [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X560561[33X[0;0YChecks if a discrete normal surface [3Xsl[103X is orientable.[133X562563[4X[32X Example [32X[104X564[4X[28X gap> c:=SCBdSimplex(4);;[128X[104X565[4X[28X gap> sl:=SCNSSlicing(c,[[1,2],[3,4,5]]);[128X[104X566[4X[28X [NormalSurface[128X[104X567[4X[28X [128X[104X568[4X[28X Properties known: ConnectedComponents, Dim, EulerCharacteristic, FVector, Fac\[128X[104X569[4X[28X etsEx, Genus, IsConnected, IsOrientable, NSTriangulation, Name, TopologicalTyp\[128X[104X570[4X[28X e, Vertices.[128X[104X571[4X[28X [128X[104X572[4X[28X Name="slicing [ [ 1, 2 ], [ 3, 4, 5 ] ] of S^3_5"[128X[104X573[4X[28X Dim=2[128X[104X574[4X[28X FVector=[ 6, 9, 2, 3 ][128X[104X575[4X[28X EulerCharacteristic=2[128X[104X576[4X[28X IsOrientable=true[128X[104X577[4X[28X TopologicalType="S^2"[128X[104X578[4X[28X [128X[104X579[4X[28X /NormalSurface][128X[104X580[4X[28X gap> SCIsOrientable(sl);[128X[104X581[4X[28X true[128X[104X582[4X[28X [128X[104X583[4X[32X[104X584585[1X7.3-13 SCSkel[101X586587[29X[2XSCSkel[102X( [3Xsl[103X, [3Xk[103X ) [32X method588[6XReturns:[106X [33X[0;10Ya face list (of [3Xk+1[103Xtuples) or a list of face lists upon success,589[9Xfail[109X otherwise.[133X590591[33X[0;0YComputes all faces of cardinality [3Xk+1[103X in the original labeling: [3Xk[103X [22X= 0[122X592computes the vertices, [3Xk[103X [22X= 1[122X computes the edges, [3Xk[103X [22X= 2[122X computes the593triangles, [3Xk[103X [22X= 3[122X computes the quadrilaterals.[133X594595[33X[0;0YIf [3Xk[103X is a list (necessarily a sublist of [10X[ 0,1,2,3 ][110X) all faces of all596cardinalities contained in [3Xk[103X are computed.[133X597598[4X[32X Example [32X[104X599[4X[28X gap> c:=SCBdSimplex(4);; [128X[104X600[4X[28X gap> sl:=SCNSSlicing(c,[[1],[2..5]]);;[128X[104X601[4X[28X gap> SCSkel(sl,1); [128X[104X602[4X[28X [ [ [ 1, 2 ], [ 1, 3 ] ], [ [ 1, 2 ], [ 1, 4 ] ], [ [ 1, 2 ], [ 1, 5 ] ], [128X[104X603[4X[28X [ [ 1, 3 ], [ 1, 4 ] ], [ [ 1, 3 ], [ 1, 5 ] ], [ [ 1, 4 ], [ 1, 5 ] ] ][128X[104X604[4X[28X [128X[104X605[4X[32X[104X606607[4X[32X Example [32X[104X608[4X[28X gap> c:=SCBdSimplex(4);; [128X[104X609[4X[28X gap> sl:=SCNSSlicing(c,[[1],[2..5]]);;[128X[104X610[4X[28X gap> SCSkel(sl,3); [128X[104X611[4X[28X [ ][128X[104X612[4X[28X gap> sl:=SCNSSlicing(c,[[1,2],[3..5]]);;[128X[104X613[4X[28X gap> SCSkelEx(sl,3); [128X[104X614[4X[28X [ [ 1, 2, 4, 5 ], [ 1, 3, 4, 6 ], [ 2, 3, 5, 6 ] ][128X[104X615[4X[28X [128X[104X616[4X[32X[104X617618[1X7.3-14 SCSkelEx[101X619620[29X[2XSCSkelEx[102X( [3Xsl[103X, [3Xk[103X ) [32X method621[6XReturns:[106X [33X[0;10Ya face list (of [3Xk+1[103Xtuples) or a list of face lists upon success,622[9Xfail[109X otherwise.[133X623624[33X[0;0YComputes all faces of cardinality [3Xk+1[103X in the standard labeling: [3Xk[103X [22X= 0[122X625computes the vertices, [3Xk[103X [22X= 1[122X computes the edges, [3Xk[103X [22X= 2[122X computes the626triangles, [3Xk[103X [22X= 3[122X computes the quadrilaterals.[133X627628[33X[0;0YIf [3Xk[103X is a list (necessarily a sublist of [10X[ 0,1,2,3 ][110X) all faces of all629cardinalities contained in [3Xk[103X are computed.[133X630631[4X[32X Example [32X[104X632[4X[28X gap> c:=SCBdSimplex(4);; [128X[104X633[4X[28X gap> sl:=SCNSSlicing(c,[[1],[2..5]]);;[128X[104X634[4X[28X gap> SCSkelEx(sl,1); [128X[104X635[4X[28X [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 4 ], [ 3, 4 ] ][128X[104X636[4X[28X [128X[104X637[4X[32X[104X638639[4X[32X Example [32X[104X640[4X[28X gap> c:=SCBdSimplex(4);; [128X[104X641[4X[28X gap> sl:=SCNSSlicing(c,[[1],[2..5]]);;[128X[104X642[4X[28X gap> SCSkelEx(sl,3); [128X[104X643[4X[28X [ ][128X[104X644[4X[28X gap> sl:=SCNSSlicing(c,[[1,2],[3..5]]);;[128X[104X645[4X[28X gap> SCSkelEx(sl,3); [128X[104X646[4X[28X [ [ 1, 2, 4, 5 ], [ 1, 3, 4, 6 ], [ 2, 3, 5, 6 ] ][128X[104X647[4X[28X [128X[104X648[4X[32X[104X649650[1X7.3-15 SCTopologicalType[101X651652[29X[2XSCTopologicalType[102X( [3Xsl[103X ) [32X method653[6XReturns:[106X [33X[0;10Ya string upon success, [9Xfail[109X otherwise.[133X654655[33X[0;0YDetermines the topological type of [3Xsl[103X via the classification theorem for656closed compact surfaces. If [3Xsl[103X is not connected, the topological type of657each connected component is computed.[133X658659[4X[32X Example [32X[104X660[4X[28X gap> SCLib.SearchByName("(S^2xS^1)#20"); [128X[104X661[4X[28X [ [ 7617, "(S^2xS^1)#20" ] ][128X[104X662[4X[28X gap> c:=SCLib.Load(last[1][1]);;[128X[104X663[4X[28X gap> c.F;[128X[104X664[4X[28X [ 27, 298, 542, 271 ][128X[104X665[4X[28X gap> for i in [1..26] do sl:=SCNSSlicing(c,[[1..i],[i+1..27]]); Print(sl.TopologicalType,"\n"); od; [128X[104X666[4X[28X S^2[128X[104X667[4X[28X S^2[128X[104X668[4X[28X S^2[128X[104X669[4X[28X S^2[128X[104X670[4X[28X S^2 U S^2[128X[104X671[4X[28X S^2 U S^2[128X[104X672[4X[28X S^2[128X[104X673[4X[28X (T^2)#3[128X[104X674[4X[28X (T^2)#5[128X[104X675[4X[28X (T^2)#4[128X[104X676[4X[28X (T^2)#3[128X[104X677[4X[28X (T^2)#7[128X[104X678[4X[28X (T^2)#7 U S^2[128X[104X679[4X[28X (T^2)#7 U S^2[128X[104X680[4X[28X (T^2)#7 U S^2[128X[104X681[4X[28X (T^2)#8 U S^2[128X[104X682[4X[28X (T^2)#7 U S^2[128X[104X683[4X[28X (T^2)#8[128X[104X684[4X[28X (T^2)#6[128X[104X685[4X[28X (T^2)#6[128X[104X686[4X[28X (T^2)#5[128X[104X687[4X[28X (T^2)#3[128X[104X688[4X[28X (T^2)#2[128X[104X689[4X[28X T^2[128X[104X690[4X[28X S^2[128X[104X691[4X[28X S^2[128X[104X692[4X[28X [128X[104X693[4X[32X[104X694695[1X7.3-16 SCUnion[101X696697[29X[2XSCUnion[102X( [3Xcomplex1[103X, [3Xcomplex2[103X ) [32X method698[6XReturns:[106X [33X[0;10Ynormal surface of type [10XSCNormalSurface[110X upon success, [9Xfail[109X699otherwise.[133X700701[33X[0;0YForms the union of two normal surfaces [3Xcomplex1[103X and [3Xcomplex2[103X as the normal702surface formed by the union of their facet sets. The two arguments are not703altered. Note: for the union process the vertex labelings of the complexes704are taken into account, see also [2XOperation Union (SCNormalSurface,705SCNormalSurface)[102X ([14X5.6-1[114X). Facets occurring in both arguments are treated as706one facet in the new complex.[133X707708[4X[32X Example [32X[104X709[4X[28X gap> list:=SCLib.SearchByAttribute("Dim=3 and F[1]=10");;[128X[104X710[4X[28X gap> c:=SCLib.Load(list[1][1]);[128X[104X711[4X[28X [SimplicialComplex[128X[104X712[4X[28X [128X[104X713[4X[28X Properties known: AltshulerSteinberg, AutomorphismGroup, [128X[104X714[4X[28X AutomorphismGroupSize, AutomorphismGroupStructure, [128X[104X715[4X[28X AutomorphismGroupTransitivity, ConnectedComponents, [128X[104X716[4X[28X Dim, DualGraph, EulerCharacteristic, FVector, [128X[104X717[4X[28X FacetsEx, GVector, GeneratorsEx, HVector, [128X[104X718[4X[28X HasBoundary, HasInterior, Homology, Interior, [128X[104X719[4X[28X IsCentrallySymmetric, IsConnected, [128X[104X720[4X[28X IsEulerianManifold, IsManifold, IsOrientable, [128X[104X721[4X[28X IsPseudoManifold, IsPure, IsStronglyConnected, [128X[104X722[4X[28X MinimalNonFacesEx, Name, Neighborliness, [128X[104X723[4X[28X NumFaces[], Orientation, Reference, SkelExs[], [128X[104X724[4X[28X Vertices.[128X[104X725[4X[28X [128X[104X726[4X[28X Name="S^3 (VT)"[128X[104X727[4X[28X Dim=3[128X[104X728[4X[28X AltshulerSteinberg=0[128X[104X729[4X[28X AutomorphismGroupSize=200[128X[104X730[4X[28X AutomorphismGroupStructure="(D10 x D10) : C2"[128X[104X731[4X[28X AutomorphismGroupTransitivity=1[128X[104X732[4X[28X EulerCharacteristic=0[128X[104X733[4X[28X FVector=[ 10, 35, 50, 25 ][128X[104X734[4X[28X GVector=[ 5, 5 ][128X[104X735[4X[28X HVector=[ 6, 11, 6, 1 ][128X[104X736[4X[28X HasBoundary=false[128X[104X737[4X[28X HasInterior=true[128X[104X738[4X[28X Homology=[ [ 0, [ ] ], [ 0, [ ] ], [ 0, [ ] ], [ 1, [ ] ] ][128X[104X739[4X[28X IsCentrallySymmetric=false[128X[104X740[4X[28X IsConnected=true[128X[104X741[4X[28X IsEulerianManifold=true[128X[104X742[4X[28X IsOrientable=true[128X[104X743[4X[28X IsPseudoManifold=true[128X[104X744[4X[28X IsPure=true[128X[104X745[4X[28X IsStronglyConnected=true[128X[104X746[4X[28X Neighborliness=1[128X[104X747[4X[28X [128X[104X748[4X[28X /SimplicialComplex][128X[104X749[4X[28X gap> sl1:=SCNSSlicing(c,[[1..5],[6..10]]);;[128X[104X750[4X[28X gap> sl2:=sl1+10;;[128X[104X751[4X[28X gap> sl3:=SCUnion(sl1,sl2);;[128X[104X752[4X[28X gap> SCTopologicalType(sl3);[128X[104X753[4X[28X "S^2 U S^2"[128X[104X754[4X[28X [128X[104X755[4X[32X[104X756757758759