  
  [1X6 [33X[0;0YFunctions and operations for [10XSCSimplicialComplex[110X[101X[1X[133X[101X
  
  
  [1X6.1 [33X[0;0YCreating an [10XSCSimplicialComplex[110X[101X[1X object from a facet list[133X[101X
  
  [33X[0;0YThis  section  contains functions to generate or to construct new simplicial
  complexes.  Some  of  them  obtain  new  complexes  from existing ones, some
  generate new complexes from scratch.[133X
  
  [1X6.1-1 SCFromFacets[101X
  
  [33X[1;0Y[29X[2XSCFromFacets[102X( [3Xfacets[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YConstructs  a simplicial complex object from the given facet list. The facet
  list  [3Xfacets[103X  has  to  be  a  duplicate free list (or set) which consists of
  duplicate  free  entries,  which  are  in turn lists or sets. For the vertex
  labels  (i.  e. the entries of the list items of [3Xfacets[103X) an ordering via the
  less-operator  has  to  be defined. Following Section 4.11 of the [5XGAP[105X manual
  this  is  the  case  for objects of the following families: rationals [10XIsRat[110X,
  cyclotomics  [10XIsCyclotomic[110X, finite field elements [10XIsFFE[110X, permutations [10XIsPerm[110X,
  booleans [10XIsBool[110X, characters [10XIsChar[110X and lists (strings) [10XIsList[110X.[133X
  
  [33X[0;0YInternally the vertices are mapped to the standard labeling [22X1..n[122X, where [22Xn[122X is
  the  number of vertices of the complex and the vertex labels of the original
  complex  are  stored  in the property ''VertexLabels'', see [2XSCLabels[102X ([14X4.2-3[114X)
  and  the  [10XSCRelabel..[110X  functions like [2XSCRelabel[102X ([14X4.2-6[114X) or [2XSCRelabelStandard[102X
  ([14X4.2-7[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCFromFacets([[1,2,5], [1,4,5], [1,4,6], [2,3,5], [3,4,6], [3,5,6]]);[128X[104X
    [4X[28X <SimplicialComplex: unnamed complex 12 | dim = 2 | n = 6>[128X[104X
    [4X[28X gap> c:=SCFromFacets([["a","b","c"], ["a","b",1], ["a","c",1], ["b","c",1]]);[128X[104X
    [4X[28X <SimplicialComplex: unnamed complex 13 | dim = 2 | n = 4>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.1-2 SC[101X
  
  [33X[1;0Y[29X[2XSC[102X( [3Xfacets[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YA  shorter  function  to create a simplicial complex from a facet list, just
  calls [2XSCFromFacets[102X ([14X6.1-1[114X)([3Xfacets[103X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC(Combinations([1..6],5));[128X[104X
    [4X[28X <SimplicialComplex: unnamed complex 14 | dim = 4 | n = 6>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.1-3 SCFromDifferenceCycles[101X
  
  [33X[1;0Y[29X[2XSCFromDifferenceCycles[102X( [3Xdiffcycles[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YCreates  a  simplicial  complex  object  from  the list of difference cycles
  provided.  If [3Xdiffcycles[103X is of length [22X1[122X the computation is equivalent to the
  one  in  [2XSCDifferenceCycleExpand[102X ([14X6.6-8[114X). Otherwise the induced modulus (the
  sum  of all entries of a difference cycle) of all cycles has to be equal and
  the union of all expanded difference cycles is returned.[133X
  
  [33X[0;0YA [22Xn[122X-dimensional difference cycle [22XD = (d_1 : ... : d_n+1)[122X induces a simplex [22X∆
  =  (  v_1 , ... , v_n+1 )[122X by [22Xv_1 = d_1[122X, [22Xv_i = v_i-1 + d_i[122X and a cyclic group
  action  by [22XZ_σ[122X where [22Xσ = ∑ d_i[122X is the modulus of [22XD[122X. The function returns the
  [22XZ_σ[122X-orbit of [22X∆[122X.[133X
  
  [33X[0;0YNote  that modulo operations in [5XGAP[105X are often a little bit cumbersome, since
  all integer ranges usually start from [22X1[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCFromDifferenceCycles([[1,1,6],[2,3,3]]);;[128X[104X
    [4X[28X gap> c.F;[128X[104X
    [4X[28X [ 8, 24, 16 ][128X[104X
    [4X[28X gap> c.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 2, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X gap> c.Chi;[128X[104X
    [4X[28X 0[128X[104X
    [4X[28X gap> c.HasBoundary;[128X[104X
    [4X[28X false[128X[104X
    [4X[28X gap> SCIsPseudoManifold(c);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X gap> SCIsManifold(c);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.1-4 SCFromGenerators[101X
  
  [33X[1;0Y[29X[2XSCFromGenerators[102X( [3Xgroup[103X, [3Xgenerators[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YConstructs  a  simplicial complex object from the set of [3Xgenerators[103X on which
  the  group  [3Xgroup[103X  acts, i.e. a complex which has [3Xgroup[103X as a subgroup of the
  automorphism  group  and  a  facet  list  that  consists of the [3Xgroup[103X-orbits
  specified  by  the  list  of representatives passed in [3Xgenerators[103X. Note that
  [3Xgroup[103X  is  not  stored  as an attribute of the resulting complex as it might
  just be a subgroup of the actual automorphism group. Internally calls [10XOrbits[110X
  and [2XSCFromFacets[102X ([14X6.1-1[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> #group: AGL(1,7) of order 42[128X[104X
    [4X[28X gap> G:=Group([(2,6,5,7,3,4),(1,3,5,7,2,4,6)]);;[128X[104X
    [4X[28X gap> c:=SCFromGenerators(G,[[ 1, 2, 4 ]]);[128X[104X
    [4X[28X <SimplicialComplex: complex from generators under unknown group | dim = 2 | n \[128X[104X
    [4X[28X = 7>[128X[104X
    [4X[28X gap> SCLib.DetermineTopologicalType(c);[128X[104X
    [4X[28X <SimplicialComplex: complex from generators under unknown group | dim = 2 | n \[128X[104X
    [4X[28X = 7>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  
  [1X6.2 [33X[0;0YIsomorphism signatures[133X[101X
  
  [33X[0;0YThis  section  contains  functions  to  construct  simplicial complexes from
  isomorphism  signatures  and  to compress closed and strongly connected weak
  pseudomanifolds to strings.[133X
  
  [33X[0;0YThe   isomorphism   signature  of  a  closed  and  strongly  connected  weak
  pseudomanifold  is  a representation which is invariant under relabelings of
  the  underlying  complex  and thus unique for a combinatorial type, i.e. two
  complexes are isomorphic iff they have the same isomorphism signature.[133X
  
  [33X[0;0YTo compute the isomorphism signature of a closed and strongly connected weak
  pseudomanifold  [22XP[122X  we have to compute all canonical labelings of [22XP[122X and chose
  the one that is lexicographically minimal.[133X
  
  [33X[0;0YA  canonical  labeling  of  [22XP[122X  is  determined by chosing a facet [22X∆ ∈ P[122X and a
  numbering  [22X1,  2, ... , d+1[122X of the vertices of [22X∆[122X (which in turn determines a
  numbering  of  the co-dimension one faces of [22X∆[122X by identifying each face with
  its  opposite  vertex).  This  numbering  can then be uniquely extended to a
  numbering  (and  thus  a  labeling)  on  all  vertices  of  [22XP[122X  by  the  weak
  pseudomanifold  property: start at face [22X1[122X of [22X∆[122X and label the opposite vertex
  of  the  unique  other facet [22Xδ[122X meeting face [22X1[122X by [22Xd+2[122X, go on with face [22X2[122X of [22X∆[122X
  and  so  on. After finishing with the first facet we now have a numbering on
  [22Xδ[122X,  repeat  the procedure for [22Xδ[122X, etc. Whenever the opposite vertex of a face
  is  already  labeled  (and also, if the vertex occurs for the first time) we
  note  this  label. Whenever a facet is already visited we skip this step and
  keep  track  of  the  number  of  skippings between any two newly discovered
  facets.  This  results  in a sequence of [22Xm-1[122X vertex labels together with [22Xm-1[122X
  skipping  numbers (where [22Xm[122X denotes the number of facets in [22XP[122X) which then can
  by encoded by characters via a lookup table.[133X
  
  [33X[0;0YNote  that there are precisely [22X(d+1)! m[122X canonical labelings we have to check
  in  order  to  find  the  lexicographically minimal one. Thus, computing the
  isomorphism  signature  of a large or highly dimensional complex can be time
  consuming.  If  you are not interested in the isomorphism signature but just
  in  the  compressed string representation use [2XSCExportToString[102X ([14X6.2-1[114X) which
  just  computes  the  first  canonical  labeling  of  the complex provided as
  argument and returns the resulting string.[133X
  
  [33X[0;0YNote: Another way of storing and loading complexes is provided by simpcomp's
  library functionality, see Section [14X13.1[114X for details.[133X
  
  [1X6.2-1 SCExportToString[101X
  
  [33X[1;0Y[29X[2XSCExportToString[102X( [3Xc[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ystring upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes  one  string representation of a closed and strongly connected weak
  pseudomanifold.   Compare   [2XSCExportIsoSig[102X   ([14X6.2-2[114X),   which   returns  the
  lexicographically minimal string representation.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCSeriesBdHandleBody(3,9);;[128X[104X
    [4X[28X gap> s:=SCExportToString(c); time;[128X[104X
    [4X[28X "deffg.h.f.fahaiciai.i.hai.fbgeiagihbhceceba.g.gag"[128X[104X
    [4X[28X 3[128X[104X
    [4X[28X gap> s:=SCExportIsoSig(c); time;[128X[104X
    [4X[28X "deefgaf.hbi.gbh.eaiaeaicg.g.ibf.heg.iff.hggcfffgg"[128X[104X
    [4X[28X 11[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.2-2 SCExportIsoSig[101X
  
  [33X[1;0Y[29X[2XSCExportIsoSig[102X( [3Xc[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ystring upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes  the  isomorphism  signature  of  a closed, strongly connected weak
  pseudomanifold.  The  isomorphism signature is stored as an attribute of the
  complex.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCSeriesBdHandleBody(3,9);;[128X[104X
    [4X[28X gap> s:=SCExportIsoSig(c);[128X[104X
    [4X[28X "deefgaf.hbi.gbh.eaiaeaicg.g.ibf.heg.iff.hggcfffgg"[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.2-3 SCFromIsoSig[101X
  
  [33X[1;0Y[29X[2XSCFromIsoSig[102X( [3Xstr[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya SCSimplicialComplex object upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes a simplicial complex from its isomorphism signature. If a file with
  isomorphism signatures is provided a list of all complexes is returned.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> s:="deeee";;[128X[104X
    [4X[28X gap> c:=SCFromIsoSig(s);;[128X[104X
    [4X[28X gap> SCIsIsomorphic(c,SCBdSimplex(4));[128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> s:="deeee";;[128X[104X
    [4X[28X gap> PrintTo("tmp.txt",s,"\n");;[128X[104X
    [4X[28X gap> cc:=SCFromIsoSig("tmp.txt");[128X[104X
    [4X[28X [ <SimplicialComplex: unnamed complex 9 | dim = 3 | n = 5> ][128X[104X
    [4X[28X gap> cc[1].F;[128X[104X
    [4X[28X [ 5, 10, 10, 5 ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  
  [1X6.3 [33X[0;0YGenerating some standard triangulations[133X[101X
  
  [1X6.3-1 SCBdCyclicPolytope[101X
  
  [33X[1;0Y[29X[2XSCBdCyclicPolytope[102X( [3Xd[103X, [3Xn[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YGenerates  the  boundary  complex  of  the  [3Xd[103X-dimensional cyclic polytope (a
  combinatorial [22Xd-1[122X-sphere) on [3Xn[103X vertices, where [22Xn≥ d+2[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCBdCyclicPolytope(3,8); [128X[104X
    [4X[28X <SimplicialComplex: Bd(C_3(8)) | dim = 2 | n = 8>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.3-2 SCBdSimplex[101X
  
  [33X[1;0Y[29X[2XSCBdSimplex[102X( [3Xd[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YGenerates the boundary of the [22Xd[122X-simplex [22X∆^d[122X, a combinatorial [22Xd-1[122X-sphere.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCBdSimplex(5);[128X[104X
    [4X[28X <SimplicialComplex: S^4_6 | dim = 4 | n = 6>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.3-3 SCEmpty[101X
  
  [33X[1;0Y[29X[2XSCEmpty[102X(  ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YGenerates  an  empty  complex (of dimension [22X-1[122X), i. e. a [10XSCSimplicialComplex[110X
  object with empty facet list.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCEmpty();[128X[104X
    [4X[28X <SimplicialComplex: empty complex | dim = -1 | n = 0>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.3-4 SCSimplex[101X
  
  [33X[1;0Y[29X[2XSCSimplex[102X( [3Xd[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YGenerates the [3Xd[103X-simplex.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCSimplex(3);[128X[104X
    [4X[28X <SimplicialComplex: B^3_4 | dim = 3 | n = 4>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.3-5 SCSeriesTorus[101X
  
  [33X[1;0Y[29X[2XSCSeriesTorus[102X( [3Xd[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YGenerates the [22Xd[122X-torus described in [K\t86].[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> t4:=SCSeriesTorus(4);[128X[104X
    [4X[28X <SimplicialComplex: 4-torus T^4 | dim = 4 | n = 31>[128X[104X
    [4X[28X gap> t4.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 4, [  ] ], [ 6, [  ] ], [ 4, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.3-6 SCSurface[101X
  
  [33X[1;0Y[29X[2XSCSurface[102X( [3Xg[103X, [3Xorient[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YGenerates the surface of genus [3Xg[103X where the boolean argument [3Xorient[103X specifies
  whether  the  surface  is  orientable  or  not. The surfaces have transitive
  cyclic  group  actions  and  can  be  described  using the minimum amount of
  [22XO(operatornamelog  (g))[122X  memory. If [3Xorient[103X is [10Xtrue[110X and [3Xg[103X[22X≥ 50[122X or if [3Xorient[103X is
  [10Xfalse[110X and [3Xg[103X[22X≥ 100[122X only the difference cycles of the surface are returned[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCSurface(23,true); [128X[104X
    [4X[28X <SimplicialComplex: S_23^or | dim = 2 | n = 88>[128X[104X
    [4X[28X gap> c.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 46, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X gap> c.TopologicalType;[128X[104X
    [4X[28X "(T^2)^#23"[128X[104X
    [4X[28X gap> c:=SCSurface(23,false); [128X[104X
    [4X[28X <SimplicialComplex: S_23^non | dim = 2 | n = 21>[128X[104X
    [4X[28X gap> c.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 22, [ 2 ] ], [ 0, [  ] ] ][128X[104X
    [4X[28X gap> c.TopologicalType;[128X[104X
    [4X[28X "(RP^2)^#23"[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> dc:=SCSurface(345,true);[128X[104X
    [4X[28X [ [ 1, 1, 1374 ], [ 2, 343, 1031 ], [ 343, 345, 688 ] ][128X[104X
    [4X[28X gap> c:=SCFromDifferenceCycles(dc);[128X[104X
    [4X[28X <SimplicialComplex: complex from diffcycles [ [ 1, 1, 1374 ], [ 2, 343, 1031 ]\[128X[104X
    [4X[28X , [ 343, 345, 688 ] ] | dim = 2 | n = 1376>[128X[104X
    [4X[28X gap> c.Chi;[128X[104X
    [4X[28X -688[128X[104X
    [4X[28X gap> dc:=SCSurface(12345678910,true); time;[128X[104X
    [4X[28X [ [ 1, 1, 24691357816 ], [ 2, 4, 24691357812 ], [ 3, 3, 24691357812 ], [128X[104X
    [4X[28X   [ 4, 12345678907, 12345678907 ] ][128X[104X
    [4X[28X 0[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.3-7 SCFVectorBdCrossPolytope[101X
  
  [33X[1;0Y[29X[2XSCFVectorBdCrossPolytope[102X( [3Xd[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya list of integers of size [10Xd + 1[110X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes the [22Xf[122X-vector of the [22Xd[122X-dimensional cross polytope without generating
  the underlying complex.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XSCFVectorBdCrossPolytope(50);[127X[104X
    [4X[28X[ 100, 4900, 156800, 3684800, 67800320, 1017004800, 12785203200, [128X[104X
    [4X[28X  137440934400, 1282782054400, 10518812846080, 76500457062400, [128X[104X
    [4X[28X  497252970905600, 2907017368371200, 15365663232819200, 73755183517532160, [128X[104X
    [4X[28X  322678927889203200, 1290715711556812800, 4732624275708313600, [128X[104X
    [4X[28X  15941471244491161600, 49418560857922600960, 141195888165493145600, [128X[104X
    [4X[28X  372243705163572838400, 906332499528699084800, 2039248123939572940800, [128X[104X
    [4X[28X  4241636097794311716864, 8156992495758291763200, 14501319992459185356800, [128X[104X
    [4X[28X  23823597130468661657600, 36146147370366245273600, 50604606318512743383040, [128X[104X
    [4X[28X  65296266217435797913600, 77539316133205010022400, 84588344872587283660800, [128X[104X
    [4X[28X  84588344872587283660800, 77337915312079802204160, 64448262760066501836800, [128X[104X
    [4X[28X  48771658304915190579200, 33370081998099867238400, 20535435075753764454400, [128X[104X
    [4X[28X  11294489291664570449920, 5509506971543692902400, 2361217273518725529600, [128X[104X
    [4X[28X  878592473867432755200, 279552150776001331200, 74547240206933688320, [128X[104X
    [4X[28X  16205921784116019200, 2758454771764428800, 344806846470553600, [128X[104X
    [4X[28X  28147497671065600, 1125899906842624 ][128X[104X
  [4X[32X[104X
  
  [1X6.3-8 SCFVectorBdCyclicPolytope[101X
  
  [33X[1;0Y[29X[2XSCFVectorBdCyclicPolytope[102X( [3Xd[103X, [3Xn[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya list of integers of size [10Xd+1[110X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes the [22Xf[122X-vector of the [3Xd[103X-dimensional cyclic polytope on [3Xn[103X vertices, [22Xn≥
  d+2[122X, without generating the underlying complex.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XSCFVectorBdCyclicPolytope(25,198); [127X[104X
    [4X[28X[ 198, 19503, 1274196, 62117055, 2410141734, 77526225777, 2126433621312, [128X[104X
    [4X[28X  50768602708824, 1071781612741840, 20256672480820776, 346204947854027808, [128X[104X
    [4X[28X  5395027104058600008, 48354596155522298656, 262068846498922699590, [128X[104X
    [4X[28X  940938105142239825104, 2379003007642628680027, 4396097923113038784642, [128X[104X
    [4X[28X  6062663500381642763609, 6294919173643129209180, 4911378208855785427761, [128X[104X
    [4X[28X  2840750019404460890298, 1183225500922302444568, 335951678686835900832, [128X[104X
    [4X[28X  58265626173398052500, 4661250093871844200 ][128X[104X
  [4X[32X[104X
  
  [1X6.3-9 SCFVectorBdSimplex[101X
  
  [33X[1;0Y[29X[2XSCFVectorBdSimplex[102X( [3Xd[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya list of integers of size [10Xd + 1[110X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes  the  [22Xf[122X-vector  of  the [22Xd[122X-simplex without generating the underlying
  complex.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCFVectorBdSimplex(100);[128X[104X
    [4X[28X [ 101, 5050, 166650, 4082925, 79208745, 1267339920, 17199613200, [128X[104X
    [4X[28X   202095455100, 2088319702700, 19212541264840, 158940114100040, [128X[104X
    [4X[28X   1192050855750300, 8160963550905900, 51297485177122800, 297525414027312240, [128X[104X
    [4X[28X   1599199100396803290, 7995995501984016450, 37314645675925410100, [128X[104X
    [4X[28X   163006083742200475700, 668324943343021950370, 2577824781465941808570, [128X[104X
    [4X[28X   9373908296239788394800, 32197337191432316660400, 104641345872155029146300, [128X[104X
    [4X[28X   322295345286237489770604, 942094086221309585483304, [128X[104X
    [4X[28X   2616928017281415515231400, 6916166902815169575968700, [128X[104X
    [4X[28X   17409661513983013070541900, 41783187633559231369300560, [128X[104X
    [4X[28X   95696978128474368620010960, 209337139656037681356273975, [128X[104X
    [4X[28X   437704928371715151926754675, 875409856743430303853509350, [128X[104X
    [4X[28X   1675784582908852295948146470, 3072271735332895875904935195, [128X[104X
    [4X[28X   5397234129638871133346507775, 9090078534128625066688855200, [128X[104X
    [4X[28X   14683973016669317415420458400, 22760158175837441993901710520, [128X[104X
    [4X[28X   33862674359172779551902544920, 48375249084532542217003635600, [128X[104X
    [4X[28X   66375341767149302111702662800, 87494768693060443692698964600, [128X[104X
    [4X[28X   110826707011209895344085355160, 134919469404951176940625649760, [128X[104X
    [4X[28X   157884485473879036845412994400, 177620046158113916451089618700, [128X[104X
    [4X[28X   192119641762857909630770403900, 199804427433372226016001220056, [128X[104X
    [4X[28X   199804427433372226016001220056, 192119641762857909630770403900, [128X[104X
    [4X[28X   177620046158113916451089618700, 157884485473879036845412994400, [128X[104X
    [4X[28X   134919469404951176940625649760, 110826707011209895344085355160, [128X[104X
    [4X[28X   87494768693060443692698964600, 66375341767149302111702662800, [128X[104X
    [4X[28X   48375249084532542217003635600, 33862674359172779551902544920, [128X[104X
    [4X[28X   22760158175837441993901710520, 14683973016669317415420458400, [128X[104X
    [4X[28X   9090078534128625066688855200, 5397234129638871133346507775, [128X[104X
    [4X[28X   3072271735332895875904935195, 1675784582908852295948146470, [128X[104X
    [4X[28X   875409856743430303853509350, 437704928371715151926754675, [128X[104X
    [4X[28X   209337139656037681356273975, 95696978128474368620010960, [128X[104X
    [4X[28X   41783187633559231369300560, 17409661513983013070541900, [128X[104X
    [4X[28X   6916166902815169575968700, 2616928017281415515231400, [128X[104X
    [4X[28X   942094086221309585483304, 322295345286237489770604, [128X[104X
    [4X[28X   104641345872155029146300, 32197337191432316660400, 9373908296239788394800, [128X[104X
    [4X[28X   2577824781465941808570, 668324943343021950370, 163006083742200475700, [128X[104X
    [4X[28X   37314645675925410100, 7995995501984016450, 1599199100396803290, [128X[104X
    [4X[28X   297525414027312240, 51297485177122800, 8160963550905900, 1192050855750300, [128X[104X
    [4X[28X   158940114100040, 19212541264840, 2088319702700, 202095455100, 17199613200, [128X[104X
    [4X[28X   1267339920, 79208745, 4082925, 166650, 5050, 101 ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  
  [1X6.4 [33X[0;0YGenerating infinite series of transitive triangulations[133X[101X
  
  [1X6.4-1 SCSeriesAGL[101X
  
  [33X[1;0Y[29X[2XSCSeriesAGL[102X( [3Xp[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya  permutation  group  and  a  list  of  [22X5[122X-tuples of integers upon
            success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YFor  a given prime [3Xp[103X the automorphism group (AGL[22X(1,p)[122X) and the generators of
  all  members  of  the series of [22X2[122X-transitive combinatorial [22X4[122X-pseudomanifolds
  with  [3Xp[103X  vertices from [Spr11a], Section 5.2, is computed. The affine linear
  group AGL[22X(1,p)[122X is returned as the first argument. If no member of the series
  with [3Xp[103X vertices exists only the group is returned.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> gens:=SCSeriesAGL(17);[128X[104X
    [4X[28X [ AGL(1,17), [ [ 1, 2, 4, 8, 16 ] ] ][128X[104X
    [4X[28X gap> c:=SCFromGenerators(gens[1],gens[2]);;[128X[104X
    [4X[28X gap> SCIsManifold(SCLink(c,1));[128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> List([19..23],x->SCSeriesAGL(x));     [128X[104X
    [4X[28X #I  SCSeriesAGL: argument must be a prime > 13.[128X[104X
    [4X[28X #I  SCSeriesAGL: argument must be a prime > 13.[128X[104X
    [4X[28X #I  SCSeriesAGL: argument must be a prime > 13.[128X[104X
    [4X[28X [ [ AGL(1,19), [ [ 1, 2, 10, 12, 17 ] ] ], fail, fail, fail, [128X[104X
    [4X[28X   [ AGL(1,23), [ [ 1, 2, 7, 9, 19 ], [ 1, 2, 4, 8, 22 ] ] ] ][128X[104X
    [4X[28X gap> for i in [80000..80100] do if IsPrime(i) then Print(i,"\n"); fi; od;[128X[104X
    [4X[28X 80021[128X[104X
    [4X[28X 80039[128X[104X
    [4X[28X 80051[128X[104X
    [4X[28X 80071[128X[104X
    [4X[28X 80077[128X[104X
    [4X[28X gap> SCSeriesAGL(80021);                                                 [128X[104X
    [4X[28X AGL(1,80021)[128X[104X
    [4X[28X gap> SCSeriesAGL(80039);                                                 [128X[104X
    [4X[28X [ AGL(1,80039), [ [ 1, 2, 6496, 73546, 78018 ] ] ][128X[104X
    [4X[28X gap> SCSeriesAGL(80051);                                                 [128X[104X
    [4X[28X [ AGL(1,80051), [ [ 1, 2, 31498, 37522, 48556 ] ] ][128X[104X
    [4X[28X gap> SCSeriesAGL(80071);                                                 [128X[104X
    [4X[28X AGL(1,80071)[128X[104X
    [4X[28X gap> SCSeriesAGL(80077);                                                 [128X[104X
    [4X[28X [ AGL(1,80077), [ [ 1, 2, 4126, 39302, 40778 ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.4-2 SCSeriesBrehmKuehnelTorus[101X
  
  [33X[1;0Y[29X[2XSCSeriesBrehmKuehnelTorus[102X( [3Xn[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YGenerates  a  neighborly 3-torus with [3Xn[103X vertices if [3Xn[103X is odd and a centrally
  symmetric  3-torus  if  [3Xn[103X is even ([3Xn[103X[22X≥ 15[122X . The triangulations are taken from
  [BK12][133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> T3:=SCSeriesBrehmKuehnelTorus(15);[128X[104X
    [4X[28X <SimplicialComplex: Neighborly 3-Torus NT3(15) | dim = 3 | n = 15>[128X[104X
    [4X[28X gap> T3.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 3, [  ] ], [ 3, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X gap> T3.Neighborliness;[128X[104X
    [4X[28X 2[128X[104X
    [4X[28X gap> T3:=SCSeriesBrehmKuehnelTorus(16);[128X[104X
    [4X[28X <SimplicialComplex: Centrally symmetric 3-Torus SCT3(16) | dim = 3 | n = 16>[128X[104X
    [4X[28X gap> T3.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 3, [  ] ], [ 3, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X gap> T3.IsCentrallySymmetric;[128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.4-3 SCSeriesBdHandleBody[101X
  
  [33X[1;0Y[29X[2XSCSeriesBdHandleBody[102X( [3Xd[103X, [3Xn[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0Y[10XSCSeriesBdHandleBody(d,n)[110X generates a transitive [22Xd[122X-dimensional sphere bundle
  ([22Xd  ≥  2[122X)  with [22Xn[122X vertices ([22Xn ≥ 2d + 3[122X) which coincides with the boundary of
  [2XSCSeriesHandleBody[102X  ([14X6.4-9[114X)[10X(d,n)[110X.  The  sphere  bundle is orientable if [22Xd[122X is
  even  or  if  [22Xd[122X  is  odd  and  [22Xn[122X  is  even,  otherwise it is not orientable.
  Internally calls [2XSCFromDifferenceCycles[102X ([14X6.1-3[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCSeriesBdHandleBody(2,7);[128X[104X
    [4X[28X <SimplicialComplex: Sphere bundle S^1 x S^1 | dim = 2 | n = 7>[128X[104X
    [4X[28X gap> SCLib.DetermineTopologicalType(c);[128X[104X
    [4X[28X <SimplicialComplex: Sphere bundle S^1 x S^1 | dim = 2 | n = 7>[128X[104X
    [4X[28X gap> SCIsIsomorphic(c,SCSeriesHandleBody(3,7).Boundary);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.4-4 SCSeriesBid[101X
  
  [33X[1;0Y[29X[2XSCSeriesBid[102X( [3Xi[103X, [3Xd[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya simplicial complex upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YConstructs the complex [22XB(i,d)[122X as described in [KN12], cf. [Eff11a], [Spa99].
  The complex [22XB(i,d)[122X is a [22Xi[122X-Hamiltonian subcomplex of the [22Xd[122X-cross polytope and
  its  boundary  topologically  is  a  sphere product [22XS^i× S^d-i-2[122X with vertex
  transitive automorphism group.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> b26:=SCSeriesBid(2,6);[128X[104X
    [4X[28X <SimplicialComplex: B(2,6) | dim = 5 | n = 12>[128X[104X
    [4X[28X gap> s2s2:=SCBoundary(b26);[128X[104X
    [4X[28X <SimplicialComplex: Bd(B(2,6)) | dim = 4 | n = 12>[128X[104X
    [4X[28X gap> SCFVector(s2s2);[128X[104X
    [4X[28X [ 12, 60, 160, 180, 72 ][128X[104X
    [4X[28X gap> SCAutomorphismGroup(s2s2); [128X[104X
    [4X[28X Group([ (1,3)(4,6)(7,9)(10,12), (1,5)(2,10)(4,8)(6,12)(7,11), (1,10,7,4)[128X[104X
    [4X[28X   (2,3,8,9)(5,12,11,6) ])[128X[104X
    [4X[28X gap> SCIsManifold(s2s2); [128X[104X
    [4X[28X true[128X[104X
    [4X[28X gap> SCHomology(s2s2);[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 0, [  ] ], [ 2, [  ] ], [ 0, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.4-5 SCSeriesC2n[101X
  
  [33X[1;0Y[29X[2XSCSeriesC2n[102X( [3Xn[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YGenerates  the  combinatorial  [22X3[122X-manifold [22XC_2n[122X, [22Xn ≥ 8[122X, with [22X2n[122X vertices from
  [Spr11a],  Section 4.5.3 and Section 5.2. The complex is homeomorphic to [22XS^2
  ×  S^1[122X  for  [22Xn[122X  odd  and homeomorphic to [22XS^2 dtimes S^1[122X in case [22Xn[122X is an even
  number.  In  the  latter  case  [22XC_2n[122X  is isomorphic to [22XD_2n[122X from [2XSCSeriesD2n[102X
  ([14X6.4-8[114X). The complexes are believed to appear as the vertex links of some of
  the members of the series of [22X2[122X-transitive [22X4[122X-pseudomanifolds from [2XSCSeriesAGL[102X
  ([14X6.4-1[114X). Internally calls [2XSCFromDifferenceCycles[102X ([14X6.1-3[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCSeriesC2n(8);[128X[104X
    [4X[28X <SimplicialComplex: C_16 = { (1:1:3:11),(1:1:11:3),(1:3:1:11),(2:3:2:9),(2:5:2\[128X[104X
    [4X[28X :7) } | dim = 3 | n = 16>[128X[104X
    [4X[28X gap> SCGenerators(c);  [128X[104X
    [4X[28X [ [ [ 1, 2, 3, 6 ], 32 ], [ [ 1, 2, 5, 6 ], 16 ], [ [ 1, 3, 6, 8 ], 16 ], [128X[104X
    [4X[28X   [ [ 1, 3, 8, 10 ], 16 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCSeriesC2n(8);;[128X[104X
    [4X[28X gap> d:=SCSeriesD2n(8); [128X[104X
    [4X[28X <SimplicialComplex: D_16 = { (1:1:1:13),(1:2:11:2),(3:4:5:4),(2:3:4:7),(2:7:4:\[128X[104X
    [4X[28X 3) } | dim = 3 | n = 16>[128X[104X
    [4X[28X gap> SCIsIsomorphic(c,d);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X gap> c:=SCSeriesC2n(11);;[128X[104X
    [4X[28X gap> d:=SCSeriesD2n(11);;[128X[104X
    [4X[28X gap> c.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 1, [  ] ], [ 1, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X gap> d.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 1, [  ] ], [ 0, [ 2 ] ], [ 0, [  ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.4-6 SCSeriesConnectedSum[101X
  
  [33X[1;0Y[29X[2XSCSeriesConnectedSum[102X( [3Xk[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YGenerates  a  combinatorial  manifold of type [22X(S^2 x S^1)^#k[122X for [22Xk[122X even. The
  complex  is  a  combinatorial  [22X3[122X-manifold with transitive cyclic symmetry as
  described in [BS14].[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCSeriesConnectedSum(12);[128X[104X
    [4X[28X <SimplicialComplex: (S^2xS^1)^#12) | dim = 3 | n = 52>[128X[104X
    [4X[28X gap> c.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 12, [  ] ], [ 12, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X gap> g:=SimplifiedFpGroup(SCFundamentalGroup(c));[128X[104X
    [4X[28X <fp group of size infinity on the generators [128X[104X
    [4X[28X [ [2,3], [2,14], [3,4], [6,7], [9,10], [10,11], [11,12], [12,13], [26,32], [128X[104X
    [4X[28X   [26,34], [29,31], [33,35] ]>[128X[104X
    [4X[28X gap> RelatorsOfFpGroup(g);[128X[104X
    [4X[28X [  ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.4-7 SCSeriesCSTSurface[101X
  
  [33X[1;0Y[29X[2XSCSeriesCSTSurface[102X( [3Xl[103X[, [3Xj[103X], [3X2k[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0Y[10XSCSeriesCSTSurface(l,j,2k)[110X  generates  the  centrally  symmetric  transitive
  (cst) surface [22XS_(l,j,2k)[122X, [10XSCSeriesCSTSurface(l,2k)[110X generates the cst surface
  [22XS_(l,2k)[122X from [Spr12], Section 4.4.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCSeriesCSTSurface(2,4,14);[128X[104X
    [4X[28X <SimplicialComplex: cst surface S_{(2,4,14)} = { (2:4:8),(2:8:4) } | dim = 2 |\[128X[104X
    [4X[28X  n = 14>[128X[104X
    [4X[28X gap> last.Homology;[128X[104X
    [4X[28X [ [ 1, [  ] ], [ 4, [  ] ], [ 2, [  ] ] ][128X[104X
    [4X[28X gap> SCSeriesCSTSurface(2,10);  [128X[104X
    [4X[28X <SimplicialComplex: cst surface S_{(2,10)} = { (2:2:6),(3:3:4) } | dim = 2 | n\[128X[104X
    [4X[28X  = 10>[128X[104X
    [4X[28X gap> last.Homology;                    [128X[104X
    [4X[28X [ [ 0, [  ] ], [ 1, [ 2 ] ], [ 0, [  ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.4-8 SCSeriesD2n[101X
  
  [33X[1;0Y[29X[2XSCSeriesD2n[102X( [3Xn[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YGenerates  the combinatorial [22X3[122X-manifold [22XD_2n[122X, [22Xn ≥ 8[122X, [22Xn ≠ 9[122X, with [22X2n[122X vertices
  from [Spr11a], Section 4.5.3 and Section 5.2. The complex is homeomorphic to
  [22XS^2  dtimes  S^1[122X. In the case that [22Xn[122X is even [22XD_2n[122X is isomorphic to [22XC_2n[122X from
  [2XSCSeriesC2n[102X  ([14X6.4-5[114X).  The  complexes  are  believed to appear as the vertex
  links of some of the members of the series of [22X2[122X-transitive [22X4[122X-pseudomanifolds
  from [2XSCSeriesAGL[102X ([14X6.4-1[114X). Internally calls [2XSCFromDifferenceCycles[102X ([14X6.1-3[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> d:=SCSeriesD2n(15);[128X[104X
    [4X[28X <SimplicialComplex: D_30 = { (1:1:1:27),(1:2:25:2),(3:11:5:11),(2:3:11:14),(2:\[128X[104X
    [4X[28X 14:11:3) } | dim = 3 | n = 30>[128X[104X
    [4X[28X gap> SCAutomorphismGroup(d);  [128X[104X
    [4X[28X Group([ (1,3)(4,30)(5,29)(6,28)(7,27)(8,26)(9,25)(10,24)(11,23)(12,22)(13,21)[128X[104X
    [4X[28X   (14,20)(15,19)(16,18), (1,4)(2,3)(5,30)(6,29)(7,28)(8,27)(9,26)(10,25)[128X[104X
    [4X[28X   (11,24)(12,23)(13,22)(14,21)(15,20)(16,19)(17,18) ])[128X[104X
    [4X[28X gap> StructureDescription(last);[128X[104X
    [4X[28X "D60"[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCSeriesC2n(8);;[128X[104X
    [4X[28X gap> d:=SCSeriesD2n(8); [128X[104X
    [4X[28X <SimplicialComplex: D_16 = { (1:1:1:13),(1:2:11:2),(3:4:5:4),(2:3:4:7),(2:7:4:\[128X[104X
    [4X[28X 3) } | dim = 3 | n = 16>[128X[104X
    [4X[28X gap> SCIsIsomorphic(c,d);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X gap> c:=SCSeriesC2n(11);;[128X[104X
    [4X[28X gap> d:=SCSeriesD2n(11);;[128X[104X
    [4X[28X gap> c.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 1, [  ] ], [ 1, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X gap> d.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 1, [  ] ], [ 0, [ 2 ] ], [ 0, [  ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.4-9 SCSeriesHandleBody[101X
  
  [33X[1;0Y[29X[2XSCSeriesHandleBody[102X( [3Xd[103X, [3Xn[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0Y[10XSCSeriesHandleBody(d,n)[110X  generates a transitive [22Xd[122X-dimensional handle body ([22Xd
  ≥ 3[122X) with [22Xn[122X vertices ([22Xn ≥ 2d + 1[122X). The handle body is orientable if [22Xd[122X is odd
  or  if  [22Xd[122X and [22Xn[122X are even, otherwise it is not orientable. The complex equals
  the difference cycle [22X(1 : ... : 1 : n-d)[122X To obtain the boundary complexes of
  [10XSCSeriesHandleBody(d,n)[110X   use  the  function  [2XSCSeriesBdHandleBody[102X  ([14X6.4-3[114X).
  Internally calls [2XSCFromDifferenceCycles[102X ([14X6.1-3[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCSeriesHandleBody(3,7);[128X[104X
    [4X[28X <SimplicialComplex: Handle body B^2 x S^1 | dim = 3 | n = 7>[128X[104X
    [4X[28X gap> SCAutomorphismGroup(c);    [128X[104X
    [4X[28X Group([ (1,3)(4,7)(5,6), (1,4)(2,3)(5,7) ])[128X[104X
    [4X[28X gap> bd:=SCBoundary(c);;[128X[104X
    [4X[28X gap> SCAutomorphismGroup(bd);[128X[104X
    [4X[28X Group([ (1,2)(3,7)(4,6), (1,4,2)(3,5,6) ])[128X[104X
    [4X[28X gap> SCIsIsomorphic(bd,SCSeriesBdHandleBody(2,7));[128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.4-10 SCSeriesHomologySphere[101X
  
  [33X[1;0Y[29X[2XSCSeriesHomologySphere[102X( [3Xp[103X, [3Xq[103X, [3Xr[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YGenerates  a combinatorial Brieskorn homology sphere of type [22XΣ (p,q,r)[122X, [22Xp[122X, [22Xq[122X
  and  [22Xr[122X  pairwise  co-prime.  The  complex is a combinatorial [22X3[122X-manifold with
  transitive cyclic symmetry as described in [BS14].[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCSeriesHomologySphere(2,3,5);[128X[104X
    [4X[28X <SimplicialComplex: Homology sphere Sigma(2,3,5) | dim = 3 | n = 17>[128X[104X
    [4X[28X gap> c.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 0, [  ] ], [ 0, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X gap> c:=SCSeriesHomologySphere(3,4,13);[128X[104X
    [4X[28X <SimplicialComplex: Homology sphere Sigma(3,4,13) | dim = 3 | n = 37>[128X[104X
    [4X[28X gap> c.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 0, [  ] ], [ 0, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.4-11 SCSeriesK[101X
  
  [33X[1;0Y[29X[2XSCSeriesK[102X( [3Xi[103X, [3Xk[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YGenerates  the  [3Xk[103X-th  member  ([22Xk  ≥  0[122X) of the series [3XK^i[103X ([22X1 ≤ i ≤ 396[122X) from
  [Spr11a].  The  [22X396[122X  series  describe a complete classification of all dense
  series  (i.  e.  there is a member of the series for every integer, [22Xf_0 (K^i
  (k+1)  )  =  f_0  (K^i (k)) +1[122X) of cyclic [22X3[122X-manifolds with a fixed number of
  difference  cycles  and  at least one member with less than [22X23[122X vertices. See
  [2XSCSeriesL[102X ([14X6.4-13[114X) for a list of series of order [22X2[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> cc:=List([1..10],x->SCSeriesK(x,0));;                                                                                                                                                                                                  [128X[104X
    [4X[28X gap> Set(List(cc,x->x.F));                                                                                                                                                                                                                        [128X[104X
    [4X[28X [ [ 9, 36, 54, 27 ], [ 11, 55, 88, 44 ], [ 13, 65, 104, 52 ], [128X[104X
    [4X[28X   [ 13, 78, 130, 65 ], [ 15, 90, 150, 75 ], [ 15, 105, 180, 90 ] ][128X[104X
    [4X[28X gap> cc:=List([1..10],x->SCSeriesK(x,10));;[128X[104X
    [4X[28X gap> gap> cc:=List([1..10],x->SCSeriesK(x,10));;[128X[104X
    [4X[28X gap> Set(List(cc,x->x.Homology));[128X[104X
    [4X[28X [ [ [ 0, [  ] ], [ 1, [  ] ], [ 0, [ 2 ] ], [ 0, [  ] ] ] ][128X[104X
    [4X[28X gap> Set(List(cc,x->x.IsManifold));[128X[104X
    [4X[28X [ true ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.4-12 SCSeriesKu[101X
  
  [33X[1;0Y[29X[2XSCSeriesKu[102X( [3Xn[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YComputes  the symmetric orientable sphere bundle Ku[22X(n)[122X with [22X4n[122X vertices from
  [Spr11a],  Section  4.5.2.  The series is defined as a generalization of the
  slicings from [Spr11a], Section 3.3.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCSeriesKu(4);                                    [128X[104X
    [4X[28X <SimplicialComplex: Sl_16 = G{ [1,2,5,9],[1,2,9,10],[1,5,9,16] } | dim = 3 | n\[128X[104X
    [4X[28X  = 16>[128X[104X
    [4X[28X gap> SCSlicing(c,[[1,2,3,4,9,10,11,12],[5,6,7,8,13,14,15,16]]);[128X[104X
    [4X[28X <NormalSurface: slicing [ [ 1, 2, 3, 4, 9, 10, 11, 12 ], [ 5, 6, 7, 8, 13, 14,\[128X[104X
    [4X[28X  15, 16 ] ] of Sl_16 = G{ [1,2,5,9],[1,2,9,10],[1,5,9,16] } | dim = 2>[128X[104X
    [4X[28X gap> Mminus:=SCSpan(c,[1,2,3,4,9,10,11,12]);;                  [128X[104X
    [4X[28X gap> Mplus:=SCSpan(c,[5,6,7,8,13,14,15,16]);;                  [128X[104X
    [4X[28X gap> SCCollapseGreedy(Mminus).Facets;[128X[104X
    [4X[28X [ [ 3, 4 ], [ 3, 10 ], [ 4, 12 ], [ 9, 10 ], [ 9, 12 ] ][128X[104X
    [4X[28X gap> SCCollapseGreedy(Mplus).Facets; [128X[104X
    [4X[28X [ [ 5, 6 ], [ 5, 8 ], [ 6, 14 ], [ 7, 8 ], [ 7, 15 ], [ 14, 15 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.4-13 SCSeriesL[101X
  
  [33X[1;0Y[29X[2XSCSeriesL[102X( [3Xi[103X, [3Xk[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YGenerates  the  [3Xk[103X-th  member  ([22Xk  ≥  0[122X)  of  the series [3XL^i[103X, [22X1 ≤ i ≤ 18[122X from
  [Spr11a].  The [22X18[122X series describe a complete classification of all series of
  cyclic  [22X3[122X-manifolds  with a fixed number of difference cycles of order [22X2[122X (i.
  e.  there is a member of the series for every second integer, [22Xf_0 (L^i (k+1)
  )  =  f_0  (L^i  (k)) +2[122X) and at least one member with less than [22X15[122X vertices
  where  each  series does not appear as a sub series of one of the series [22XK^i[122X
  from [2XSCSeriesK[102X ([14X6.4-11[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> cc:=List([1..18],x->SCSeriesL(x,0));;[128X[104X
    [4X[28X gap> Set(List(cc,x->x.F));[128X[104X
    [4X[28X [ [ 10, 45, 70, 35 ], [ 12, 60, 96, 48 ], [ 12, 66, 108, 54 ], [128X[104X
    [4X[28X   [ 14, 77, 126, 63 ], [ 14, 84, 140, 70 ], [ 14, 91, 154, 77 ] ][128X[104X
    [4X[28X gap> cc:=List([1..18],x->SCSeriesL(x,10));; [128X[104X
    [4X[28X gap> Set(List(cc,x->x.IsManifold));[128X[104X
    [4X[28X [ true ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.4-14 SCSeriesLe[101X
  
  [33X[1;0Y[29X[2XSCSeriesLe[102X( [3Xk[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YGenerates  the  [3Xk[103X-th  member ([22Xk ≥ 7[122X) of the series [10XLe[110X from [Spr11a], Section
  4.5.1.  The  series can be constructed as the generalization of the boundary
  of a genus [22X1[122X handlebody decomposition of the manifold [10Xmanifold_3_14_1_5[110X from
  the classification in [Lut03].[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCSeriesLe(7);                     [128X[104X
    [4X[28X <SimplicialComplex: Le_14 = { (1:1:1:11),(1:2:4:7),(1:4:2:7),(2:1:4:7),(2:5:2:\[128X[104X
    [4X[28X 5),(2:4:2:6) } | dim = 3 | n = 14>[128X[104X
    [4X[28X gap> d:=SCLib.DetermineTopologicalType(c);;[128X[104X
    [4X[28X gap> SCReference(d);[128X[104X
    [4X[28X "manifold_3_14_1_5 in F.H.Lutz: 'The Manifold Page', http://www.math.tu-berlin\[128X[104X
    [4X[28X .de/diskregeom/stellar/,\r\nF.H.Lutz: 'Triangulated manifolds with few vertice\[128X[104X
    [4X[28X s and vertex-transitive group actions', Doctoral Thesis TU Berlin 1999, Shaker\[128X[104X
    [4X[28X -Verlag, Aachen 1999"[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.4-15 SCSeriesLensSpace[101X
  
  [33X[1;0Y[29X[2XSCSeriesLensSpace[102X( [3Xp[103X, [3Xq[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YGenerates  the  lens  space [22XL(p,q)[122X whenever [22Xp = (k+2)^2-1[122X and [22Xq = k+2[122X or [22Xp =
  2k+3[122X  and  [22Xq  =  1[122X  for  a  [22Xk  ≥  0[122X and [9Xfail[109X otherwise. All complexes have a
  transitive cyclic automorphism group.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> l154:=SCSeriesLensSpace(15,4);[128X[104X
    [4X[28X <SimplicialComplex: Lens space L(15,4) | dim = 3 | n = 22>[128X[104X
    [4X[28X gap> l154.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 0, [ 15 ] ], [ 0, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X gap> g:=SimplifiedFpGroup(SCFundamentalGroup(l154));[128X[104X
    [4X[28X <fp group on the generators [ [2,5] ]>[128X[104X
    [4X[28X gap> StructureDescription(g);[128X[104X
    [4X[28X "C15"[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> l151:=SCSeriesLensSpace(15,1);[128X[104X
    [4X[28X <SimplicialComplex: Lens space L(15,1) | dim = 3 | n = 62>[128X[104X
    [4X[28X gap> l151.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 0, [ 15 ] ], [ 0, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X gap> g:=SimplifiedFpGroup(SCFundamentalGroup(l151));[128X[104X
    [4X[28X <fp group on the generators [ [2,3] ]>[128X[104X
    [4X[28X gap> StructureDescription(g);[128X[104X
    [4X[28X "C15"[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.4-16 SCSeriesPrimeTorus[101X
  
  [33X[1;0Y[29X[2XSCSeriesPrimeTorus[102X( [3Xl[103X, [3Xj[103X, [3Xp[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YGenerates the well known triangulated torus [22X{ (l:j:p-l-j),(l:p-l-j:j) }[122X with
  [22Xp[122X vertices, [22X3p[122X edges and [22X2p[122X triangles where [22Xj[122X has to be greater than [22Xl[122X and [22Xp[122X
  must be any prime number greater than [22X6[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> l:=List([2..19],x->SCSeriesPrimeTorus(1,x,41));; [128X[104X
    [4X[28X gap> Set(List(l,x->SCHomology(x)));[128X[104X
    [4X[28X [ [ [ 0, [  ] ], [ 2, [  ] ], [ 1, [  ] ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.4-17 SCSeriesSeifertFibredSpace[101X
  
  [33X[1;0Y[29X[2XSCSeriesSeifertFibredSpace[102X( [3Xp[103X, [3Xq[103X, [3Xr[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YGenerates a combinatorial Seifert fibred space of type[133X
  
  
  [24X[33X[0;6YSFS [ (\mathbb{T}^2)^{(a-1)(b-1)} : (p/a,b_1)^b , (q/b,b_2)^a, (r/ab,b_3) ][133X
  
  [124X
  
  [33X[0;0Ywhere  [22Xp[122X  and [22Xq[122X are co-prime, [22Xa = operatornamegcd (p,r)[122X, [22Xb = operatornamegcd
  (p,r)[122X, and the [22Xb_i[122X are given by the identity[133X
  
  
  [24X[33X[0;6Y\frac{b_1}{p} + \frac{b_2}{q} + \frac{b_3}{r} = \frac{\pm ab}{pqr}.[133X
  
  [124X
  
  [33X[0;0YThis  [22X3[122X-parameter  family of combinatorial [22X3[122X-manifolds contains the families
  generated  by  [2XSCSeriesHomologySphere[102X ([14X6.4-10[114X), [2XSCSeriesConnectedSum[102X ([14X6.4-6[114X)
  and     parts    of    [2XSCSeriesLensSpace[102X    ([14X6.4-15[114X),    internally    calls
  [9XSCIntFunc.SeifertFibredSpace(p,q,r)[109X.   The   complexes   are   combinatorial
  [22X3[122X-manifolds with transitive cyclic symmetry as described in [BS14].[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCSeriesSeifertFibredSpace(2,3,15);[128X[104X
    [4X[28X <SimplicialComplex: SFS [ S^2 : (2,b1)^3, (5,b3) ] | dim = 3 | n = 27>[128X[104X
    [4X[28X gap> c.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 0, [ 2, 2 ] ], [ 0, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.4-18 SCSeriesS2xS2[101X
  
  [33X[1;0Y[29X[2XSCSeriesS2xS2[102X( [3Xk[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YGenerates a combinatorial version of [22X(S^2 × S^2)^# k[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCSeriesS2xS2(3);[128X[104X
    [4X[28X <SimplicialComplex: (S^2 x S^2)^(# 3) | dim = 4 | n = 24>[128X[104X
    [4X[28X gap> c.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 0, [  ] ], [ 6, [  ] ], [ 0, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  
  [1X6.5 [33X[0;0YA census of regular and chiral maps[133X[101X
  
  [1X6.5-1 SCChiralMap[101X
  
  [33X[1;0Y[29X[2XSCChiralMap[102X( [3Xm[103X, [3Xg[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya [9XSCSimplicialComplex[109X object upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YReturns  the  (hyperbolic)  chiral  map  of  vertex valence [3Xm[103X and genus [3Xg[103X if
  existent  and  [9Xfail[109X  otherwise.  The list was generated with the help of the
  classification  of  regular maps by Marston Conder [Con09]. Use [2XSCChiralMaps[102X
  ([14X6.5-2[114X) to get a list of all chiral maps available.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCChiralMaps();[128X[104X
    [4X[28X [ [ 7, 17 ], [ 8, 10 ], [ 8, 28 ], [ 8, 37 ], [ 8, 46 ], [ 8, 82 ], [128X[104X
    [4X[28X   [ 9, 43 ], [ 10, 73 ], [ 12, 22 ], [ 12, 33 ], [ 12, 40 ], [ 12, 51 ], [128X[104X
    [4X[28X   [ 12, 58 ], [ 12, 64 ], [ 12, 85 ], [ 12, 94 ], [ 12, 97 ], [ 18, 28 ] ][128X[104X
    [4X[28X gap> c:=SCChiralMap(8,10);[128X[104X
    [4X[28X <SimplicialComplex: Chiral map {8,10} | dim = 2 | n = 54>[128X[104X
    [4X[28X gap> c.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 20, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.5-2 SCChiralMaps[101X
  
  [33X[1;0Y[29X[2XSCChiralMaps[102X(  ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya list of lists upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YReturns  a  list  of  all  simplicial (hyperbolic) chiral maps of orientable
  genus  up to [22X100[122X. The list was generated with the help of the classification
  of  regular  maps  by Marston Conder [Con09]. Every chiral map is given by a
  [22X2[122X-tuple  [22X(m,g)[122X  where [22Xm[122X is the vertex valence and [22Xg[122X is the genus of the map.
  Use  the  [22X2[122X-tuples  of the list together with [2XSCChiralMap[102X ([14X6.5-1[114X) to get the
  corresponding triangulations.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> ll:=SCChiralMaps();[128X[104X
    [4X[28X [ [ 7, 17 ], [ 8, 10 ], [ 8, 28 ], [ 8, 37 ], [ 8, 46 ], [ 8, 82 ], [128X[104X
    [4X[28X   [ 9, 43 ], [ 10, 73 ], [ 12, 22 ], [ 12, 33 ], [ 12, 40 ], [ 12, 51 ], [128X[104X
    [4X[28X   [ 12, 58 ], [ 12, 64 ], [ 12, 85 ], [ 12, 94 ], [ 12, 97 ], [ 18, 28 ] ][128X[104X
    [4X[28X gap> c:=SCChiralMap(ll[18][1],ll[18][2]);[128X[104X
    [4X[28X <SimplicialComplex: Chiral map {18,28} | dim = 2 | n = 27>[128X[104X
    [4X[28X gap> SCHomology(c);[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 56, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.5-3 SCChiralTori[101X
  
  [33X[1;0Y[29X[2XSCChiralTori[102X( [3Xn[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya [9XSCSimplicialComplex[109X object upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YReturns  a  list  of chiral triangulations of the torus with [22Xn[122X vertices. See
  [BK08] for details.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> cc:=SCChiralTori(91);[128X[104X
    [4X[28X [ <SimplicialComplex: {3,6}_(9,1) | dim = 2 | n = 91>, [128X[104X
    [4X[28X   <SimplicialComplex: {3,6}_(6,5) | dim = 2 | n = 91> ][128X[104X
    [4X[28X gap> SCIsIsomorphic(cc[1],cc[2]);[128X[104X
    [4X[28X false[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.5-4 SCNrChiralTori[101X
  
  [33X[1;0Y[29X[2XSCNrChiralTori[102X( [3Xn[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Yan integer upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YReturns  the  number of simplicial chiral maps on the torus with [22Xn[122X vertices,
  cf. [BK08] for details.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCNrChiralTori(7);[128X[104X
    [4X[28X 1[128X[104X
    [4X[28X gap> SCNrChiralTori(343);[128X[104X
    [4X[28X 2[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.5-5 SCNrRegularTorus[101X
  
  [33X[1;0Y[29X[2XSCNrRegularTorus[102X( [3Xn[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Yan integer upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YReturns  the number of simplicial regular maps on the torus with [22Xn[122X vertices,
  cf. [BK08] for details.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCNrRegularTorus(9);[128X[104X
    [4X[28X 1[128X[104X
    [4X[28X gap> SCNrRegularTorus(10);[128X[104X
    [4X[28X 0[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.5-6 SCRegularMap[101X
  
  [33X[1;0Y[29X[2XSCRegularMap[102X( [3Xm[103X, [3Xg[103X, [3Xorient[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya [9XSCSimplicialComplex[109X object upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YReturns  the  (hyperbolic)  regular  map  of  vertex  valence [3Xm[103X, genus [3Xg[103X and
  orientability [3Xorient[103X if existent and [9Xfail[109X otherwise. The triangulations were
  generated  with  the  help  of the classification of regular maps by Marston
  Conder  [Con09]. Use [2XSCRegularMaps[102X ([14X6.5-7[114X) to get a list of all regular maps
  available.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCRegularMaps(){[1..10]};[128X[104X
    [4X[28X [ [ 7, 3, true ], [ 7, 7, true ], [ 7, 8, false ], [ 7, 14, true ], [128X[104X
    [4X[28X   [ 7, 15, false ], [ 7, 147, false ], [ 8, 3, true ], [ 8, 5, true ], [128X[104X
    [4X[28X   [ 8, 8, true ], [ 8, 9, false ] ][128X[104X
    [4X[28X gap> c:=SCRegularMap(7,7,true);[128X[104X
    [4X[28X <SimplicialComplex: Orientable regular map {7,7} | dim = 2 | n = 72>[128X[104X
    [4X[28X gap> g:=SCAutomorphismGroup(c);[128X[104X
    [4X[28X #I  group not listed[128X[104X
    [4X[28X C2 x PSL(2,8)[128X[104X
    [4X[28X gap> Size(g);[128X[104X
    [4X[28X 1008[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.5-7 SCRegularMaps[101X
  
  [33X[1;0Y[29X[2XSCRegularMaps[102X(  ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya list of lists upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YReturns  a  list  of  all simplicial (hyperbolic) regular maps of orientable
  genus  up  to  [22X100[122X or non-orientable genus up to [22X200[122X. The list was generated
  with  the  help  of  the  classification  of  regular maps by Marston Conder
  [Con09].  Every  regular  map  is given by a [22X3[122X-tuple [22X(m,g,or)[122X where [22Xm[122X is the
  vertex  valence,  [22Xg[122X  is  the genus and [22Xor[122X is a boolean stating if the map is
  orientable  or  not. Use the [22X3[122X-tuples of the list together with [2XSCRegularMap[102X
  ([14X6.5-6[114X) to get the corresponding triangulations. [22Xg[122X[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> ll:=SCRegularMaps(){[1..10]};[128X[104X
    [4X[28X [ [ 7, 3, true ], [ 7, 7, true ], [ 7, 8, false ], [ 7, 14, true ], [128X[104X
    [4X[28X   [ 7, 15, false ], [ 7, 147, false ], [ 8, 3, true ], [ 8, 5, true ], [128X[104X
    [4X[28X   [ 8, 8, true ], [ 8, 9, false ] ][128X[104X
    [4X[28X gap> c:=SCRegularMap(ll[5][1],ll[5][2],ll[5][3]);[128X[104X
    [4X[28X <SimplicialComplex: Non-orientable regular map {7,15} | dim = 2 | n = 78>[128X[104X
    [4X[28X gap> SCHomology(c);[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 14, [ 2 ] ], [ 0, [  ] ] ][128X[104X
    [4X[28X gap> SCGenerators(c);[128X[104X
    [4X[28X [ [ [ 1, 4, 7 ], 182 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.5-8 SCRegularTorus[101X
  
  [33X[1;0Y[29X[2XSCRegularTorus[102X( [3Xn[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya [9XSCSimplicialComplex[109X object upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YReturns  a  list of regular triangulations of the torus with [22Xn[122X vertices (the
  length of the list will be at most [22X1[122X). See [BK08] for details.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> cc:=SCRegularTorus(9);[128X[104X
    [4X[28X [ <SimplicialComplex: {3,6}_(3,0) | dim = 2 | n = 9> ][128X[104X
    [4X[28X gap> g:=SCAutomorphismGroup(cc[1]);[128X[104X
    [4X[28X Group([ (2,7)(3,4)(5,9), (1,4,2)(3,7,9)(5,8,6), (2,8,7,3,6,4)(5,9) ])[128X[104X
    [4X[28X gap> SCNumFaces(cc[1],0)*12 = Size(g);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.5-9 SCSeriesSymmetricTorus[101X
  
  [33X[1;0Y[29X[2XSCSeriesSymmetricTorus[102X( [3Xp[103X, [3Xq[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya [9XSCSimplicialComplex[109X object upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YReturns  the  equivarient  triangulation  of  the  torus  [22X{ 3,6 }_(p,q)[122X with
  fundamental  domain  [22X(p,q)[122X  on the [22X2[122X-dimensional integer lattice. See [BK08]
  for details.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCSeriesSymmetricTorus(2,1);[128X[104X
    [4X[28X <SimplicialComplex: {3,6}_(2,1) | dim = 2 | n = 7>[128X[104X
    [4X[28X gap> SCFVector(c);[128X[104X
    [4X[28X [ 7, 21, 14 ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [33X[0;0YSee  also [2XSCSurface[102X ([14X6.3-6[114X) for example triangulations of all compact closed
  surfaces with transitive cyclic automorphism group.[133X
  
  
  [1X6.6 [33X[0;0YGenerating new complexes from old[133X[101X
  
  [1X6.6-1 SCCartesianPower[101X
  
  [33X[1;0Y[29X[2XSCCartesianPower[102X( [3Xcomplex[103X, [3Xn[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YThe  new  complex  is  [22XPL[122X-homeomorphic  to  [22Xn[122X times the cartesian product of
  [3Xcomplex[103X,  of  dimensions  [22Xn  ⋅  d[122X and has [22Xf_d^n ⋅ n ⋅ frac2n-12^n-1}![122X facets
  where  [22Xd[122X  denotes  the  dimension  and  [22Xf_d[122X  denotes the number of facets of
  [3Xcomplex[103X.  Note  that  the complex returned by the function is not the [22Xn[122X-fold
  cartesian   product   [3Xcomplex[103X[22X^n[122X  of  [3Xcomplex[103X  (which,  in  general,  is  not
  simplicial) but a simplicial subdivision of [3Xcomplex[103X[22X^n[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCBdSimplex(2);;[128X[104X
    [4X[28X gap> 4torus:=SCCartesianPower(c,4);[128X[104X
    [4X[28X <SimplicialComplex: (S^1_3)^4 | dim = 4 | n = 81>[128X[104X
    [4X[28X gap> 4torus.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 4, [  ] ], [ 6, [  ] ], [ 4, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X gap> 4torus.Chi;[128X[104X
    [4X[28X 0[128X[104X
    [4X[28X gap> 4torus.F;[128X[104X
    [4X[28X [ 81, 1215, 4050, 4860, 1944 ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.6-2 SCCartesianProduct[101X
  
  [33X[1;0Y[29X[2XSCCartesianProduct[102X( [3Xcomplex1[103X, [3Xcomplex2[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YComputes  the  simplicial  cartesian  product of [3Xcomplex1[103X and [3Xcomplex2[103X where
  [3Xcomplex1[103X  and  [3Xcomplex2[103X  are pure, simplicial complexes. The original vertex
  labeling  of [3Xcomplex1[103X and [3Xcomplex2[103X is changed into the standard one. The new
  complex  has  vertex  labels  of  type  [22X[v_i,  v_j][122X where [22Xv_i[122X is a vertex of
  [3Xcomplex1[103X and [22Xv_j[122X is a vertex of [3Xcomplex2[103X.[133X
  
  [33X[0;0YIf  [22Xn_i[122X,  [22Xi=1,2[122X, are the number facets and [22Xd_i[122X, [22Xi=1,2[122X, are the dimensions of
  [3Xcomplexi[103X,  then  the  new complex has [22Xn_1 ⋅ n_2 ⋅ d_1+d_2 choose d_1[122X facets.
  The  number of vertices of the new complex equals the product of the numbers
  of vertices of the arguments.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c1:=SCBdSimplex(2);;[128X[104X
    [4X[28X gap> c2:=SCBdSimplex(3);;[128X[104X
    [4X[28X gap> c3:=SCCartesianProduct(c1,c2);[128X[104X
    [4X[28X <SimplicialComplex: S^1_3xS^2_4 | dim = 3 | n = 12>[128X[104X
    [4X[28X gap> c3.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 1, [  ] ], [ 1, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X gap> c3.F;[128X[104X
    [4X[28X [ 12, 48, 72, 36 ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.6-3 SCConnectedComponents[101X
  
  [33X[1;0Y[29X[2XSCConnectedComponents[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya  list  of  simplicial complexes of type [10XSCSimplicialComplex[110X upon
            success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes all connected components of an arbitrary simplicial complex.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[1,2,3],[3,4,5],[4,5,6,7,8]]);;[128X[104X
    [4X[28X gap> SCRename(c,"connected complex");;[128X[104X
    [4X[28X gap> SCConnectedComponents(c);[128X[104X
    [4X[28X [ <SimplicialComplex: Connected component #1 of connected complex | dim = 4 | \[128X[104X
    [4X[28X n = 8> ][128X[104X
    [4X[28X gap> c:=SC([[1,2,3],[4,5],[6,7,8]]);;[128X[104X
    [4X[28X gap> SCRename(c,"non-connected complex");;[128X[104X
    [4X[28X gap> SCConnectedComponents(c);[128X[104X
    [4X[28X [ <SimplicialComplex: Connected component #1 of non-connected complex | dim = \[128X[104X
    [4X[28X 2 | n = 3>, [128X[104X
    [4X[28X   <SimplicialComplex: Connected component #2 of non-connected complex | dim = \[128X[104X
    [4X[28X 1 | n = 2>, [128X[104X
    [4X[28X   <SimplicialComplex: Connected component #3 of non-connected complex | dim = \[128X[104X
    [4X[28X 2 | n = 3> ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.6-4 SCConnectedProduct[101X
  
  [33X[1;0Y[29X[2XSCConnectedProduct[102X( [3Xcomplex[103X, [3Xn[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YIf [22Xn ≥ 2[122X, the function internally calls [22X1 ×[122X [2XSCConnectedSum[102X ([14X6.6-5[114X) and [22X(n-2)
  ×[122X [2XSCConnectedSumMinus[102X ([14X6.6-6[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("T^2"){[1..6]};[128X[104X
    [4X[28X [ [ 4, "T^2 (VT)" ], [ 5, "T^2 (VT)" ], [ 9, "T^2 (VT)" ], [ 10, "T^2 (VT)" ],[128X[104X
    [4X[28X   [ 17, "T^2 (VT)" ], [ 20, "(T^2)#2" ] ][128X[104X
    [4X[28X gap> torus:=SCLib.Load(last[1][1]);;[128X[104X
    [4X[28X gap> genus10:=SCConnectedProduct(torus,10);[128X[104X
    [4X[28X <SimplicialComplex: T^2 (VT)#+-T^2 (VT)#+-T^2 (VT)#+-T^2 (VT)#+-T^2 (VT)#+-T^2\[128X[104X
    [4X[28X  (VT)#+-T^2 (VT)#+-T^2 (VT)#+-T^2 (VT)#+-T^2 (VT) | dim = 2 | n = 43>[128X[104X
    [4X[28X gap> genus10.Chi;[128X[104X
    [4X[28X -18[128X[104X
    [4X[28X gap> genus10.F;[128X[104X
    [4X[28X [ 43, 183, 122 ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.6-5 SCConnectedSum[101X
  
  [33X[1;0Y[29X[2XSCConnectedSum[102X( [3Xcomplex1[103X, [3Xcomplex2[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YIn a lexicographic ordering the smallest facet of both [3Xcomplex1[103X and [3Xcomplex2[103X
  is  removed  and  the  complexes  are  glued  together  along  the resulting
  boundaries.  The  bijection  used to identify the vertices of the boundaries
  differs   from   the   one   chosen  in  [2XSCConnectedSumMinus[102X  ([14X6.6-6[114X)  by  a
  transposition.  Thus,  the  topological  type of [10XSCConnectedSum[110X is different
  from  the  one of [2XSCConnectedSumMinus[102X ([14X6.6-6[114X) whenever [3Xcomplex1[103X and [3Xcomplex2[103X
  do not allow an orientation reversing homeomorphism.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("T^2"){[1..6]};[128X[104X
    [4X[28X [ [ 4, "T^2 (VT)" ], [ 5, "T^2 (VT)" ], [ 9, "T^2 (VT)" ], [ 10, "T^2 (VT)" ],[128X[104X
    [4X[28X   [ 17, "T^2 (VT)" ], [ 20, "(T^2)#2" ] ][128X[104X
    [4X[28X gap> torus:=SCLib.Load(last[1][1]);;[128X[104X
    [4X[28X gap> genus2:=SCConnectedSum(torus,torus);[128X[104X
    [4X[28X <SimplicialComplex: T^2 (VT)#+-T^2 (VT) | dim = 2 | n = 11>[128X[104X
    [4X[28X gap> genus2.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 4, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X gap> genus2.Chi;[128X[104X
    [4X[28X -2[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("CP^2");[128X[104X
    [4X[28X [ [ 16, "CP^2 (VT)" ], [ 96, "CP^2#-CP^2" ], [ 97, "CP^2#CP^2" ], [128X[104X
    [4X[28X   [ 185, "CP^2#(S^2xS^2)" ], [ 397, "Gaifullin CP^2" ], [128X[104X
    [4X[28X   [ 457, "(S^3~S^1)#(CP^2)^{#5} (VT)" ] ][128X[104X
    [4X[28X gap> cp2:=SCLib.Load(last[1][1]);;[128X[104X
    [4X[28X gap> c1:=SCConnectedSum(cp2,cp2);;[128X[104X
    [4X[28X gap> c2:=SCConnectedSumMinus(cp2,cp2);;[128X[104X
    [4X[28X gap> c1.F=c2.F;[128X[104X
    [4X[28X true[128X[104X
    [4X[28X gap> c1.ASDet=c2.ASDet;[128X[104X
    [4X[28X true[128X[104X
    [4X[28X gap> SCIsIsomorphic(c1,c2);[128X[104X
    [4X[28X false[128X[104X
    [4X[28X gap> PrintArray(SCIntersectionForm(c1));[128X[104X
    [4X[28X [ [  1,  0 ],[128X[104X
    [4X[28X   [  0,  1 ] ][128X[104X
    [4X[28X gap> PrintArray(SCIntersectionForm(c2));[128X[104X
    [4X[28X [ [   1,   0 ],[128X[104X
    [4X[28X   [   0,  -1 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.6-6 SCConnectedSumMinus[101X
  
  [33X[1;0Y[29X[2XSCConnectedSumMinus[102X( [3Xcomplex1[103X, [3Xcomplex2[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YIn a lexicographic ordering the smallest facet of both [3Xcomplex1[103X and [3Xcomplex2[103X
  is  removed  and  the  complexes  are  glued  together  along  the resulting
  boundaries.  The  bijection  used to identify the vertices of the boundaries
  differs  from  the  one chosen in [2XSCConnectedSum[102X ([14X6.6-5[114X) by a transposition.
  Thus,  the topological type of [10XSCConnectedSumMinus[110X is different from the one
  of  [2XSCConnectedSum[102X  ([14X6.6-5[114X)  whenever  [3Xcomplex1[103X and [3Xcomplex2[103X do not allow an
  orientation reversing homeomorphism.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("T^2"){[1..6]};[128X[104X
    [4X[28X [ [ 4, "T^2 (VT)" ], [ 5, "T^2 (VT)" ], [ 9, "T^2 (VT)" ], [ 10, "T^2 (VT)" ],[128X[104X
    [4X[28X   [ 17, "T^2 (VT)" ], [ 20, "(T^2)#2" ] ][128X[104X
    [4X[28X gap> torus:=SCLib.Load(last[1][1]);;[128X[104X
    [4X[28X gap> genus2:=SCConnectedSumMinus(torus,torus);[128X[104X
    [4X[28X <SimplicialComplex: T^2 (VT)#+-T^2 (VT) | dim = 2 | n = 11>[128X[104X
    [4X[28X gap> genus2.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 4, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X gap> genus2.Chi;[128X[104X
    [4X[28X -2[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("CP^2");[128X[104X
    [4X[28X [ [ 16, "CP^2 (VT)" ], [ 96, "CP^2#-CP^2" ], [ 97, "CP^2#CP^2" ], [128X[104X
    [4X[28X   [ 185, "CP^2#(S^2xS^2)" ], [ 397, "Gaifullin CP^2" ], [128X[104X
    [4X[28X   [ 457, "(S^3~S^1)#(CP^2)^{#5} (VT)" ] ][128X[104X
    [4X[28X gap> cp2:=SCLib.Load(last[1][1]);;[128X[104X
    [4X[28X gap> c1:=SCConnectedSum(cp2,cp2);;[128X[104X
    [4X[28X gap> c2:=SCConnectedSumMinus(cp2,cp2);;[128X[104X
    [4X[28X gap> c1.F=c2.F;[128X[104X
    [4X[28X true[128X[104X
    [4X[28X gap> c1.ASDet=c2.ASDet;[128X[104X
    [4X[28X true[128X[104X
    [4X[28X gap> SCIsIsomorphic(c1,c2);[128X[104X
    [4X[28X false[128X[104X
    [4X[28X gap> PrintArray(SCIntersectionForm(c1));[128X[104X
    [4X[28X [ [  1,  0 ],[128X[104X
    [4X[28X   [  0,  1 ] ][128X[104X
    [4X[28X gap> PrintArray(SCIntersectionForm(c2));[128X[104X
    [4X[28X [ [   1,   0 ],[128X[104X
    [4X[28X   [   0,  -1 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.6-7 SCDifferenceCycleCompress[101X
  
  [33X[1;0Y[29X[2XSCDifferenceCycleCompress[102X( [3Xsimplex[103X, [3Xmodulus[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ylist with possibly duplicate entries upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YA  difference  cycle  is  returned, i. e. a list of integer values of length
  [22X(d+1)[122X, if [22Xd[122X is the dimension of [3Xsimplex[103X, and a sum equal to [3Xmodulus[103X. In some
  sense this is the inverse operation of [2XSCDifferenceCycleExpand[102X ([14X6.6-8[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> sphere:=SCBdSimplex(4);;[128X[104X
    [4X[28X gap> gens:=SCGenerators(sphere);[128X[104X
    [4X[28X [ [ [ 1, 2, 3, 4 ], [ 5 ] ] ][128X[104X
    [4X[28X gap> diffcycle:=SCDifferenceCycleCompress(gens[1][1],5);[128X[104X
    [4X[28X [ 1, 1, 1, 2 ][128X[104X
    [4X[28X gap> c:=SCDifferenceCycleExpand([1,1,1,2]);;[128X[104X
    [4X[28X gap> c.Facets;[128X[104X
    [4X[28X [ [ 1, 2, 3, 4 ], [ 1, 2, 3, 5 ], [ 1, 2, 4, 5 ], [ 1, 3, 4, 5 ], [128X[104X
    [4X[28X   [ 2, 3, 4, 5 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.6-8 SCDifferenceCycleExpand[101X
  
  [33X[1;0Y[29X[2XSCDifferenceCycleExpand[102X( [3Xdiffcycle[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0Y[3Xdiffcycle[103X  induces a simplex [22X∆ = ( v_1 , ... , v_n+1 )[122X by [22Xv_1 =[122X[3Xdiffcycle[1][103X,
  [22Xv_i  =  v_i-1  +[122X  [3Xdiffcycle[i][103X  and a cyclic group action by [22XZ_σ[122X where [22Xσ = ∑[122X
  [3Xdiffcycle[i][103X is the modulus of [10Xdiffcycle[110X. The function returns the [22XZ_σ[122X-orbit
  of [22X∆[122X.[133X
  
  [33X[0;0YNote  that modulo operations in [5XGAP[105X are often a little bit cumbersome, since
  all integer ranges usually start from [22X1[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCDifferenceCycleExpand([1,1,2]);;[128X[104X
    [4X[28X gap> c.Facets;[128X[104X
    [4X[28X [ [ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 3, 4 ], [ 2, 3, 4 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.6-9 SCStronglyConnectedComponents[101X
  
  [33X[1;0Y[29X[2XSCStronglyConnectedComponents[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya  list  of  simplicial complexes of type [10XSCSimplicialComplex[110X upon
            success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes all strongly connected components of a pure simplicial complex.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[1,2,3],[2,3,4],[4,5,6],[5,6,7]]);;[128X[104X
    [4X[28X gap> comps:=SCStronglyConnectedComponents(c);[128X[104X
    [4X[28X [ <SimplicialComplex: Strongly connected component #1 of unnamed complex 85 | \[128X[104X
    [4X[28X dim = 2 | n = 4>, [128X[104X
    [4X[28X   <SimplicialComplex: Strongly connected component #2 of unnamed complex 85 | \[128X[104X
    [4X[28X dim = 2 | n = 4> ][128X[104X
    [4X[28X gap> comps[1].Facets;[128X[104X
    [4X[28X [ [ 1, 2, 3 ], [ 2, 3, 4 ] ][128X[104X
    [4X[28X gap> comps[2].Facets;[128X[104X
    [4X[28X [ [ 4, 5, 6 ], [ 5, 6, 7 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  
  [1X6.7 [33X[0;0YSimplicial complexes from transitive permutation groups[133X[101X
  
  [33X[0;0YBeginning  from  Version  1.3.0, [5Xsimpcomp[105X is able to generate triangulations
  from  a prescribed transitive group action on its set of vertices. Note that
  the  corresponding  group  is a subgroup of the full automorphism group, but
  not  necessarily  the full automorphism group of the triangulations obtained
  in  this  way. The methods and algorithms are based on the works of Frank H.
  Lutz [Lut03], [Lut] and in particular his program [10XMANIFOLD_VT[110X.[133X
  
  [1X6.7-1 SCsFromGroupExt[101X
  
  [33X[1;0Y[29X[2XSCsFromGroupExt[102X( [3XG[103X, [3Xn[103X, [3Xd[103X, [3XobjectType[103X, [3Xcache[103X, [3XremoveDoubleEntries[103X, [3Xoutfile[103X, [3XmaxLinkSize[103X, [3Xsubset[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya  list  of  simplicial complexes of type [10XSCSimplicialComplex[110X upon
            success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes  all  combinatorial [3Xd[103X-pseudomanifolds, [22Xd=2[122X / all strongly connected
  combinatorial  [3Xd[103X-pseudomanifolds,  [22Xd  ≥ 3[122X, as a union of orbits of the group
  action  of  [3XG[103X  on  [10X(d+1)[110X-tuples  on  the set of [3Xn[103X vertices, see [Lut03]. The
  integer  argument  [3XobjectType[103X  specifies,  whether  complexes  exceeding the
  maximal  size of each vertex link for combinatorial manifolds are sorted out
  ([10XobjectType  =  0[110X)  or  not ([10XobjectType = 1[110X, in this case some combinatorial
  pseudomanifolds won't be found, but no combinatorial manifold will be sorted
  out).  The integer argument [3Xcache[103X specifies if the orbits are held in memory
  during  the  computation,  a value of [10X0[110X means that the orbits are discarded,
  trading  speed for memory, any other value means that they are kept, trading
  memory for speed. The boolean argument [3XremoveDoubleEntries[103X specifies whether
  the results are checked for combinatorial isomorphism, preventing isomorphic
  entries.  The  argument  [3Xoutfile[103X  specifies  an  output  file containing all
  complexes found by the algorithm, if [3Xoutfile[103X is anything else than a string,
  not  output file is generated. The argument [3XmaxLinkSize[103X determines a maximal
  link  size  of  any  output  complex.  If [3XmaxLinkSize[103X[22X=0[122X or if [3XmaxLinkSize[103X is
  anything  else  than an integer the argument is ignored. The argument [3Xsubset[103X
  specifies a set of orbits (given by a list of indices of [10XrepHigh[110X) which have
  to  be  contained  in  any output complex. If [3Xsubset[103X is anything else than a
  subset of [10XmatrixAllowedRows[110X the argument is ignored.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> G:=PrimitiveGroup(8,5);[128X[104X
    [4X[28X PGL(2, 7)[128X[104X
    [4X[28X gap> Size(G);[128X[104X
    [4X[28X 336[128X[104X
    [4X[28X gap> Transitivity(G);[128X[104X
    [4X[28X 3[128X[104X
    [4X[28X gap> list:=SCsFromGroupExt(G,8,3,1,0,true,false,0,[]);[128X[104X
    [4X[28X [ "defgh.g.h.fah.e.gaf.h.eag.e.faf.a.haa.g.fah.a.gjhzh" ][128X[104X
    [4X[28X gap> c:=SCFromIsoSig(list[1]);[128X[104X
    [4X[28X <SimplicialComplex: unnamed complex 6 | dim = 3 | n = 8>[128X[104X
    [4X[28X gap> SCNeighborliness(c); [128X[104X
    [4X[28X 3[128X[104X
    [4X[28X gap> c.F;[128X[104X
    [4X[28X [ 8, 28, 56, 28 ][128X[104X
    [4X[28X gap> c.IsManifold; [128X[104X
    [4X[28X false[128X[104X
    [4X[28X gap> SCLibDetermineTopologicalType(SCLink(c,1));[128X[104X
    [4X[28X <SimplicialComplex: lk([ 1 ]) in unnamed complex 6 | dim = 2 | n = 7>[128X[104X
    [4X[28X gap> # there are no 3-neighborly 3-manifolds with 8 vertices[128X[104X
    [4X[28X gap> list:=SCsFromGroupExt(PrimitiveGroup(8,5),8,3,0,0,true,false,0,[]); [128X[104X
    [4X[28X gap> [  ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.7-2 SCsFromGroupByTransitivity[101X
  
  [33X[1;0Y[29X[2XSCsFromGroupByTransitivity[102X( [3Xn[103X, [3Xd[103X, [3Xk[103X, [3Xmaniflag[103X, [3XcomputeAutGroup[103X, [3XremoveDoubleEntries[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya  list  of  simplicial complexes of type [10XSCSimplicialComplex[110X upon
            success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes all combinatorial [3Xd[103X-pseudomanifolds, [22Xd = 2[122X / all strongly connected
  combinatorial  [3Xd[103X-pseudomanifolds, [22Xd ≥ 3[122X, as union of orbits of group actions
  for  all  [3Xk[103X-transitive  groups on [10X(d+1)[110X-tuples on the set of [3Xn[103X vertices, see
  [Lut03].  The  boolean  argument  [3Xmaniflag[103X  specifies, whether the resulting
  complexes   should   be   listed   separately  by  combinatorial  manifolds,
  combinatorial  pseudomanifolds and complexes where the verification that the
  object  is  at  least  a  combinatorial  pseudomanifold  failed. The boolean
  argument  [3XcomputeAutGroup[103X  specifies  whether  or  not the real automorphism
  group  should be computed (note that a priori the generating group is just a
  subgroup    of    the    automorphism    group).    The   boolean   argument
  [3XremoveDoubleEntries[103X   specifies   whether   the   results  are  checked  for
  combinatorial  isomorphism,  preventing isomorphic entries. Internally calls
  [2XSCsFromGroupExt[102X ([14X6.7-1[114X) for every group.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> list:=SCsFromGroupByTransitivity(8,3,2,true,true,true);[128X[104X
    [4X[28X #I  SCsFromGroupByTransitivity: Building list of groups...[128X[104X
    [4X[28X #I  SCsFromGroupByTransitivity: ...2 groups found.[128X[104X
    [4X[28X #I  degree 8: [ AGL(1, 8), PSL(2, 7) ][128X[104X
    [4X[28X #I  SCsFromGroupByTransitivity: Processing dimension 3.[128X[104X
    [4X[28X #I  SCsFromGroupByTransitivity: Processing degree 8.[128X[104X
    [4X[28X #I  SCsFromGroupByTransitivity: 1 / 2 groups calculated, found 0 complexes.[128X[104X
    [4X[28X #I  SCsFromGroupByTransitivity: Calculating 0 automorphism and homology groups...[128X[104X
    [4X[28X #I  SCsFromGroupByTransitivity: ...all automorphism groups calculated for group 1 / 2.[128X[104X
    [4X[28X #I  SCsFromGroupByTransitivity: 2 / 2 groups calculated, found 1 complexes.[128X[104X
    [4X[28X #I  SCsFromGroupByTransitivity: Calculating 1 automorphism and homology groups...[128X[104X
    [4X[28X #I  group not listed[128X[104X
    [4X[28X #I  SCsFromGroupByTransitivity: 1 / 1 automorphism groups calculated.[128X[104X
    [4X[28X #I  SCsFromGroupByTransitivity: ...all automorphism groups calculated for group 2 / 2.[128X[104X
    [4X[28X #I  SCsFromGroupByTransitivity: ...done dim = 3, deg =  8, 0 manifolds, 1 pseudomanifolds, 0 candidates found.[128X[104X
    [4X[28X #I  SCsFromGroupByTransitivity: ...done dim = 3.[128X[104X
    [4X[28X [ [  ], [  ], [  ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  
  [1X6.8 [33X[0;0YThe classification of cyclic combinatorial 3-manifolds[133X[101X
  
  [33X[0;0YThis   section   contains   functions   to   access  the  classification  of
  combinatorial  3-manifolds  with  transitive  cyclic  symmetry  and up to 22
  vertices as presented in [Spr14].[133X
  
  [1X6.8-1 SCNrCyclic3Mflds[101X
  
  [33X[1;0Y[29X[2XSCNrCyclic3Mflds[102X( [3Xi[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Yinteger upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YReturns  the  number  of  combinatorial  3-manifolds  with transitive cyclic
  symmetry  with  [3Xi[103X vertices. See [Spr14] for more about the classification of
  combinatorial 3-manifolds with transitive cyclic symmetry up to [22X22[122X vertices.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCNrCyclic3Mflds(22);[128X[104X
    [4X[28X 3090[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.8-2 SCCyclic3MfldTopTypes[101X
  
  [33X[1;0Y[29X[2XSCCyclic3MfldTopTypes[102X( [3Xi[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya list of strings upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YReturns  a  list  of  all topological types that occur in the classification
  combinatorial  3-manifolds  with transitive cyclic symmetry with [3Xi[103X vertices.
  See  [Spr14]  for more about the classification of combinatorial 3-manifolds
  with transitive cyclic symmetry up to [22X22[122X vertices.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCCyclic3MfldTopTypes(19);[128X[104X
    [4X[28X [ "B2", "RP^2xS^1", "SFS[RP^2:(2,1)(3,1)]", "S^2~S^1", "S^3", "Sigma(2,3,7)", [128X[104X
    [4X[28X   "T^3" ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.8-3 SCCyclic3Mfld[101X
  
  [33X[1;0Y[29X[2XSCCyclic3Mfld[102X( [3Xi[103X, [3Xj[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YReturns   the   [3Xj[103Xth   combinatorial   3-manifold  with  [3Xi[103X  vertices  in  the
  classification of combinatorial 3-manifolds with transitive cyclic symmetry.
  See  [Spr14]  for more about the classification of combinatorial 3-manifolds
  with transitive cyclic symmetry up to [22X22[122X vertices.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCCyclic3Mfld(15,34);[128X[104X
    [4X[28X <SimplicialComplex: Cyclic 3-mfld (15,34): T^3 | dim = 3 | n = 15>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.8-4 SCCyclic3MfldByType[101X
  
  [33X[1;0Y[29X[2XSCCyclic3MfldByType[102X( [3Xtype[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YReturns  the  smallest  combinatorial  3-manifolds  in the classification of
  combinatorial  3-manifolds  with  transitive  cyclic symmetry of topological
  type  [3Xtype[103X.  See  [Spr14] for more about the classification of combinatorial
  3-manifolds with transitive cyclic symmetry up to [22X22[122X vertices.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCCyclic3MfldByType("T^3");[128X[104X
    [4X[28X <SimplicialComplex: Cyclic 3-mfld (15,34): T^3 | dim = 3 | n = 15>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.8-5 SCCyclic3MfldListOfGivenType[101X
  
  [33X[1;0Y[29X[2XSCCyclic3MfldListOfGivenType[102X( [3Xtype[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YReturns  a  list  of indices [22X{ (i_1, j_1) , (i_1, j_1) , ... (i_n, j_n) }[122X of
  all   combinatorial  3-manifolds  in  the  classification  of  combinatorial
  3-manifolds  with  transitive  cyclic  symmetry  of  topological  type [3Xtype[103X.
  Complexes  can  be  obtained  by  calling  [2XSCCyclic3Mfld[102X ([14X6.8-3[114X) using these
  indices.  See  [Spr14]  for  more  about the classification of combinatorial
  3-manifolds with transitive cyclic symmetry up to [22X22[122X vertices.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCCyclic3MfldListOfGivenType("Sigma(2,3,7)");[128X[104X
    [4X[28X [ [ 19, 100 ], [ 19, 118 ], [ 19, 120 ], [ 19, 130 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  
  [1X6.9 [33X[0;0YComputing properties of simplicial complexes[133X[101X
  
  [33X[0;0YThe  following functions compute basic properties of simplicial complexes of
  type  [10XSCSimplicialComplex[110X.  None  of  these functions alter the complex. All
  properties  are returned as immutable objects (this ensures data consistency
  of  the  cached  properties of a simplicial complex). Use [10XShallowCopy[110X or the
  internal [5Xsimpcomp[105X function [10XSCIntFunc.DeepCopy[110X to get a mutable copy.[133X
  
  [33X[0;0YNote: every simplicial complex is internally stored with the standard vertex
  labeling from [22X1[122X to [22Xn[122X and a maptable to restore the original vertex labeling.
  Thus,  we  have  to  relabel  some  of  the complex properties (facets, face
  lattice, generators, etc...) whenever we want to return them to the user. As
  a  consequence,  some  of  the  functions  exist twice, one of them with the
  appendix  "Ex".  These  functions  return  the standard labeling whereas the
  other ones relabel the result to the original labeling.[133X
  
  [1X6.9-1 SCAltshulerSteinberg[101X
  
  [33X[1;0Y[29X[2XSCAltshulerSteinberg[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya non-negative integer upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes the Altshuler-Steinberg determinant.[133X
  
  [33X[0;0YDefinition: Let [22Xv_i[122X, [22X1 ≤ i ≤ n[122X be the vertices and let [22XF_j[122X, [22X1 ≤ j ≤ m[122X be the
  facets of a pure simplicial complex [22XC[122X, then the determinant of [22XAS ∈ Z^n × m[122X,
  [22XAS_ij=1[122X  if  [22Xv_i ∈ F_j[122X, [22XAS_ij=0[122X otherwise, is called the Altshuler-Steinberg
  matrix.  The  Altshuler-Steinberg  determinant  is  the  determinant  of the
  quadratic matrix [22XAS ⋅ AS^T[122X.[133X
  
  [33X[0;0YThe  Altshuler-Steinberg  determinant  is a combinatorial invariant of [22XC[122X and
  can  be  checked  before searching for an isomorphism between two simplicial
  complexes.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> list:=SCLib.SearchByName("T^2");; [128X[104X
    [4X[28X gap> torus:=SCLib.Load(last[1][1]);;[128X[104X
    [4X[28X gap> SCAltshulerSteinberg(torus);[128X[104X
    [4X[28X 73728[128X[104X
    [4X[28X gap> c:=SCBdSimplex(3);;[128X[104X
    [4X[28X gap> SCAltshulerSteinberg(c);[128X[104X
    [4X[28X 9[128X[104X
    [4X[28X gap> c:=SCBdSimplex(4);;[128X[104X
    [4X[28X gap> SCAltshulerSteinberg(c);[128X[104X
    [4X[28X 16[128X[104X
    [4X[28X gap> c:=SCBdSimplex(5);;[128X[104X
    [4X[28X gap> SCAltshulerSteinberg(c);[128X[104X
    [4X[28X 25[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-2 SCAutomorphismGroup[101X
  
  [33X[1;0Y[29X[2XSCAutomorphismGroup[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya [5XGAP[105X permutation group upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes  the  automorphism  group  of  a  strongly connected pseudomanifold
  [3Xcomplex[103X,  i.  e.  the  group  of all automorphisms on the set of vertices of
  [3Xcomplex[103X  that do not change the complex as a whole. Necessarily the group is
  a  subgroup  of the symmetric group [22XS_n[122X where [22Xn[122X is the number of vertices of
  the simplicial complex.[133X
  
  [33X[0;0YThe  function uses an efficient algorithm provided by the package [5XGRAPE[105X (see
  [Soi12],  which  is  based on the program [10Xnauty[110X by Brendan McKay [MP14]). If
  the  package  [5XGRAPE[105X  is  not  available,  this  function  call falls back to
  [2XSCAutomorphismGroupInternal[102X ([14X6.9-3[114X).[133X
  
  [33X[0;0YThe  position  of the group in the [5XGAP[105X libraries of small groups, transitive
  groups  or  primitive  groups  is  given.  If  the  group is not listed, its
  structure  description, provided by the [5XGAP[105X function [10XStructureDescription()[110X,
  is  returned  as  the  name  of  the group. Note that the latter form is not
  always  unique,  since  every  non trivial semi-direct product is denoted by
  ''[10X:[110X''.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("K3");            [128X[104X
    [4X[28X [ [ 520, "K3_16" ], [ 539, "K3_17" ] ][128X[104X
    [4X[28X gap> k3surf:=SCLib.Load(last[1][1]);; [128X[104X
    [4X[28X gap> SCAutomorphismGroup(k3surf);               [128X[104X
    [4X[28X Group([ (1,2)(3,4)(5,6)(7,8)(9,10)(11,12)(13,14)(15,16), (1,2,8,14,5)[128X[104X
    [4X[28X   (3,11,9,4,13)(6,7,12,15,10), (1,3,2)(5,11,14)(6,9,15)(7,10,13)(8,12,16) ])[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-3 SCAutomorphismGroupInternal[101X
  
  [33X[1;0Y[29X[2XSCAutomorphismGroupInternal[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya [5XGAP[105X permutation group upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes  the  automorphism  group  of  a  strongly connected pseudomanifold
  [3Xcomplex[103X,  i.  e.  the  group  of all automorphisms on the set of vertices of
  [3Xcomplex[103X  that do not change the complex as a whole. Necessarily the group is
  a  subgroup  of the symmetric group [22XS_n[122X where [22Xn[122X is the number of vertices of
  the simplicial complex.[133X
  
  [33X[0;0YThe  position  of the group in the [5XGAP[105X libraries of small groups, transitive
  groups  or  primitive  groups  is  given.  If  the  group is not listed, its
  structure  description, provided by the [5XGAP[105X function [10XStructureDescription()[110X,
  is  returned  as  the  name  of  the group. Note that the latter form is not
  always  unique,  since  every  non trivial semi-direct product is denoted by
  ''[10X:[110X''.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCBdSimplex(5);;[128X[104X
    [4X[28X gap> SCAutomorphismGroupInternal(c);[128X[104X
    [4X[28X Sym( [ 1 .. 6 ] )[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[1,2],[2,3],[1,3]]);;[128X[104X
    [4X[28X gap> g:=SCAutomorphismGroupInternal(c);[128X[104X
    [4X[28X Group([ (2,3), (1,2,3) ])[128X[104X
    [4X[28X gap> List(g);[128X[104X
    [4X[28X [ (), (1,2,3), (1,3,2), (2,3), (1,2), (1,3) ][128X[104X
    [4X[28X gap> StructureDescription(g);[128X[104X
    [4X[28X "S3"[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-4 SCAutomorphismGroupSize[101X
  
  [33X[1;0Y[29X[2XSCAutomorphismGroupSize[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya positive integer group upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes  the  size  of  the  automorphism  group  of  a  strongly connected
  pseudomanifold [3Xcomplex[103X, see [2XSCAutomorphismGroup[102X ([14X6.9-2[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("K3");            [128X[104X
    [4X[28X [ [ 520, "K3_16" ], [ 539, "K3_17" ] ][128X[104X
    [4X[28X gap> k3surf:=SCLib.Load(last[1][1]);;           [128X[104X
    [4X[28X gap> SCAutomorphismGroupSize(k3surf);               [128X[104X
    [4X[28X 240[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-5 SCAutomorphismGroupStructure[101X
  
  [33X[1;0Y[29X[2XSCAutomorphismGroupStructure[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ythe [5XGAP[105X structure description upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes  the  [5XGAP[105X  structure  description  of  the  automorphism group of a
  strongly connected pseudomanifold [3Xcomplex[103X, see [2XSCAutomorphismGroup[102X ([14X6.9-2[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("K3");     [128X[104X
    [4X[28X [ [ 520, "K3_16" ], [ 539, "K3_17" ] ][128X[104X
    [4X[28X gap> k3surf:=SCLib.Load(last[1][1]);;      [128X[104X
    [4X[28X gap> SCAutomorphismGroupStructure(k3surf);[128X[104X
    [4X[28X "(C2 x C2 x C2 x C2) : C15"[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-6 SCAutomorphismGroupTransitivity[101X
  
  [33X[1;0Y[29X[2XSCAutomorphismGroupTransitivity[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya positive integer upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes  the transitivity of the automorphism group of a strongly connected
  pseudomanifold  [3Xcomplex[103X,  i.  e. the maximal integer [22Xt[122X such that for any two
  ordered [22Xt[122X-tuples [22XT_1[122X and [22XT_2[122X of vertices of [3Xcomplex[103X, there exists an element
  [22Xg[122X in the automorphism group of [3Xcomplex[103X for which [22XgT_1=T_2[122X, see [Hup67].[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("K3");            [128X[104X
    [4X[28X [ [ 520, "K3_16" ], [ 539, "K3_17" ] ][128X[104X
    [4X[28X gap> k3surf:=SCLib.Load(last[1][1]);;           [128X[104X
    [4X[28X gap> SCAutomorphismGroupTransitivity(k3surf);               [128X[104X
    [4X[28X 2[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-7 SCBoundary[101X
  
  [33X[1;0Y[29X[2XSCBoundary[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YThe   function  computes  the  boundary  of  a  simplicial  complex  [3Xcomplex[103X
  satisfying  the  weak pseudomanifold property and returns it as a simplicial
  complex. In addition, it is stored as a property of [3Xcomplex[103X.[133X
  
  [33X[0;0YThe  boundary  of  a simplicial complex is defined as the simplicial complex
  consisting of all [22Xd-1[122X-faces that are contained in exactly one facet.[133X
  
  [33X[0;0YIf  [3Xcomplex[103X  does not fulfill the weak pseudomanifold property (i. e. if the
  valence of any [22Xd-1[122X-face exceeds [22X2[122X) the function returns [9Xfail[109X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[1,2,3,4],[1,2,3,5],[1,2,4,5],[1,3,4,5]]);[128X[104X
    [4X[28X <SimplicialComplex: unnamed complex 63 | dim = 3 | n = 5>[128X[104X
    [4X[28X gap> SCBoundary(c);[128X[104X
    [4X[28X <SimplicialComplex: Bd(unnamed complex 63) | dim = 2 | n = 4>[128X[104X
    [4X[28X gap> c;  [128X[104X
    [4X[28X <SimplicialComplex: unnamed complex 63 | dim = 3 | n = 5>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-8 SCDehnSommervilleCheck[101X
  
  [33X[1;0Y[29X[2XSCDehnSommervilleCheck[102X( [3Xc[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YChecks  if the simplicial complex [3Xc[103X fulfills the Dehn Sommerville equations:
  [22Xh_j - h_d+1-j = (-1)^d+1-j d+1 choose j (χ (M) - 2)[122X for [22X0 ≤ j ≤ fracd2[122X and [22Xd[122X
  even, and [22Xh_j - h_d+1-j = 0[122X for [22X0 ≤ j ≤ fracd-12[122X and [22Xd[122X odd. Where [22Xh_j[122X is the
  [22Xj[122Xth component of the [22Xh[122X-vector, see [2XSCHVector[102X ([14X6.9-26[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCBdCrossPolytope(6);;[128X[104X
    [4X[28X gap> SCDehnSommervilleCheck(c);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X gap> c:=SC([[1,2,3],[1,4,5]]);;[128X[104X
    [4X[28X gap> SCDehnSommervilleCheck(c);[128X[104X
    [4X[28X false[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-9 SCDehnSommervilleMatrix[101X
  
  [33X[1;0Y[29X[2XSCDehnSommervilleMatrix[102X( [3Xd[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya  [10X(d+1)[110X[22X×[122X[10XInt(d+1/2)[110X matrix with integer entries upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YComputes the coefficients of the Dehn Sommerville equations for dimension [10Xd[110X:
  [22Xh_j - h_d+1-j = (-1)^d+1-j d+1 choose j (χ (M) - 2)[122X for [22X0 ≤ j ≤ fracd2[122X and [22Xd[122X
  even, and [22Xh_j - h_d+1-j = 0[122X for [22X0 ≤ j ≤ fracd-12[122X and [22Xd[122X odd. Where [22Xh_j[122X is the
  [22Xj[122Xth component of the [22Xh[122X-vector, see [2XSCHVector[102X ([14X6.9-26[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> m:=SCDehnSommervilleMatrix(6);;[128X[104X
    [4X[28X gap> PrintArray(m);[128X[104X
    [4X[28X [ [    1,   -1,    1,   -1,    1,   -1,    1 ],[128X[104X
    [4X[28X   [    0,   -2,    3,   -4,    5,   -6,    7 ],[128X[104X
    [4X[28X   [    0,    0,    0,   -4,   10,  -20,   35 ],[128X[104X
    [4X[28X   [    0,    0,    0,    0,    0,   -6,   21 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-10 SCDifferenceCycles[101X
  
  [33X[1;0Y[29X[2XSCDifferenceCycles[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya list of lists upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes the difference cycles of [3Xcomplex[103X in standard labeling if [3Xcomplex[103X is
  invariant  under a shift of the vertices of type [22Xv ↦ v+1 mod n[122X. The function
  returns  the  difference cycles as lists where the sum of the entries equals
  the number of vertices [22Xn[122X of [3Xcomplex[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> torus:=SCFromDifferenceCycles([[1,2,4],[1,4,2]]);[128X[104X
    [4X[28X <SimplicialComplex: complex from diffcycles [ [ 1, 2, 4 ], [ 1, 4, 2 ] ] | dim\[128X[104X
    [4X[28X  = 2 | n = 7>[128X[104X
    [4X[28X gap> torus.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 2, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X gap> torus.DifferenceCycles;[128X[104X
    [4X[28X [ [ 1, 2, 4 ], [ 1, 4, 2 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-11 SCDim[101X
  
  [33X[1;0Y[29X[2XSCDim[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Yan integer [22X≥ -1[122X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes  the dimension of a simplicial complex. If the complex is not pure,
  the dimension of the highest dimensional simplex is returned.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> complex:=SC([[1,2,3], [1,2,4], [1,3,4], [2,3,4]]);;[128X[104X
    [4X[28X gap> SCDim(complex);                                    [128X[104X
    [4X[28X 2[128X[104X
    [4X[28X gap> c:=SC([[1], [2,4], [3,4], [5,6,7,8]]);;[128X[104X
    [4X[28X gap> SCDim(c);[128X[104X
    [4X[28X 3[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-12 SCDualGraph[101X
  
  [33X[1;0Y[29X[2XSCDualGraph[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Y1-dimensional  simplicial complex of type [10XSCSimplicialComplex[110X upon
            success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes the dual graph of the pure simplicial complex [3Xcomplex[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> sphere:=SCBdSimplex(5);;[128X[104X
    [4X[28X gap> graph:=SCFaces(sphere,1);       [128X[104X
    [4X[28X [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 1, 5 ], [ 1, 6 ], [ 2, 3 ], [ 2, 4 ], [128X[104X
    [4X[28X   [ 2, 5 ], [ 2, 6 ], [ 3, 4 ], [ 3, 5 ], [ 3, 6 ], [ 4, 5 ], [ 4, 6 ], [128X[104X
    [4X[28X   [ 5, 6 ] ][128X[104X
    [4X[28X gap> graph:=SC(graph);;              [128X[104X
    [4X[28X gap> dualGraph:=SCDualGraph(sphere); [128X[104X
    [4X[28X <SimplicialComplex: dual graph of S^4_6 | dim = 1 | n = 6>[128X[104X
    [4X[28X gap> graph.Facets = dualGraph.Facets;[128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-13 SCEulerCharacteristic[101X
  
  [33X[1;0Y[29X[2XSCEulerCharacteristic[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Yinteger upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes  the  Euler characteristic [23X \chi(C)=\sum \limits_{i=0}^{d} (-1)^{i}
  f_i  [123X of a simplicial complex [22XC[122X, where [22Xf_i[122X denotes the [22Xi[122X-th component of the
  [22Xf[122X-vector.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> complex:=SCFromFacets([[1,2,3], [1,2,4], [1,3,4], [2,3,4]]);;[128X[104X
    [4X[28X gap> SCEulerCharacteristic(complex);[128X[104X
    [4X[28X 2[128X[104X
    [4X[28X gap> s2:=SCBdSimplex(3);;[128X[104X
    [4X[28X gap> s2.EulerCharacteristic;[128X[104X
    [4X[28X 2[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-14 SCFVector[101X
  
  [33X[1;0Y[29X[2XSCFVector[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya list of non-negative integers upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes the [22Xf[122X-vector of the simplicial complex [3Xcomplex[103X, i. e. the number of
  [22Xi[122X-dimensional  faces  for  [22X0 ≤ i ≤ d[122X, where [22Xd[122X is the dimension of [3Xcomplex[103X. A
  memory-saving  implicit  algorithm  is used that avoids calculating the face
  lattice of the complex. Internally calls [2XSCNumFaces[102X ([14X6.9-52[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> complex:=SC([[1,2,3], [1,2,4], [1,3,4], [2,3,4]]);;[128X[104X
    [4X[28X gap> SCFVector(complex);[128X[104X
    [4X[28X [ 4, 6, 4 ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-15 SCFaceLattice[101X
  
  [33X[1;0Y[29X[2XSCFaceLattice[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya list of face lists upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes  the  entire face lattice of a [22Xd[122X-dimensional simplicial complex, i.
  e.  all  of  its  [22Xi[122X-skeletons  for  [22X0 ≤ i ≤ d[122X. The faces are returned in the
  original labeling.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([["a","b","c"],["a","b","d"], ["a","c","d"], ["b","c","d"]]);;[128X[104X
    [4X[28X gap> SCFaceLattice(c);[128X[104X
    [4X[28X [ [ [ "a" ], [ "b" ], [ "c" ], [ "d" ] ], [128X[104X
    [4X[28X   [ [ "a", "b" ], [ "a", "c" ], [ "a", "d" ], [ "b", "c" ], [ "b", "d" ], [128X[104X
    [4X[28X       [ "c", "d" ] ], [128X[104X
    [4X[28X   [ [ "a", "b", "c" ], [ "a", "b", "d" ], [ "a", "c", "d" ], [128X[104X
    [4X[28X       [ "b", "c", "d" ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-16 SCFaceLatticeEx[101X
  
  [33X[1;0Y[29X[2XSCFaceLatticeEx[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya list of face lists upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes  the  entire face lattice of a [22Xd[122X-dimensional simplicial complex, i.
  e.  all  of  its  [22Xi[122X-skeletons  for  [22X0 ≤ i ≤ d[122X. The faces are returned in the
  standard labeling.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([["a","b","c"],["a","b","d"], ["a","c","d"], ["b","c","d"]]);;[128X[104X
    [4X[28X gap> SCFaceLatticeEx(c);[128X[104X
    [4X[28X [ [ [ 1 ], [ 2 ], [ 3 ], [ 4 ] ], [128X[104X
    [4X[28X   [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 4 ], [ 3, 4 ] ], [128X[104X
    [4X[28X   [ [ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 3, 4 ], [ 2, 3, 4 ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-17 SCFaces[101X
  
  [33X[1;0Y[29X[2XSCFaces[102X( [3Xcomplex[103X, [3Xk[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya face list upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YThis is a synonym of the function [2XSCSkel[102X ([14X7.3-13[114X).[133X
  
  [1X6.9-18 SCFacesEx[101X
  
  [33X[1;0Y[29X[2XSCFacesEx[102X( [3Xcomplex[103X, [3Xk[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya face list upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YThis is a synonym of the function [2XSCSkelEx[102X ([14X7.3-14[114X).[133X
  
  [1X6.9-19 SCFacets[101X
  
  [33X[1;0Y[29X[2XSCFacets[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya facet list upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YReturns the facets of a simplicial complex in the original vertex labeling.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[2,3],[3,4],[4,2]]);;[128X[104X
    [4X[28X gap> SCFacets(c);[128X[104X
    [4X[28X [ [ 2, 3 ], [ 2, 4 ], [ 3, 4 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-20 SCFacetsEx[101X
  
  [33X[1;0Y[29X[2XSCFacetsEx[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya facet list upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YReturns  the  facets  of a simplicial complex as they are stored, i. e. with
  standard vertex labeling from 1 to n.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[2,3],[3,4],[4,2]]);;[128X[104X
    [4X[28X gap> SCFacetsEx(c);[128X[104X
    [4X[28X [ [ 1, 2 ], [ 1, 3 ], [ 2, 3 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-21 SCFpBettiNumbers[101X
  
  [33X[1;0Y[29X[2XSCFpBettiNumbers[102X( [3Xcomplex[103X, [3Xp[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya list of non-negative integers upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes the Betti numbers of a simplicial complex with respect to the field
  [22XF_p[122X for any prime number [10Xp[110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("K^2");    [128X[104X
    [4X[28X [ [ 18, "K^2 (VT)" ], [ 221, "K^2 (VT)" ] ][128X[104X
    [4X[28X gap> kleinBottle:=SCLib.Load(last[1][1]);; [128X[104X
    [4X[28X gap> SCHomology(kleinBottle);      [128X[104X
    [4X[28X [ [ 0, [  ] ], [ 1, [ 2 ] ], [ 0, [  ] ] ][128X[104X
    [4X[28X gap> SCFpBettiNumbers(kleinBottle,2);[128X[104X
    [4X[28X [ 1, 2, 1 ][128X[104X
    [4X[28X gap> SCFpBettiNumbers(kleinBottle,3);[128X[104X
    [4X[28X [ 1, 1, 0 ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-22 SCFundamentalGroup[101X
  
  [33X[1;0Y[29X[2XSCFundamentalGroup[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya [5XGAP[105X fp group upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes  the  first fundamental group of [3Xcomplex[103X, which must be a connected
  simplicial  complex,  and  returns it in form of a finitely presented group.
  The  generators  of  the  group are given as 2-tuples that correspond to the
  edges  of  [3Xcomplex[103X in standard labeling. You can use GAP's [10XSimplifiedFpGroup[110X
  to simplify the group presenation.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> list:=SCLib.SearchByName("RP^2");[128X[104X
    [4X[28X [ [ 3, "RP^2 (VT)" ], [ 262, "RP^2xS^1" ] ][128X[104X
    [4X[28X gap> c:=SCLib.Load(list[1][1]);[128X[104X
    [4X[28X <SimplicialComplex: RP^2 (VT) | dim = 2 | n = 6>[128X[104X
    [4X[28X gap> g:=SCFundamentalGroup(c);;[128X[104X
    [4X[28X gap> StructureDescription(g);[128X[104X
    [4X[28X "C2"[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-23 SCGVector[101X
  
  [33X[1;0Y[29X[2XSCGVector[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya list of integers upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes  the  g-vector  of a simplicial complex. The [22Xg[122X-vector is defined as
  follows:[133X
  
  [33X[0;0YLet  [22Xh[122X  be  the  [22Xh[122X-vector  of  a  [22Xd[122X-dimensional  simplicial  complex C, then
  [23Xg_i:=h_{i+1}  -  h_{i}  ;  \quad  \frac{d}{2}  \geq  i \geq 0 [123X is called the
  [22Xg[122X-vector  of  [22XC[122X.  For the definition of the [22Xh[122X-vector see [2XSCHVector[102X ([14X6.9-26[114X).
  The information contained in [22Xg[122X suffices to determine the [22Xf[122X-vector of [22XC[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("RP^2");[128X[104X
    [4X[28X [ [ 3, "RP^2 (VT)" ], [ 262, "RP^2xS^1" ] ][128X[104X
    [4X[28X gap> rp2_6:=SCLib.Load(last[1][1]);;[128X[104X
    [4X[28X gap> SCFVector(rp2_6);[128X[104X
    [4X[28X [ 6, 15, 10 ][128X[104X
    [4X[28X gap> SCHVector(rp2_6);[128X[104X
    [4X[28X [ 3, 6, 0 ][128X[104X
    [4X[28X gap> SCGVector(rp2_6);[128X[104X
    [4X[28X [ 2, 3 ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-24 SCGenerators[101X
  
  [33X[1;0Y[29X[2XSCGenerators[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya  list  of pairs of the form [10X[ list, integer ][110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YComputes  the  generators  of  a  simplicial  complex in the original vertex
  labeling.[133X
  
  [33X[0;0YThe  generating set of a simplicial complex is a list of simplices that will
  generate  the  complex  by  uniting  their [22XG[122X-orbits if [22XG[122X is the automorphism
  group of [3Xcomplex[103X.[133X
  
  [33X[0;0YThe function returns the simplices together with the length of their orbits.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> list:=SCLib.SearchByName("T^2");;[128X[104X
    [4X[28X gap> torus:=SCLib.Load(list[1][1]);;[128X[104X
    [4X[28X gap> SCGenerators(torus); [128X[104X
    [4X[28X [ [ [ 1, 2, 4 ], 14 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("K3");[128X[104X
    [4X[28X [ [ 520, "K3_16" ], [ 539, "K3_17" ] ][128X[104X
    [4X[28X gap> SCLib.Load(last[1][1]);[128X[104X
    [4X[28X <SimplicialComplex: K3_16 | dim = 4 | n = 16>[128X[104X
    [4X[28X gap> SCGenerators(last);[128X[104X
    [4X[28X [ [ [ 1, 2, 3, 8, 12 ], 240 ], [ [ 1, 2, 5, 8, 14 ], 48 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-25 SCGeneratorsEx[101X
  
  [33X[1;0Y[29X[2XSCGeneratorsEx[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya  list  of pairs of the form [10X[ list, integer ][110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YComputes  the  generators  of  a  simplicial  complex in the standard vertex
  labeling.[133X
  
  [33X[0;0YThe  generating set of a simplicial complex is a list of simplices that will
  generate  the  complex  by  uniting  their [22XG[122X-orbits if [22XG[122X is the automorphism
  group of [3Xcomplex[103X.[133X
  
  [33X[0;0YThe function returns the simplices together with the length of their orbits.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> list:=SCLib.SearchByName("T^2");;[128X[104X
    [4X[28X gap> torus:=SCLib.Load(list[1][1]);;[128X[104X
    [4X[28X gap> SCGeneratorsEx(torus); [128X[104X
    [4X[28X [ [ [ 1, 2, 4 ], 14 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("K3");[128X[104X
    [4X[28X [ [ 520, "K3_16" ], [ 539, "K3_17" ] ][128X[104X
    [4X[28X gap> SCLib.Load(last[1][1]);[128X[104X
    [4X[28X <SimplicialComplex: K3_16 | dim = 4 | n = 16>[128X[104X
    [4X[28X gap> SCGeneratorsEx(last);[128X[104X
    [4X[28X [ [ [ 1, 2, 3, 8, 12 ], 240 ], [ [ 1, 2, 5, 8, 14 ], 48 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-26 SCHVector[101X
  
  [33X[1;0Y[29X[2XSCHVector[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya list of integers upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes  the  [22Xh[122X-vector of a simplicial complex. The [22Xh[122X-vector is defined as [23X
  h_{k}:=  \sum \limits_{i=-1}^{k-1} (-1)^{k-i-1}{d-i-1 \choose k-i-1} f_i[123X for
  [22X0  ≤  k  ≤ d[122X, where [22Xf_-1 := 1[122X. For all simplicial complexes we have [22Xh_0 = 1[122X,
  hence the returned list starts with the second entry of the [22Xh[122X-vector.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("RP^2");[128X[104X
    [4X[28X [ [ 3, "RP^2 (VT)" ], [ 262, "RP^2xS^1" ] ][128X[104X
    [4X[28X gap> rp2_6:=SCLib.Load(last[1][1]);;[128X[104X
    [4X[28X gap> SCFVector(rp2_6);[128X[104X
    [4X[28X [ 6, 15, 10 ][128X[104X
    [4X[28X gap> SCHVector(rp2_6);[128X[104X
    [4X[28X [ 3, 6, 0 ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-27 SCHasBoundary[101X
  
  [33X[1;0Y[29X[2XSCHasBoundary[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YChecks  if  a  simplicial  complex  [3Xcomplex[103X  that  fulfills  the weak pseudo
  manifold  property  has a boundary, i. e. [22Xd-1[122X-faces of valence [22X1[122X. If [3Xcomplex[103X
  is  closed  [9Xfalse[109X  is  returned,  if  [3Xcomplex[103X  does  not  fulfill  the  weak
  pseudomanifold property, [9Xfail[109X is returned, otherwise [9Xtrue[109X is returned.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("K^2"); [128X[104X
    [4X[28X [ [ 18, "K^2 (VT)" ], [ 221, "K^2 (VT)" ] ][128X[104X
    [4X[28X gap> kleinBottle:=SCLib.Load(last[1][1]);;[128X[104X
    [4X[28X gap> SCHasBoundary(kleinBottle);[128X[104X
    [4X[28X false[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[1,2,3,4],[1,2,3,5],[1,2,4,5],[1,3,4,5]]);;[128X[104X
    [4X[28X gap> SCHasBoundary(c);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-28 SCHasInterior[101X
  
  [33X[1;0Y[29X[2XSCHasInterior[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YReturns  [9Xtrue[109X  if  a  simplicial  complex  [3Xcomplex[103X  that  fulfills  the weak
  pseudomanifold  property  has  at  least one [22Xd-1[122X-face of valence [22X2[122X, i. e. if
  there exist at least one [22Xd-1[122X-face that is not in the boundary of [3Xcomplex[103X, if
  no such face can be found [9Xfalse[109X is returned. It [3Xcomplex[103X does not fulfill the
  weak pseudomanifold property [9Xfail[109X is returned.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[1,2,3,4],[1,2,3,5],[1,2,4,5],[1,3,4,5]]);;[128X[104X
    [4X[28X gap> SCHasInterior(c)[128X[104X
    [4X[28X true[128X[104X
    [4X[28X gap> c:=SC([[1,2,3,4]]);;[128X[104X
    [4X[28X gap> SCHasInterior(c);[128X[104X
    [4X[28X false[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-29 SCHeegaardSplittingSmallGenus[101X
  
  [33X[1;0Y[29X[2XSCHeegaardSplittingSmallGenus[102X( [3XM[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya  list  of  an  integer, a list of two sublists and a string upon
            success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes  a  Heegaard  splitting  of the combinatorial [22X3[122X-manifold [3XM[103X of small
  genus.  The function returns the genus of the Heegaard splitting, the vertex
  partition of the Heegaard splitting and information whether the splitting is
  minimal  or  just  small (i. e. the Heegaard genus could not be determined).
  See also [2XSCHeegaardSplitting[102X ([14X6.9-30[114X) for a faster computation of a Heegaard
  splitting  of  arbitrary genus and [2XSCIsHeegaardSplitting[102X ([14X6.9-40[114X) for a test
  whether or not a given splitting defines a Heegaard splitting.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCSeriesBdHandleBody(3,10);;[128X[104X
    [4X[28X gap> M:=SCConnectedProduct(c,3);;[128X[104X
    [4X[28X gap> list:=SCHeegaardSplittingSmallGenus(M);[128X[104X
    [4X[28X This creates an error[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-30 SCHeegaardSplitting[101X
  
  [33X[1;0Y[29X[2XSCHeegaardSplitting[102X( [3XM[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya  list  of  an  integer, a list of two sublists and a string upon
            success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes  a  Heegaard  splitting  of  the  combinatorial  [22X3[122X-manifold  [3XM[103X. The
  function  returns  the genus of the Heegaard splitting, the vertex partition
  of  the  Heegaard  splitting  and a note, that splitting is arbitrary and in
  particular  possibly  not  minimal.  See  also [2XSCHeegaardSplittingSmallGenus[102X
  ([14X6.9-29[114X)  for  the  calculation  of  a Heegaard splitting of small genus and
  [2XSCIsHeegaardSplitting[102X  ([14X6.9-40[114X)  for a test whether or not a given splitting
  defines a Heegaard splitting.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> M:=SCSeriesBdHandleBody(3,12);;[128X[104X
    [4X[28X gap> list:=SCHeegaardSplitting(M);[128X[104X
    [4X[28X [ 1, [ [ 1, 2, 3, 5, 9 ], [ 4, 6, 7, 8, 10, 11, 12 ] ], "arbitrary" ][128X[104X
    [4X[28X gap> sl:=SCSlicing(M,list[2]);[128X[104X
    [4X[28X <NormalSurface: slicing [ [ 1, 2, 3, 5, 9 ], [ 4, 6, 7, 8, 10, 11, 12 ] ] of S\[128X[104X
    [4X[28X phere bundle S^2 x S^1 | dim = 2>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-31 SCHomologyClassic[101X
  
  [33X[1;0Y[29X[2XSCHomologyClassic[102X( [3Xcomplex[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya list of pairs of the form [10X[ integer, list ][110X.[133X
  
  [33X[0;0YComputes  the  integral  simplicial  homology groups of a simplicial complex
  [3Xcomplex[103X  (internally calls the function [10XSimplicialHomology(complex.FacetsEx)[110X
  from the [5Xhomology[105X package, see [DHSW11]).[133X
  
  [33X[0;0YIf  the  [5Xhomology[105X package is not available, this function call falls back to
  [2XSCHomologyInternal[102X  ([14X8.1-5[114X).  The output is a list of homology groups of the
  form  [22X[H_0,....,H_d][122X, where [22Xd[122X is the dimension of [3Xcomplex[103X. The format of the
  homology  groups  [22XH_i[122X  is  given in terms of their maximal cyclic subgroups,
  i.e. a homology group [22XH_i≅ Z^f + Z / t_1 Z × dots × Z / t_n Z[122X is returned in
  form  of  a list [22X[ f, [t_1,...,t_n] ][122X, where [22Xf[122X is the (integer) free part of
  [22XH_i[122X  and  [22Xt_i[122X  denotes the torsion parts of [22XH_i[122X ordered in weakly increasing
  size.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("K^2");[128X[104X
    [4X[28X [ [ 18, "K^2 (VT)" ], [ 221, "K^2 (VT)" ] ][128X[104X
    [4X[28X gap> kleinBottle:=SCLib.Load(last[1][1]);;[128X[104X
    [4X[28X gap> kleinBottle.Homology;          [128X[104X
    [4X[28X [ [ 0, [  ] ], [ 1, [ 2 ] ], [ 0, [  ] ] ][128X[104X
    [4X[28X gap> SCLib.SearchByName("L_"){[1..10]};[128X[104X
    [4X[28X [ [ 123, "L_3_1" ], [ 265, "L_4_1" ], [ 289, "L_5_2" ], [128X[104X
    [4X[28X   [ 368, "(S^2~S^1)#L_3_1" ], [ 369, "(S^2xS^1)#L_3_1" ], [ 400, "L_5_1" ], [128X[104X
    [4X[28X   [ 403, "(S^2~S^1)#2#L_3_1" ], [ 406, "(S^2xS^1)#2#L_3_1" ], [128X[104X
    [4X[28X   [ 496, "L_7_2" ], [ 498, "L_8_3" ] ][128X[104X
    [4X[28X gap> c:=SCConnectedSum(SCLib.Load(last[9][1]),[128X[104X
    [4X[28X                        SCConnectedProduct(SCLib.Load(last[10][1]),2));[128X[104X
    [4X[28X > <SimplicialComplex: L_7_2#+-L_8_3#+-L_8_3 | dim = 3 | n = 40>[128X[104X
    [4X[28X gap> SCHomology(c);[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 0, [ 8, 56 ] ], [ 0, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X gap> SCFpBettiNumbers(c,2);[128X[104X
    [4X[28X [ 1, 2, 2, 1 ][128X[104X
    [4X[28X gap> SCFpBettiNumbers(c,3);[128X[104X
    [4X[28X [ 1, 0, 0, 1 ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-32 SCIncidences[101X
  
  [33X[1;0Y[29X[2XSCIncidences[102X( [3Xcomplex[103X, [3Xk[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya list of face lists upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YReturns a list of all [3Xk[103X-faces of the simplicial complex [3Xcomplex[103X. The list is
  sorted by the valence of the faces in the [3Xk[103X+1-skeleton of the complex, i. e.
  the  [22Xi[122X-th entry of the list contains all [3Xk[103X-faces of valence [22Xi[122X. The faces are
  returned in the original labeling.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[1,2,3],[2,3,4],[3,4,5],[4,5,6],[1,5,6],[1,4,6],[2,3,6]]);;[128X[104X
    [4X[28X gap> SCIncidences(c,1);[128X[104X
    [4X[28X [ [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 1, 5 ], [ 2, 4 ], [ 2, 6 ], [ 3, 5 ], [128X[104X
    [4X[28X       [ 3, 6 ] ], [ [ 1, 6 ], [ 3, 4 ], [ 4, 5 ], [ 4, 6 ], [ 5, 6 ] ], [128X[104X
    [4X[28X   [ [ 2, 3 ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-33 SCIncidencesEx[101X
  
  [33X[1;0Y[29X[2XSCIncidencesEx[102X( [3Xcomplex[103X, [3Xk[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya list of face lists upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YReturns a list of all [3Xk[103X-faces of the simplicial complex [3Xcomplex[103X. The list is
  sorted by the valence of the faces in the [3Xk[103X+1-skeleton of the complex, i. e.
  the  [22Xi[122X-th entry of the list contains all [3Xk[103X-faces of valence [22Xi[122X. The faces are
  returned in the standard labeling.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[1,2,3],[2,3,4],[3,4,5],[4,5,6],[1,5,6],[1,4,6],[2,3,6]]);;[128X[104X
    [4X[28X gap> SCIncidences(c,1);[128X[104X
    [4X[28X [ [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 1, 5 ], [ 2, 4 ], [ 2, 6 ], [ 3, 5 ], [128X[104X
    [4X[28X       [ 3, 6 ] ], [ [ 1, 6 ], [ 3, 4 ], [ 4, 5 ], [ 4, 6 ], [ 5, 6 ] ], [128X[104X
    [4X[28X   [ [ 2, 3 ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-34 SCInterior[101X
  
  [33X[1;0Y[29X[2XSCInterior[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YComputes  all  [22Xd-1[122X-faces  of  valence [22X2[122X of a simplicial complex [3Xcomplex[103X that
  fulfills  the  weak  pseudomanifold property, i. e. the function returns the
  part of the [22Xd-1[122X-skeleton of [22XC[122X that is not part of the boundary.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[1,2,3,4],[1,2,3,5],[1,2,4,5],[1,3,4,5]]);;[128X[104X
    [4X[28X gap> SCInterior(c).Facets;[128X[104X
    [4X[28X [ [ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 2, 5 ], [ 1, 3, 4 ], [ 1, 3, 5 ], [128X[104X
    [4X[28X   [ 1, 4, 5 ] ][128X[104X
    [4X[28X gap> c:=SC([[1,2,3,4]]);;[128X[104X
    [4X[28X gap> SCInterior(c).Facets;[128X[104X
    [4X[28X [  ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-35 SCIsCentrallySymmetric[101X
  
  [33X[1;0Y[29X[2XSCIsCentrallySymmetric[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YChecks  if a simplicial complex [3Xcomplex[103X is centrally symmetric, i. e. if its
  automorphism group contains a fixed point free involution.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCBdCrossPolytope(4);;[128X[104X
    [4X[28X gap> SCIsCentrallySymmetric(c);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCBdSimplex(4);;[128X[104X
    [4X[28X gap> SCIsCentrallySymmetric(c);[128X[104X
    [4X[28X false[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-36 SCIsConnected[101X
  
  [33X[1;0Y[29X[2XSCIsConnected[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YChecks if a simplicial complex [3Xcomplex[103X is connected.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCBdSimplex(1);;[128X[104X
    [4X[28X gap> SCIsConnected(c);[128X[104X
    [4X[28X false[128X[104X
    [4X[28X gap> c:=SCBdSimplex(2);;[128X[104X
    [4X[28X gap> SCIsConnected(c);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-37 SCIsEmpty[101X
  
  [33X[1;0Y[29X[2XSCIsEmpty[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YChecks  if  a  simplicial  complex  [3Xcomplex[103X  is  the  empty complex, i. e. a
  [10XSCSimplicialComplex[110X object with empty facet list.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[1]]);;[128X[104X
    [4X[28X gap> SCIsEmpty(c);[128X[104X
    [4X[28X false[128X[104X
    [4X[28X gap> c:=SC([]);;[128X[104X
    [4X[28X gap> SCIsEmpty(c);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X gap> c:=SC([[]]);;[128X[104X
    [4X[28X gap> SCIsEmpty(c);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-38 SCIsEulerianManifold[101X
  
  [33X[1;0Y[29X[2XSCIsEulerianManifold[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YChecks  whether a given simplicial complex [3Xcomplex[103X is a Eulerian manifold or
  not,   i.  e.  checks  if  all  vertex  links  of  [3Xcomplex[103X  have  the  Euler
  characteristic of a sphere. In particular the function returns [9Xfalse[109X in case
  [3Xcomplex[103X has a non-empty boundary.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCBdSimplex(4);;[128X[104X
    [4X[28X gap> SCIsEulerianManifold(c);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X gap> SCLib.SearchByName("Moebius");[128X[104X
    [4X[28X [ [ 1, "Moebius Strip" ] ][128X[104X
    [4X[28X gap> moebius:=SCLib.Load(last[1][1]); # a moebius strip[128X[104X
    [4X[28X <SimplicialComplex: Moebius Strip | dim = 2 | n = 5>[128X[104X
    [4X[28X gap> SCIsEulerianManifold(moebius);[128X[104X
    [4X[28X false[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-39 SCIsFlag[101X
  
  [33X[1;0Y[29X[2XSCIsFlag[102X( [3Xcomplex[103X, [3Xk[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YChecks  if  [3Xcomplex[103X  is flag. A connected simplicial complex of dimension at
  least  one is a flag complex if all cliques in its 1-skeleton span a face of
  the complex (cf. [Fro08]).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("RP^2");   [128X[104X
    [4X[28X [ [ 3, "RP^2 (VT)" ], [ 262, "RP^2xS^1" ] ][128X[104X
    [4X[28X gap> rp2_6:=SCLib.Load(last[1][1]);;[128X[104X
    [4X[28X gap> SCIsFlag(rp2_6);[128X[104X
    [4X[28X false[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-40 SCIsHeegaardSplitting[101X
  
  [33X[1;0Y[29X[2XSCIsHeegaardSplitting[102X( [3Xc[103X, [3Xlist[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YChecks  whether  [3Xlist[103X  defines  a  Heegaard  splitting of [3Xc[103X or not. See also
  [2XSCHeegaardSplitting[102X  ([14X6.9-30[114X) and [2XSCHeegaardSplittingSmallGenus[102X ([14X6.9-29[114X) for
  functions to compute Heegaard splittings.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCSeriesBdHandleBody(3,9);;[128X[104X
    [4X[28X gap> list:=[[1..3],[4..9]];[128X[104X
    [4X[28X [ [ 1 .. 3 ], [ 4 .. 9 ] ][128X[104X
    [4X[28X gap> SCIsHeegaardSplitting(c,list);[128X[104X
    [4X[28X false[128X[104X
    [4X[28X gap> splitting:=SCHeegaardSplitting(c);[128X[104X
    [4X[28X [ 1, [ [ 1, 2, 3, 6 ], [ 4, 5, 7, 8, 9 ] ], "arbitrary" ][128X[104X
    [4X[28X gap> SCIsHeegaardSplitting(c,splitting[2]);                                         [128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-41 SCIsHomologySphere[101X
  
  [33X[1;0Y[29X[2XSCIsHomologySphere[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YChecks  whether a simplicial complex [3Xcomplex[103X is a homology sphere, i. e. has
  the homology of a sphere, or not.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[2,3],[3,4],[4,2]]);;[128X[104X
    [4X[28X gap> SCIsHomologySphere(c);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-42 SCIsInKd[101X
  
  [33X[1;0Y[29X[2XSCIsInKd[102X( [3Xcomplex[103X, [3Xk[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X / [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YChecks  whether  the simplicial complex [3Xcomplex[103X that must be a combinatorial
  [22Xd[122X-manifold  is  in  the class [22XmathcalK^k(d)[122X, [22X1≤ k≤ ⌊fracd+12⌋[122X, of simplicial
  complexes  that  only  have [22Xk[122X-stacked spheres as vertex links, see [Eff11b].
  Note  that  it is not checked whether [3Xcomplex[103X is a combinatorial manifold --
  if  not,  the algorithm will not succeed. Returns [9Xtrue[109X / [9Xfalse[109X upon success.
  If  [9Xtrue[109X  is returned this means that [3Xcomplex[103X is at least [3Xk[103X-stacked and thus
  that  the  complex  is in the class [22XmathcalK^k(d)[122X, i.e. all vertex links are
  [10Xi[110X-stacked  spheres.  If [9Xfalse[109X is returnd the complex cannot be [3Xk[103X-stacked. In
  some cases the question can not be decided. In this case [9Xfail[109X is returned.[133X
  
  [33X[0;0YInternally  calls [2XSCIsKStackedSphere[102X ([14X9.2-5[114X) for all links. Please note that
  this  is  a  radomized  algorithm  that may give an indefinite answer to the
  membership problem.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> list:=SCLib.SearchByName("S^2~S^1"){[1..3]};;[128X[104X
    [4X[28X gap> c:=SCLib.Load(list[1][1]);;[128X[104X
    [4X[28X gap> c.AutomorphismGroup;[128X[104X
    [4X[28X Group([ (1,2,3,4,5,6,7,8,9), (1,3)(4,9)(5,8)(6,7) ])[128X[104X
    [4X[28X gap> SCIsInKd(c,1);[128X[104X
    [4X[28X #I  SCIsKStackedSphere: checking if complex is a 1-stacked sphere...[128X[104X
    [4X[28X #I  SCIsKStackedSphere: try 1/1[128X[104X
    [4X[28X #I  SCIsKStackedSphere: complex is a 1-stacked sphere.[128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-43 SCIsKNeighborly[101X
  
  [33X[1;0Y[29X[2XSCIsKNeighborly[102X( [3Xcomplex[103X, [3Xk[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("RP^2");   [128X[104X
    [4X[28X [ [ 3, "RP^2 (VT)" ], [ 262, "RP^2xS^1" ] ][128X[104X
    [4X[28X gap> rp2_6:=SCLib.Load(last[1][1]);;[128X[104X
    [4X[28X gap> SCFVector(rp2_6);[128X[104X
    [4X[28X [ 6, 15, 10 ][128X[104X
    [4X[28X gap> SCIsKNeighborly(rp2_6,2);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X gap> SCIsKNeighborly(rp2_6,3);[128X[104X
    [4X[28X false[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-44 SCIsOrientable[101X
  
  [33X[1;0Y[29X[2XSCIsOrientable[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YChecks  if  a simplicial complex [3Xcomplex[103X, satisfying the weak pseudomanifold
  property, is orientable.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCBdCrossPolytope(4);;[128X[104X
    [4X[28X gap> SCIsOrientable(c);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-45 SCIsPseudoManifold[101X
  
  [33X[1;0Y[29X[2XSCIsPseudoManifold[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YChecks  if  a  simplicial  complex  [3Xcomplex[103X fulfills the weak pseudomanifold
  property,  i.  e.  if  every  [22Xd-1[122X-face  of [3Xcomplex[103X is contained in at most [22X2[122X
  facets.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[1,2,3],[1,2,4],[1,3,4],[2,3,4],[1,5,6],[1,5,7],[1,6,7],[5,6,7]]);;[128X[104X
    [4X[28X gap> SCIsPseudoManifold(c);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X gap> c:=SC([[1,2],[2,3],[3,1],[1,4],[4,5],[5,1]]);;[128X[104X
    [4X[28X gap> SCIsPseudoManifold(c);[128X[104X
    [4X[28X false[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-46 SCIsPure[101X
  
  [33X[1;0Y[29X[2XSCIsPure[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya boolean upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YChecks if a simplicial complex [3Xcomplex[103X is pure.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[1,2], [1,4], [2,4], [2,3,4]]);;[128X[104X
    [4X[28X gap> SCIsPure(c);[128X[104X
    [4X[28X false[128X[104X
    [4X[28X gap> c:=SC([[1,2], [1,4], [2,4]]);;[128X[104X
    [4X[28X gap> SCIsPure(c);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-47 SCIsShellable[101X
  
  [33X[1;0Y[29X[2XSCIsShellable[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YThe  simplicial  complex  [3Xcomplex[103X  must be pure, strongly connected and must
  fulfill  the  weak  pseudomanifold  property  with  non-empty  boundary (cf.
  [2XSCBoundary[102X ([14X6.9-7[114X)).[133X
  
  [33X[0;0YThe  function  checks whether [3Xcomplex[103X is shellable or not. An ordering [22X(F_1,
  F_2,  ...  ,  F_r)[122X  on  the  facet  list of a simplicial complex is called a
  shelling  if  and  only  if  [22XF_i  ∩ (F_1 ∪ ... ∪ F_i-1)[122X is a pure simplicial
  complex  of  dimension  [22Xd-1[122X  for all [22Xi = 1, ... , r[122X. A simplicial complex is
  called shellable, if at least one shelling exists.[133X
  
  [33X[0;0YSee [Zie95], [Pac87] to learn more about shellings.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCBdCrossPolytope(4);;       [128X[104X
    [4X[28X gap> c:=Difference(c,SC([[1,3,5,7]]));; # bounded version[128X[104X
    [4X[28X gap> SCIsShellable(c);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-48 SCIsStronglyConnected[101X
  
  [33X[1;0Y[29X[2XSCIsStronglyConnected[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YChecks  if  a simplicial complex [3Xcomplex[103X is strongly connected, i. e. if for
  any  pair  of facets [22X(hat∆,tilde∆)[122X there exists a sequence of facets [22X( ∆_1 ,
  ...  ,  ∆_k )[122X with [22X∆_1 = hat∆[122X and [22X∆_k = tilde∆[122X and dim[22X(∆_i , ∆_i+1 ) = d - 1[122X
  for all [22X1 ≤ i ≤ k - 1[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[1,2,3],[1,2,4],[1,3,4],[2,3,4], [1,5,6],[1,5,7],[1,6,7],[5,6,7]]);[128X[104X
    [4X[28X <SimplicialComplex: unnamed complex 27 | dim = 2 | n = 7>[128X[104X
    [4X[28X gap> SCIsConnected(c);        [128X[104X
    [4X[28X true[128X[104X
    [4X[28X gap> SCIsStronglyConnected(c);                                                [128X[104X
    [4X[28X false[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-49 SCMinimalNonFaces[101X
  
  [33X[1;0Y[29X[2XSCMinimalNonFaces[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya list of face lists upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes all missing proper faces of a simplicial complex [3Xcomplex[103X by calling
  [2XSCMinimalNonFacesEx[102X  ([14X6.9-50[114X).  The  simplices  are returned in the original
  labeling of [3Xcomplex[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCFromFacets(["abc","abd"]);;[128X[104X
    [4X[28X gap> SCMinimalNonFaces(c);           [128X[104X
    [4X[28X [ [  ], [ "cd" ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-50 SCMinimalNonFacesEx[101X
  
  [33X[1;0Y[29X[2XSCMinimalNonFacesEx[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya list of face lists upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YComputes  all missing proper faces of a simplicial complex [3Xcomplex[103X, i.e. the
  missing  [22X(i+1)[122X-tuples  in the [22Xi[122X-dimensional skeleton of a [3Xcomplex[103X. A missing
  [22Xi+1[122X-tuple  is  not listed if it only consists of missing [22Xi[122X-tuples. Note that
  whenever  [3Xcomplex[103X  is  [22Xk[122X-neighborly  the  first  [22Xk+1[122X  entries are empty. The
  simplices  are  returned  in  the standard labeling [22X1,dots,n[122X, where [22Xn[122X is the
  number of vertices of [3Xcomplex[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("T^2"){[1..10]}; [128X[104X
    [4X[28X [ [ 4, "T^2 (VT)" ], [ 5, "T^2 (VT)" ], [ 9, "T^2 (VT)" ], [ 10, "T^2 (VT)" ],[128X[104X
    [4X[28X   [ 17, "T^2 (VT)" ], [ 20, "(T^2)#2" ], [ 24, "(T^2)#3" ], [128X[104X
    [4X[28X   [ 41, "T^2 (VT)" ], [ 44, "(T^2)#4" ], [ 65, "T^2 (VT)" ] ][128X[104X
    [4X[28X gap> torus:=SCLib.Load(last[1][1]);;[128X[104X
    [4X[28X gap> SCFVector(torus);[128X[104X
    [4X[28X [ 7, 21, 14 ][128X[104X
    [4X[28X gap> SCMinimalNonFacesEx(torus);[128X[104X
    [4X[28X [ [  ], [  ] ][128X[104X
    [4X[28X gap> SCMinimalNonFacesEx(SCBdCrossPolytope(4));[128X[104X
    [4X[28X [ [  ], [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ], [ 7, 8 ] ], [  ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-51 SCNeighborliness[101X
  
  [33X[1;0Y[29X[2XSCNeighborliness[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya positive integer upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YReturns   [22Xk[122X  if  a  simplicial  complex  [3Xcomplex[103X  is  [22Xk[122X-neighborly  but  not
  [22X(k+1)[122X-neighborly. See also [2XSCIsKNeighborly[102X ([14X6.9-43[114X).[133X
  
  [33X[0;0YNote that every complex is at least [22X1[122X-neighborly.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCBdSimplex(4);;[128X[104X
    [4X[28X gap> SCNeighborliness(c);[128X[104X
    [4X[28X 4[128X[104X
    [4X[28X gap> c:=SCBdCrossPolytope(4);;[128X[104X
    [4X[28X gap> SCNeighborliness(c);[128X[104X
    [4X[28X 1[128X[104X
    [4X[28X gap> SCLib.SearchByAttribute("F[3]=Binomial(F[1],3) and Dim=4");[128X[104X
    [4X[28X [ [ 16, "CP^2 (VT)" ], [ 520, "K3_16" ] ][128X[104X
    [4X[28X gap> cp2:=SCLib.Load(last[1][1]);;[128X[104X
    [4X[28X gap> SCNeighborliness(cp2);[128X[104X
    [4X[28X 3[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-52 SCNumFaces[101X
  
  [33X[1;0Y[29X[2XSCNumFaces[102X( [3Xcomplex[103X[, [3Xi[103X] ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Yan integer or a list of integers upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YIf  [3Xi[103X  is not specified the function computes the [22Xf[122X-vector of the simplicial
  complex  [3Xcomplex[103X (cf. [2XSCFVector[102X ([14X6.9-14[114X)). If the optional integer parameter
  [3Xi[103X  is  passed,  only  the  [3Xi[103X-th  position  of  the  [22Xf[122X-vector  of  [3Xcomplex[103X is
  calculated.  In  any  case  a  memory-saving implicit algorithm is used that
  avoids calculating the face lattice of the complex.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> complex:=SC([[1,2,3], [1,2,4], [1,3,4], [2,3,4]]);;[128X[104X
    [4X[28X gap> SCNumFaces(complex,1);[128X[104X
    [4X[28X 6[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-53 SCOrientation[101X
  
  [33X[1;0Y[29X[2XSCOrientation[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya  list  of  the  type  [22X{  ±  1  }^f_d[122X  or  [10X[ ][110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YThis  function  tries to compute an orientation of a pure simplicial complex
  [3Xcomplex[103X  that  fulfills  the  weak  pseudomanifold  property.  If [3Xcomplex[103X is
  orientable,  an orientation in form of a list of orientations for the facets
  of [3Xcomplex[103X is returned, otherwise an empty set.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCBdCrossPolytope(4);;[128X[104X
    [4X[28X gap> SCOrientation(c);[128X[104X
    [4X[28X [ 1, -1, -1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1 ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-54 SCSkel[101X
  
  [33X[1;0Y[29X[2XSCSkel[102X( [3Xcomplex[103X, [3Xk[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya face list or a list of face lists upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YIf  [3Xk[103X  is  an integer, the [3Xk[103X-skeleton of a simplicial complex [3Xcomplex[103X, i. e.
  all  [3Xk[103X-faces  of  [3Xcomplex[103X,  is  computed.  If  [3Xk[103X  is  a  list, a list of all
  [3Xk[103X[10X[i][110X-faces  of  [3Xcomplex[103X  for each entry [3Xk[103X[10X[i][110X (which has to be an integer) is
  returned. The faces are returned in the original labeling.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("RP^2"); [128X[104X
    [4X[28X [ [ 3, "RP^2 (VT)" ], [ 262, "RP^2xS^1" ] ][128X[104X
    [4X[28X gap> rp2_6:=SCLib.Load(last[1][1]);;      [128X[104X
    [4X[28X gap> rp2_6:=SC(rp2_6.Facets+10);;[128X[104X
    [4X[28X gap> SCSkelEx(rp2_6,1);[128X[104X
    [4X[28X [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 1, 5 ], [ 1, 6 ], [ 2, 3 ], [ 2, 4 ], [128X[104X
    [4X[28X   [ 2, 5 ], [ 2, 6 ], [ 3, 4 ], [ 3, 5 ], [ 3, 6 ], [ 4, 5 ], [ 4, 6 ], [128X[104X
    [4X[28X   [ 5, 6 ] ][128X[104X
    [4X[28X gap> SCSkel(rp2_6,1);  [128X[104X
    [4X[28X [ [ 11, 12 ], [ 11, 13 ], [ 11, 14 ], [ 11, 15 ], [ 11, 16 ], [ 12, 13 ], [128X[104X
    [4X[28X   [ 12, 14 ], [ 12, 15 ], [ 12, 16 ], [ 13, 14 ], [ 13, 15 ], [ 13, 16 ], [128X[104X
    [4X[28X   [ 14, 15 ], [ 14, 16 ], [ 15, 16 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-55 SCSkelEx[101X
  
  [33X[1;0Y[29X[2XSCSkelEx[102X( [3Xcomplex[103X, [3Xk[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya face list or a list of face lists upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YIf  [3Xk[103X  is  an integer, the [3Xk[103X-skeleton of a simplicial complex [3Xcomplex[103X, i. e.
  all  [3Xk[103X-faces  of  [3Xcomplex[103X,  is  computed.  If  [3Xk[103X  is  a  list, a list of all
  [3Xk[103X[10X[i][110X-faces  of  [3Xcomplex[103X  for each entry [3Xk[103X[10X[i][110X (which has to be an integer) is
  returned. The faces are returned in the standard labeling.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("RP^2"); [128X[104X
    [4X[28X [ [ 3, "RP^2 (VT)" ], [ 262, "RP^2xS^1" ] ][128X[104X
    [4X[28X gap> rp2_6:=SCLib.Load(last[1][1]);;      [128X[104X
    [4X[28X gap> rp2_6:=SC(rp2_6.Facets+10);;[128X[104X
    [4X[28X gap> SCSkelEx(rp2_6,1);[128X[104X
    [4X[28X [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 1, 5 ], [ 1, 6 ], [ 2, 3 ], [ 2, 4 ], [128X[104X
    [4X[28X   [ 2, 5 ], [ 2, 6 ], [ 3, 4 ], [ 3, 5 ], [ 3, 6 ], [ 4, 5 ], [ 4, 6 ], [128X[104X
    [4X[28X   [ 5, 6 ] ][128X[104X
    [4X[28X gap> SCSkel(rp2_6,1);  [128X[104X
    [4X[28X [ [ 11, 12 ], [ 11, 13 ], [ 11, 14 ], [ 11, 15 ], [ 11, 16 ], [ 12, 13 ], [128X[104X
    [4X[28X   [ 12, 14 ], [ 12, 15 ], [ 12, 16 ], [ 13, 14 ], [ 13, 15 ], [ 13, 16 ], [128X[104X
    [4X[28X   [ 14, 15 ], [ 14, 16 ], [ 15, 16 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.9-56 SCSpanningTree[101X
  
  [33X[1;0Y[29X[2XSCSpanningTree[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YComputes  a  spanning tree of a connected simplicial complex [3Xcomplex[103X using a
  greedy algorithm.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([["a","b","c"],["a","b","d"], ["a","c","d"], ["b","c","d"]]);;[128X[104X
    [4X[28X gap> s:=SCSpanningTree(c);[128X[104X
    [4X[28X <SimplicialComplex: spanning tree of unnamed complex 1 | dim = 1 | n = 4>[128X[104X
    [4X[28X gap> s.Facets;[128X[104X
    [4X[28X [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  
  [1X6.10 [33X[0;0YOperations on simplicial complexes[133X[101X
  
  [33X[0;0YThe  following functions perform operations on simplicial complexes. Most of
  them  return  simplicial complexes. Thus, this section is closely related to
  the  Sections  [14X6.6[114X  ''Generate  new  complexes from old''. However, the data
  generated  here  is  rather  seen  as an intrinsic attribute of the original
  complex and not as an independent complex.[133X
  
  [1X6.10-1 SCAlexanderDual[101X
  
  [33X[1;0Y[29X[2XSCAlexanderDual[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YThe Alexander dual of a simplicial complex [3Xcomplex[103X with set of vertices [22XV[122X is
  the simplicial complex where any subset of [22XV[122X spans a face if and only if its
  complement in [22XV[122X is a non-face of [3Xcomplex[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[1,2],[2,3],[3,4],[4,1]]);;[128X[104X
    [4X[28X gap> dual:=SCAlexanderDual(c);;[128X[104X
    [4X[28X gap> dual.F;[128X[104X
    [4X[28X [ 4, 2 ][128X[104X
    [4X[28X gap> dual.IsConnected;[128X[104X
    [4X[28X false[128X[104X
    [4X[28X gap> dual.Facets;[128X[104X
    [4X[28X [ [ 1, 3 ], [ 2, 4 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-2 SCClose[101X
  
  [33X[1;0Y[29X[2XSCClose[102X( [3Xcomplex[103X[, [3Xapex[103X] ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YCloses a simplicial complex [3Xcomplex[103X by building a cone over its boundary. If
  [3Xapex[103X  is  specified  it is assigned to the apex of the cone and the original
  vertex labeling of [3Xcomplex[103X is preserved, otherwise an arbitrary vertex label
  is chosen and [3Xcomplex[103X is returned in the standard labeling.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> s:=SCSimplex(5);;                                       [128X[104X
    [4X[28X gap> b:=SCSimplex(5);;[128X[104X
    [4X[28X gap> s:=SCClose(b,13);;[128X[104X
    [4X[28X gap> SCIsIsomorphic(s,SCBdSimplex(6));                       [128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-3 SCCone[101X
  
  [33X[1;0Y[29X[2XSCCone[102X( [3Xcomplex[103X, [3Xapex[103X ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YIf  the  second  argument  is  passed  every facet of the simplicial complex
  [3Xcomplex[103X  is  united  with  [3Xapex[103X. If not, an arbitrary vertex label [22Xv[122X is used
  (which  is  not  a vertex of [3Xcomplex[103X). In the first case the vertex labeling
  remains  unchanged.  In the second case the function returns the new complex
  in  the  standard  vertex labeling from [22X1[122X to [22Xn+1[122X and the apex of the cone is
  [22Xn+1[122X.[133X
  
  [33X[0;0YIf called with a facet list instead of a [10XSCSimplicialComplex[110X object and [3Xapex[103X
  is not specified, internally falls back to the homology package [DHSW11], if
  available.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("RP^3");[128X[104X
    [4X[28X [ [ 45, "RP^3" ], [ 114, "RP^3=L(2,1) (VT)" ], [ 237, "(S^2xS^1)#RP^3" ], [128X[104X
    [4X[28X   [ 238, "(S^2~S^1)#RP^3" ], [ 263, "(S^2xS^1)#2#RP^3" ], [128X[104X
    [4X[28X   [ 264, "(S^2~S^1)#2#RP^3" ], [ 366, "RP^3#RP^3" ], [128X[104X
    [4X[28X   [ 382, "RP^3=L(2,1) (VT)" ], [ 399, "(S^2~S^1)#3#RP^3" ], [128X[104X
    [4X[28X   [ 402, "(S^2xS^1)#3#RP^3" ], [ 417, "RP^3=L(2,1) (VT)" ], [128X[104X
    [4X[28X   [ 502, "(S^2~S^1)#4#RP^3" ], [ 503, "(S^2xS^1)#4#RP^3" ], [128X[104X
    [4X[28X   [ 531, "(S^2xS^1)#5#RP^3" ], [ 532, "(S^2~S^1)#5#RP^3" ] ][128X[104X
    [4X[28X gap> rp3:=SCLib.Load(last[1][1]);;[128X[104X
    [4X[28X gap> rp3.F;[128X[104X
    [4X[28X [ 11, 51, 80, 40 ][128X[104X
    [4X[28X gap> cone:=SCCone(rp3);;[128X[104X
    [4X[28X gap> cone.F;[128X[104X
    [4X[28X [ 12, 62, 131, 120, 40 ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> s:=SCBdSimplex(4)+12;;[128X[104X
    [4X[28X gap> s.Facets;             [128X[104X
    [4X[28X [ [ 13, 14, 15, 16 ], [ 13, 14, 15, 17 ], [ 13, 14, 16, 17 ], [128X[104X
    [4X[28X   [ 13, 15, 16, 17 ], [ 14, 15, 16, 17 ] ][128X[104X
    [4X[28X gap> cc:=SCCone(s,13);;    [128X[104X
    [4X[28X gap> cc:=SCCone(s,12);;[128X[104X
    [4X[28X gap> cc.Facets;[128X[104X
    [4X[28X [ [ 12, 13, 14, 15, 16 ], [ 12, 13, 14, 15, 17 ], [ 12, 13, 14, 16, 17 ], [128X[104X
    [4X[28X   [ 12, 13, 15, 16, 17 ], [ 12, 14, 15, 16, 17 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-4 SCDeletedJoin[101X
  
  [33X[1;0Y[29X[2XSCDeletedJoin[102X( [3Xcomplex1[103X, [3Xcomplex2[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YCalculates  the simplicial deleted join of the simplicial complexes [3Xcomplex1[103X
  and  [3Xcomplex2[103X.  If called with a facet list instead of a [10XSCSimplicialComplex[110X
  object, the function internally falls back to the [5Xhomology[105X package [DHSW11],
  if available.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> deljoin:=SCDeletedJoin(SCBdSimplex(3),SCBdSimplex(3));[128X[104X
    [4X[28X <SimplicialComplex: S^2_4 deljoin S^2_4 | dim = 3 | n = 8>[128X[104X
    [4X[28X gap> bddeljoin:=SCBoundary(deljoin);;[128X[104X
    [4X[28X gap> bddeljoin.Homology;[128X[104X
    [4X[28X [ [ 1, [  ] ], [ 0, [  ] ], [ 2, [  ] ] ][128X[104X
    [4X[28X gap> deljoin.Facets;[128X[104X
    [4X[28X [ [ [ 1, 1 ], [ 2, 1 ], [ 3, 1 ], [ 4, 2 ] ], [128X[104X
    [4X[28X   [ [ 1, 1 ], [ 2, 1 ], [ 3, 2 ], [ 4, 1 ] ], [128X[104X
    [4X[28X   [ [ 1, 1 ], [ 2, 1 ], [ 3, 2 ], [ 4, 2 ] ], [128X[104X
    [4X[28X   [ [ 1, 1 ], [ 2, 2 ], [ 3, 1 ], [ 4, 1 ] ], [128X[104X
    [4X[28X   [ [ 1, 1 ], [ 2, 2 ], [ 3, 1 ], [ 4, 2 ] ], [128X[104X
    [4X[28X   [ [ 1, 1 ], [ 2, 2 ], [ 3, 2 ], [ 4, 1 ] ], [128X[104X
    [4X[28X   [ [ 1, 1 ], [ 2, 2 ], [ 3, 2 ], [ 4, 2 ] ], [128X[104X
    [4X[28X   [ [ 1, 2 ], [ 2, 1 ], [ 3, 1 ], [ 4, 1 ] ], [128X[104X
    [4X[28X   [ [ 1, 2 ], [ 2, 1 ], [ 3, 1 ], [ 4, 2 ] ], [128X[104X
    [4X[28X   [ [ 1, 2 ], [ 2, 1 ], [ 3, 2 ], [ 4, 1 ] ], [128X[104X
    [4X[28X   [ [ 1, 2 ], [ 2, 1 ], [ 3, 2 ], [ 4, 2 ] ], [128X[104X
    [4X[28X   [ [ 1, 2 ], [ 2, 2 ], [ 3, 1 ], [ 4, 1 ] ], [128X[104X
    [4X[28X   [ [ 1, 2 ], [ 2, 2 ], [ 3, 1 ], [ 4, 2 ] ], [128X[104X
    [4X[28X   [ [ 1, 2 ], [ 2, 2 ], [ 3, 2 ], [ 4, 1 ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-5 SCDifference[101X
  
  [33X[1;0Y[29X[2XSCDifference[102X( [3Xcomplex1[103X, [3Xcomplex2[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YForms  the  ``difference'' of two simplicial complexes [3Xcomplex1[103X and [3Xcomplex2[103X
  as  the  simplicial complex formed by the difference of the face lattices of
  [3Xcomplex1[103X  minus  [3Xcomplex2[103X.  The two arguments are not altered. Note: for the
  difference  process  the  vertex  labelings  of the complexes are taken into
  account,     see    also    [2XOperation    Difference    (SCSimplicialComplex,
  SCSimplicialComplex)[102X ([14X5.3-2[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCBdSimplex(3);;[128X[104X
    [4X[28X gap> d:=SC([[1,2,3]]);;[128X[104X
    [4X[28X gap> disc:=SCDifference(c,d);;[128X[104X
    [4X[28X gap> disc.Facets;[128X[104X
    [4X[28X [ [ 1, 2, 4 ], [ 1, 3, 4 ], [ 2, 3, 4 ] ][128X[104X
    [4X[28X gap> empty:=SCDifference(d,c);;[128X[104X
    [4X[28X gap> empty.Dim;[128X[104X
    [4X[28X -1[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-6 SCFillSphere[101X
  
  [33X[1;0Y[29X[2XSCFillSphere[102X( [3Xcomplex[103X[, [3Xvertex[103X] ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise .[133X
  
  [33X[0;0YFills  the  given simplicial sphere [3Xcomplex[103X by forming the suspension of the
  anti  star of [3Xvertex[103X over [3Xvertex[103X. This is a triangulated [22X(d+1)[122X-ball with the
  boundary  [3Xcomplex[103X,  see  [BD08].  If  the  optional  argument  [3Xvertex[103X is not
  supplied, the first vertex of [3Xcomplex[103X is chosen.[133X
  
  [33X[0;0YNote that it is not checked whether [3Xcomplex[103X really is a simplicial sphere --
  this has to be done by the user![133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("S^4");[128X[104X
    [4X[28X [ [ 36, "S^4 (VT)" ], [ 37, "S^4 (VT)" ], [ 38, "S^4 (VT)" ], [128X[104X
    [4X[28X   [ 117, "S^4 (VT)" ], [ 203, "S^4~S^1 (VT)" ], [ 282, "S^4xS^1 (VT)" ], [128X[104X
    [4X[28X   [ 329, "S^4xS^1 (VT)" ], [ 330, "S^4~S^1 (VT)" ], [ 331, "S^4xS^1 (VT)" ], [128X[104X
    [4X[28X   [ 332, "S^4~S^1 (VT)" ], [ 395, "S^4~S^1 (VT)" ], [ 396, "S^4 (VT)" ], [128X[104X
    [4X[28X   [ 450, "S^4 (VT)" ], [ 451, "S^4~S^1 (VT)" ], [ 452, "S^4~S^1 (VT)" ], [128X[104X
    [4X[28X   [ 453, "S^4~S^1 (VT)" ], [ 454, "S^4~S^1 (VT)" ], [ 455, "S^4~S^1 (VT)" ], [128X[104X
    [4X[28X   [ 458, "S^4~S^1 (VT)" ], [ 459, "S^4~S^1 (VT)" ], [ 460, "S^4~S^1 (VT)" ] ][128X[104X
    [4X[28X gap> s:=SCLib.Load(last[1][1]);;[128X[104X
    [4X[28X gap> filled:=SCFillSphere(s);[128X[104X
    [4X[28X <SimplicialComplex: FilledSphere(S^4 (VT)) at vertex [ 1 ] | dim = 5 | n = 10>[128X[104X
    [4X[28X gap> SCHomology(filled);[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 0, [  ] ], [ 0, [  ] ], [ 0, [  ] ], [ 0, [  ] ], [128X[104X
    [4X[28X   [ 0, [  ] ] ][128X[104X
    [4X[28X gap> SCCollapseGreedy(filled);[128X[104X
    [4X[28X <SimplicialComplex: collapsed version of FilledSphere(S^4 (VT)) at vertex [ 1 \[128X[104X
    [4X[28X ] | dim = 0 | n = 1>[128X[104X
    [4X[28X gap> bd:=SCBoundary(filled);;[128X[104X
    [4X[28X gap> bd=s;[128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-7 SCHandleAddition[101X
  
  [33X[1;0Y[29X[2XSCHandleAddition[102X( [3Xcomplex[103X, [3Xf1[103X, [3Xf2[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial complex of type [10XSCSimplicialComplex[110X, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YReturns  a  simplicial complex obtained by identifying the vertices of facet
  [3Xf1[103X  with  the ones from facet [3Xf2[103X in [3Xcomplex[103X. A combinatorial handle addition
  is  possible,  whenever  we have d[22X(v,w) ≥ 3[122X for any two vertices [22Xv ∈[122X[3Xf1[103X and [22Xw
  ∈[122X[3Xf2[103X,  where  d[22X(⋅,⋅)[122X  is  the  length  of the shortest path from [22Xv[122X to [22Xw[122X. This
  condition  is  not  checked  by  this  algorithm.  See  [BD11]  for  further
  information.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[1,2,4],[2,4,5],[2,3,5],[3,5,6],[1,3,6],[1,4,6]]);;[128X[104X
    [4X[28X gap> c:=SCUnion(c,SCUnion(SCCopy(c)+3,SCCopy(c)+6));;[128X[104X
    [4X[28X gap> c:=SCUnion(c,SC([[1,2,3],[10,11,12]]));;[128X[104X
    [4X[28X gap> c.Facets;[128X[104X
    [4X[28X [ [ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 3, 6 ], [ 1, 4, 6 ], [ 2, 3, 5 ], [128X[104X
    [4X[28X   [ 2, 4, 5 ], [ 3, 5, 6 ], [ 4, 5, 7 ], [ 4, 6, 9 ], [ 4, 7, 9 ], [128X[104X
    [4X[28X   [ 5, 6, 8 ], [ 5, 7, 8 ], [ 6, 8, 9 ], [ 7, 8, 10 ], [ 7, 9, 12 ], [128X[104X
    [4X[28X   [ 7, 10, 12 ], [ 8, 9, 11 ], [ 8, 10, 11 ], [ 9, 11, 12 ], [ 10, 11, 12 ] ][128X[104X
    [4X[28X gap> c.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 0, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X gap> torus:=SCHandleAddition(c,[1,2,3],[10,11,12]);;[128X[104X
    [4X[28X gap> torus.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 2, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X gap> ism:=SCIsManifold(torus);;[128X[104X
    [4X[28X gap> ism;[128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-8 SCIntersection[101X
  
  [33X[1;0Y[29X[2XSCIntersection[102X( [3Xcomplex1[103X, [3Xcomplex2[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YForms the ``intersection'' of two simplicial complexes [3Xcomplex1[103X and [3Xcomplex2[103X
  as the simplicial complex formed by the intersection of the face lattices of
  [3Xcomplex1[103X  and  [3Xcomplex2[103X.  The  two  arguments are not altered. Note: for the
  intersection  process  the  vertex labelings of the complexes are taken into
  account.    See    also    [2XOperation    Intersection   (SCSimplicialComplex,
  SCSimplicialComplex)[102X ([14X5.3-3[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCBdSimplex(3);;        [128X[104X
    [4X[28X gap> d:=SCBdSimplex(3)+1;;      [128X[104X
    [4X[28X gap> d.Facets;[128X[104X
    [4X[28X [ [ 2, 3, 4 ], [ 2, 3, 5 ], [ 2, 4, 5 ], [ 3, 4, 5 ] ][128X[104X
    [4X[28X gap> c:=SCBdSimplex(3);;  [128X[104X
    [4X[28X gap> d:=SCBdSimplex(3);;  [128X[104X
    [4X[28X gap> d:=SCMove(d,[[1,2,3],[]])+1;;[128X[104X
    [4X[28X gap> s1:=SCIntersection(c,d);;[128X[104X
    [4X[28X gap> s1.Facets;               [128X[104X
    [4X[28X [ [ 2, 3 ], [ 2, 4 ], [ 3, 4 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-9 SCIsIsomorphic[101X
  
  [33X[1;0Y[29X[2XSCIsIsomorphic[102X( [3Xcomplex1[103X, [3Xcomplex2[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YThe function returns [9Xtrue[109X, if the simplicial complexes [3Xcomplex1[103X and [3Xcomplex2[103X
  are combinatorially isomorphic, [9Xfalse[109X if not.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c1:=SC([[11,12,13],[11,12,14],[11,13,14],[12,13,14]]);;[128X[104X
    [4X[28X gap> c2:=SCBdSimplex(3);;[128X[104X
    [4X[28X gap> SCIsIsomorphic(c1,c2);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X gap> c3:=SCBdCrossPolytope(3);;[128X[104X
    [4X[28X gap> SCIsIsomorphic(c1,c3);[128X[104X
    [4X[28X false[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-10 SCIsSubcomplex[101X
  
  [33X[1;0Y[29X[2XSCIsSubcomplex[102X( [3Xsc1[103X, [3Xsc2[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YReturns  [9Xtrue[109X  if  the simplicial complex [3Xsc2[103X is a sub-complex of simplicial
  complex  [3Xsc1[103X,  [9Xfalse[109X otherwise. If dim([3Xsc2[103X) [22X≤[122X dim([3Xsc1[103X) the facets of [3Xsc2[103X are
  compared  with  the dim([3Xsc2[103X)-skeleton of [3Xsc1[103X. Only works for pure simplicial
  complexes.  Note:  for  the intersection process the vertex labelings of the
  complexes are taken into account.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByAttribute("F[1]=10"){[1..10]};[128X[104X
    [4X[28X [ [ 17, "T^2 (VT)" ], [ 18, "K^2 (VT)" ], [ 19, "S^3 (VT)" ], [128X[104X
    [4X[28X   [ 20, "(T^2)#2" ], [ 21, "S^3 (VT)" ], [ 22, "S^3 (VT)" ], [128X[104X
    [4X[28X   [ 23, "S^2xS^1 (VT)" ], [ 24, "(T^2)#3" ], [ 25, "(P^2)#7 (VT)" ], [128X[104X
    [4X[28X   [ 26, "S^2~S^1 (VT)" ] ][128X[104X
    [4X[28X gap> k:=SCLib.Load(last[1][1]);;[128X[104X
    [4X[28X gap> c:=SCBdSimplex(9);;[128X[104X
    [4X[28X gap> k.F;[128X[104X
    [4X[28X [ 10, 30, 20 ][128X[104X
    [4X[28X gap> c.F;[128X[104X
    [4X[28X [ 10, 45, 120, 210, 252, 210, 120, 45, 10 ][128X[104X
    [4X[28X gap> SCIsSubcomplex(c,k);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X gap> SCIsSubcomplex(k,c);[128X[104X
    [4X[28X false[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-11 SCIsomorphism[101X
  
  [33X[1;0Y[29X[2XSCIsomorphism[102X( [3Xcomplex1[103X, [3Xcomplex2[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya  list  of  pairs  of  vertex  labels or [9Xfalse[109X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YReturns  an isomorphism of simplicial complex [3Xcomplex1[103X to simplicial complex
  [3Xcomplex2[103X  in  the  standard labeling if they are combinatorially isomorphic,
  [9Xfalse[109X otherwise. Internally calls [2XSCIsomorphismEx[102X ([14X6.10-12[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c1:=SC([[11,12,13],[11,12,14],[11,13,14],[12,13,14]]);;[128X[104X
    [4X[28X gap> c2:=SCBdSimplex(3);;[128X[104X
    [4X[28X gap> SCIsomorphism(c1,c2);[128X[104X
    [4X[28X [ [ 11, 1 ], [ 12, 2 ], [ 13, 3 ], [ 14, 4 ] ][128X[104X
    [4X[28X gap> SCIsomorphismEx(c1,c2);[128X[104X
    [4X[28X [ [ [ 1, 1 ], [ 2, 2 ], [ 3, 3 ], [ 4, 4 ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-12 SCIsomorphismEx[101X
  
  [33X[1;0Y[29X[2XSCIsomorphismEx[102X( [3Xcomplex1[103X, [3Xcomplex2[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya  list  of  pairs  of  vertex  labels or [9Xfalse[109X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YReturns  an isomorphism of simplicial complex [3Xcomplex1[103X to simplicial complex
  [3Xcomplex2[103X  in  the  standard labeling if they are combinatorially isomorphic,
  [9Xfalse[109X  otherwise. If the [22Xf[122X-vector and the Altshuler-Steinberg determinant of
  [3Xcomplex1[103X     and    [3Xcomplex2[103X    are    equal,    the    internal    function
  [10XSCIntFunc.SCComputeIsomorphismsEx(complex1,complex2,true)[110X is called.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c1:=SC([[11,12,13],[11,12,14],[11,13,14],[12,13,14]]);;[128X[104X
    [4X[28X gap> c2:=SCBdSimplex(3);;[128X[104X
    [4X[28X gap> SCIsomorphism(c1,c2);[128X[104X
    [4X[28X [ [ 11, 1 ], [ 12, 2 ], [ 13, 3 ], [ 14, 4 ] ][128X[104X
    [4X[28X gap> SCIsomorphismEx(c1,c2);[128X[104X
    [4X[28X [ [ [ 1, 1 ], [ 2, 2 ], [ 3, 3 ], [ 4, 4 ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-13 SCJoin[101X
  
  [33X[1;0Y[29X[2XSCJoin[102X( [3Xcomplex1[103X, [3Xcomplex2[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YCalculates  the  simplicial  join  of  the simplicial complexes [3Xcomplex1[103X and
  [3Xcomplex2[103X.  If  facet lists instead of [10XSCSimplicialComplex[110X objects are passed
  as  arguments,  the  function  internally falls back to the homology package
  [DHSW11],  if  available.  Note  that  the vertex labelings of the complexes
  passed as arguments are not propagated to the new complex.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> sphere:=SCJoin(SCBdSimplex(2),SCBdSimplex(2));[128X[104X
    [4X[28X <SimplicialComplex: S^1_3 join S^1_3 | dim = 3 | n = 6>[128X[104X
    [4X[28X gap> SCHasBoundary(sphere);[128X[104X
    [4X[28X false[128X[104X
    [4X[28X gap> sphere.Facets;[128X[104X
    [4X[28X [ [ [ 1, 1 ], [ 1, 2 ], [ 2, 1 ], [ 2, 2 ] ], [128X[104X
    [4X[28X   [ [ 1, 1 ], [ 1, 2 ], [ 2, 1 ], [ 2, 3 ] ], [128X[104X
    [4X[28X   [ [ 1, 1 ], [ 1, 2 ], [ 2, 2 ], [ 2, 3 ] ], [128X[104X
    [4X[28X   [ [ 1, 1 ], [ 1, 3 ], [ 2, 1 ], [ 2, 2 ] ], [128X[104X
    [4X[28X   [ [ 1, 1 ], [ 1, 3 ], [ 2, 1 ], [ 2, 3 ] ], [128X[104X
    [4X[28X   [ [ 1, 1 ], [ 1, 3 ], [ 2, 2 ], [ 2, 3 ] ], [128X[104X
    [4X[28X   [ [ 1, 2 ], [ 1, 3 ], [ 2, 1 ], [ 2, 2 ] ], [128X[104X
    [4X[28X   [ [ 1, 2 ], [ 1, 3 ], [ 2, 1 ], [ 2, 3 ] ], [128X[104X
    [4X[28X   [ [ 1, 2 ], [ 1, 3 ], [ 2, 2 ], [ 2, 3 ] ] ][128X[104X
    [4X[28X gap> sphere.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 0, [  ] ], [ 0, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> ball:=SCJoin(SC([[1]]),SCBdSimplex(2));[128X[104X
    [4X[28X <SimplicialComplex: unnamed complex 4 join S^1_3 | dim = 2 | n = 4>[128X[104X
    [4X[28X gap> ball.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 0, [  ] ], [ 0, [  ] ] ][128X[104X
    [4X[28X gap> ball.Facets;[128X[104X
    [4X[28X [ [ [ 1, 1 ], [ 2, 1 ], [ 2, 2 ] ], [ [ 1, 1 ], [ 2, 1 ], [ 2, 3 ] ], [128X[104X
    [4X[28X   [ [ 1, 1 ], [ 2, 2 ], [ 2, 3 ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-14 SCNeighbors[101X
  
  [33X[1;0Y[29X[2XSCNeighbors[102X( [3Xcomplex[103X, [3Xface[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya list of faces upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YIn  a simplicial complex [3Xcomplex[103X all neighbors of the [10Xk[110X-face [3Xface[103X, i. e. all
  [10Xk[110X-faces  distinct  from  [3Xface[103X intersecting with [3Xface[103X in a common [22X(k-1)[122X-face,
  are returned in the original labeling.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCFromFacets(Combinations(["a","b","c"],2));[128X[104X
    [4X[28X <SimplicialComplex: unnamed complex 22 | dim = 1 | n = 3>[128X[104X
    [4X[28X gap> SCNeighbors(c,["a","d"]);[128X[104X
    [4X[28X [ [ "a", "b" ], [ "a", "c" ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-15 SCNeighborsEx[101X
  
  [33X[1;0Y[29X[2XSCNeighborsEx[102X( [3Xcomplex[103X, [3Xface[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya list of faces upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YIn  a simplicial complex [3Xcomplex[103X all neighbors of the [10Xk[110X-face [3Xface[103X, i. e. all
  [10Xk[110X-faces  distinct  from  [3Xface[103X intersecting with [3Xface[103X in a common [22X(k-1)[122X-face,
  are returned in the standard labeling.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCFromFacets(Combinations(["a","b","c"],2));[128X[104X
    [4X[28X <SimplicialComplex: unnamed complex 21 | dim = 1 | n = 3>[128X[104X
    [4X[28X gap> SCLabels(c);[128X[104X
    [4X[28X [ "a", "b", "c" ][128X[104X
    [4X[28X gap> SCNeighborsEx(c,[1,2]);[128X[104X
    [4X[28X [ [ 1, 3 ], [ 2, 3 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-16 SCShelling[101X
  
  [33X[1;0Y[29X[2XSCShelling[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya facet list or [9Xfalse[109X upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YThe  simplicial  complex  [3Xcomplex[103X  must be pure, strongly connected and must
  fulfill  the  weak  pseudomanifold  property  with  non-empty  boundary (cf.
  [2XSCBoundary[102X ([14X6.9-7[114X)).[133X
  
  [33X[0;0YAn  ordering [22X(F_1, F_2, ... , F_r)[122X on the facet list of a simplicial complex
  is  a shelling if and only if [22XF_i ∩ (F_1 ∪ ... ∪ F_i-1)[122X is a pure simplicial
  complex of dimension [22Xd-1[122X for all [22Xi = 1, ... , r[122X.[133X
  
  [33X[0;0YThe function checks whether [3Xcomplex[103X is shellable or not. In the first case a
  permuted  version  of  the  facet  list  of  [3Xcomplex[103X  is returned encoding a
  shelling of [3Xcomplex[103X, otherwise [9Xfalse[109X is returned.[133X
  
  [33X[0;0YInternally  calls  [2XSCShellingExt[102X ([14X6.10-17[114X)[10X(complex,false,[]);[110X. To learn more
  about shellings see [Zie95], [Pac87].[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[1,2,3],[1,2,4],[1,3,4]]);;[128X[104X
    [4X[28X gap> SCShelling(c);[128X[104X
    [4X[28X [ [ [ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 3, 4 ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-17 SCShellingExt[101X
  
  [33X[1;0Y[29X[2XSCShellingExt[102X( [3Xcomplex[103X, [3Xall[103X, [3Xcheckvector[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya  list  of facet lists (if [3Xcheckvector = [][103X) or [9Xtrue[109X or [9Xfalse[109X (if
            [3Xcheckvector[103X is not empty), [9Xfail[109X otherwise.[133X
  
  [33X[0;0YThe  simplicial  complex  [3Xcomplex[103X  must  be  pure  of  dimension [22Xd[122X, strongly
  connected  and  must fulfill the weak pseudomanifold property with non-empty
  boundary (cf. [2XSCBoundary[102X ([14X6.9-7[114X)).[133X
  
  [33X[0;0YAn  ordering [22X(F_1, F_2, ... , F_r)[122X on the facet list of a simplicial complex
  is  a shelling if and only if [22XF_i ∩ (F_1 ∪ ... ∪ F_i-1)[122X is a pure simplicial
  complex of dimension [22Xd-1[122X for all [22Xi = 1, ... , r[122X.[133X
  
  [33X[0;0YIf [3Xall[103X is set to [9Xtrue[109X all possible shellings of [3Xcomplex[103X are computed. If [3Xall[103X
  is set to [9Xfalse[109X, at most one shelling is computed.[133X
  
  [33X[0;0YEvery  shelling  is  represented  as a permuted version of the facet list of
  [3Xcomplex[103X.  The list [3Xcheckvector[103X encodes a shelling in a shorter form. It only
  contains  the  indices  of the facets. If an order of indices is assigned to
  [3Xcheckvector[103X the function tests whether it is a valid shelling or not.[133X
  
  [33X[0;0YSee [Zie95], [Pac87] to learn more about shellings.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCBdSimplex(4);;[128X[104X
    [4X[28X gap> c:=SCDifference(c,SC([c.Facets[1]]));; # bounded version[128X[104X
    [4X[28X gap> all:=SCShellingExt(c,true,[]);;[128X[104X
    [4X[28X gap> Size(all);                                  [128X[104X
    [4X[28X 24[128X[104X
    [4X[28X gap> all[1];[128X[104X
    [4X[28X [ [ 1, 2, 3, 5 ], [ 1, 2, 4, 5 ], [ 1, 3, 4, 5 ], [ 2, 3, 4, 5 ] ][128X[104X
    [4X[28X gap> all:=SCShellingExt(c,false,[]);[128X[104X
    [4X[28X [ [ [ 1, 2, 3, 5 ], [ 1, 2, 4, 5 ], [ 1, 3, 4, 5 ], [ 2, 3, 4, 5 ] ] ][128X[104X
    [4X[28X gap> all:=SCShellingExt(c,true,[1..4]);[128X[104X
    [4X[28X true[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-18 SCShellings[101X
  
  [33X[1;0Y[29X[2XSCShellings[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ya list of facet lists upon success, [9Xfail[109X otherwise.[133X
  
  [33X[0;0YThe  simplicial  complex  [3Xcomplex[103X  must be pure, strongly connected and must
  fulfill  the  weak  pseudomanifold  property  with  non-empty  boundary (cf.
  [2XSCBoundary[102X ([14X6.9-7[114X)).[133X
  
  [33X[0;0YAn  ordering [22X(F_1, F_2, ... , F_r)[122X on the facet list of a simplicial complex
  is  a shelling if and only if [22XF_i ∩ (F_1 ∪ ... ∪ F_i-1)[122X is a pure simplicial
  complex of dimension [22Xd-1[122X for all [22Xi = 1, ... , r[122X.[133X
  
  [33X[0;0YThe function checks whether [3Xcomplex[103X is shellable or not. In the first case a
  list  of permuted facet lists of [3Xcomplex[103X is returned containing all possible
  shellings of [3Xcomplex[103X, otherwise [9Xfalse[109X is returned.[133X
  
  [33X[0;0YInternally  calls  [2XSCShellingExt[102X  ([14X6.10-17[114X)[10X(complex,true,[]);[110X. To learn more
  about shellings see [Zie95], [Pac87].[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[1,2,3],[1,2,4],[1,3,4]]);;[128X[104X
    [4X[28X gap> SCShellings(c);[128X[104X
    [4X[28X [ [ [ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 3, 4 ] ], [128X[104X
    [4X[28X   [ [ 1, 2, 3 ], [ 1, 3, 4 ], [ 1, 2, 4 ] ], [128X[104X
    [4X[28X   [ [ 1, 2, 4 ], [ 1, 2, 3 ], [ 1, 3, 4 ] ], [128X[104X
    [4X[28X   [ [ 1, 3, 4 ], [ 1, 2, 3 ], [ 1, 2, 4 ] ], [128X[104X
    [4X[28X   [ [ 1, 2, 4 ], [ 1, 3, 4 ], [ 1, 2, 3 ] ], [128X[104X
    [4X[28X   [ [ 1, 3, 4 ], [ 1, 2, 4 ], [ 1, 2, 3 ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-19 SCSpan[101X
  
  [33X[1;0Y[29X[2XSCSpan[102X( [3Xcomplex[103X, [3Xsubset[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YComputes  the  reduced  face  lattice  of  all faces of a simplicial complex
  [3Xcomplex[103X  that  are  spanned  by  [3Xsubset[103X,  a subset of the set of vertices of
  [3Xcomplex[103X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCBdCrossPolytope(4);;[128X[104X
    [4X[28X gap> SCVertices(c);[128X[104X
    [4X[28X [ 1 .. 8 ][128X[104X
    [4X[28X gap> span:=SCSpan(c,[1,2,3,4]);[128X[104X
    [4X[28X <SimplicialComplex: span([ 1, 2, 3, 4 ]) in Bd(\beta^4) | dim = 1 | n = 4>[128X[104X
    [4X[28X gap> span.Facets;[128X[104X
    [4X[28X [ [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 4 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[1,2],[1,4,5],[2,3,4]]);;[128X[104X
    [4X[28X gap> span:=SCSpan(c,[2,3,5]);[128X[104X
    [4X[28X <SimplicialComplex: span([ 2, 3, 5 ]) in unnamed complex 121 | dim = 1 | n = 3\[128X[104X
    [4X[28X >[128X[104X
    [4X[28X gap> SCFacets(span);[128X[104X
    [4X[28X [ [ 2, 3 ], [ 5 ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-20 SCSuspension[101X
  
  [33X[1;0Y[29X[2XSCSuspension[102X( [3Xcomplex[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YCalculates  the  simplicial  suspension  of  the simplicial complex [3Xcomplex[103X.
  Internally  falls  back to the homology package [DHSW11] (if available) if a
  facet  list  is  passed  as  argument. Note that the vertex labelings of the
  complexes passed as arguments are not propagated to the new complex.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> SCLib.SearchByName("Poincare");[128X[104X
    [4X[28X [ [ 497, "Poincare_sphere" ] ][128X[104X
    [4X[28X gap> phs:=SCLib.Load(last[1][1]);[128X[104X
    [4X[28X <SimplicialComplex: Poincare_sphere | dim = 3 | n = 16>[128X[104X
    [4X[28X gap> susp:=SCSuspension(phs);;[128X[104X
    [4X[28X gap> edwardsSphere:=SCSuspension(susp);[128X[104X
    [4X[28X <SimplicialComplex: susp of susp of Poincare_sphere | dim = 5 | n = 20>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-21 SCUnion[101X
  
  [33X[1;0Y[29X[2XSCUnion[102X( [3Xcomplex1[103X, [3Xcomplex2[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YForms  the  union  of  two simplicial complexes [3Xcomplex1[103X and [3Xcomplex2[103X as the
  simplicial  complex  formed  by  the  union  of  their  facets sets. The two
  arguments  are not altered. Note: for the union process the vertex labelings
  of   the  complexes  are  taken  into  account,  see  also  [2XOperation  Union
  (SCSimplicialComplex, SCSimplicialComplex)[102X ([14X5.3-1[114X). Facets occurring in both
  arguments are treated as one facet in the new complex.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SCUnion(SCBdSimplex(3),SCBdSimplex(3)+3); #a wedge of two 2-spheres[128X[104X
    [4X[28X <SimplicialComplex: S^2_4 cup S^2_4 | dim = 2 | n = 7>[128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-22 SCVertexIdentification[101X
  
  [33X[1;0Y[29X[2XSCVertexIdentification[102X( [3Xcomplex[103X, [3Xv1[103X, [3Xv2[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YIdentifies  vertex  [3Xv1[103X  with  vertex  [3Xv2[103X in a simplicial complex [3Xcomplex[103X and
  returns  the result as a new object. A vertex identification of [3Xv1[103X and [3Xv2[103X is
  possible whenever d([3Xv1[103X,[3Xv2[103X) [22X≥ 3[122X. This is not checked by this algorithm.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> c:=SC([[1,2],[2,3],[3,4]]);;[128X[104X
    [4X[28X gap> circle:=SCVertexIdentification(c,[1],[4]);;[128X[104X
    [4X[28X gap> circle.Facets;[128X[104X
    [4X[28X [ [ 1, 2 ], [ 1, 3 ], [ 2, 3 ] ][128X[104X
    [4X[28X gap> circle.Homology;[128X[104X
    [4X[28X [ [ 0, [  ] ], [ 1, [  ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
  [1X6.10-23 SCWedge[101X
  
  [33X[1;0Y[29X[2XSCWedge[102X( [3Xcomplex1[103X, [3Xcomplex2[103X ) [32X method[133X
  [6XReturns:[106X  [33X[0;10Ysimplicial  complex of type [10XSCSimplicialComplex[110X upon success, [9Xfail[109X
            otherwise.[133X
  
  [33X[0;0YCalculates  the  wedge  product of the complexes supplied as arguments. Note
  that  the  vertex  labelings  of  the  complexes passed as arguments are not
  propagated to the new complex.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X gap> wedge:=SCWedge(SCBdSimplex(2),SCBdSimplex(2));[128X[104X
    [4X[28X <SimplicialComplex: unnamed complex 17 | dim = 1 | n = 5>[128X[104X
    [4X[28X gap> wedge.Facets;[128X[104X
    [4X[28X [ [ 1, [ 1, 2 ] ], [ 1, [ 1, 3 ] ], [ 1, [ 2, 2 ] ], [ 1, [ 2, 3 ] ], [128X[104X
    [4X[28X   [ [ 1, 2 ], [ 1, 3 ] ], [ [ 2, 2 ], [ 2, 3 ] ] ][128X[104X
    [4X[28X [128X[104X
  [4X[32X[104X
  
