  
  [1X1 [33X[0;0YIntroduction[133X[101X
  
  [33X[0;0Y[5Xsimpcomp[105X  is  a  [5XGAP[105X  package  that  provides  the user with functions to do
  calculations  and  constructions with simplicial complexes in the context of
  combinatorial  topology (see abstract). If possible, it makes use of the [5XGAP[105X
  packages  [5Xhomology[105X  [DHSW11]  by  J.-G. Dumas et al. and [5XGRAPE[105X [Soi12] by L.
  Soicher.[133X
  
  [33X[0;0YMost parts of this manual can be accessed directly from within [5XGAP[105X using its
  internal help system.[133X
  
  
  [1X1.1 [33X[0;0YWhat is new[133X[101X
  
  [33X[0;0Y[5Xsimpcomp[105X  is  a  package for working with simplicial complexes. It claims to
  provide the user with a broad spectrum of functionality regarding simplicial
  constructions.[133X
  
  [33X[0;0Y[5Xsimpcomp[105X allows the user to interactively construct complexes and to compute
  their  properties  in  the  [5XGAP[105X  shell.  Furthermore,  it makes use of [5XGAP[105X's
  expertise  in  groups and group operations. For example, automorphism groups
  and  fundamental  groups  of  complexes can be computed and examined further
  within  the  [5XGAP[105X  system. Apart from supplying a facet list, the user can as
  well  construct  simplicial  complexes  from  a  set  of  generators  and  a
  prescribed automorphism group -- the latter form being the common in which a
  complex  is  presented  in  a  publication. This feature is to our knowledge
  unique  to  [5Xsimpcomp[105X. Furthermore, [5Xsimpcomp[105X as of Version 1.3.0 supports the
  construction  of simplicial complexes of prescribed dimension, vertex number
  and  transitive  automorphism  group  as  described in [Lut03], [CK01] and a
  number of functions (function prefix [10XSCSeries...[110X) provide infinite series of
  combinatorial manifolds with transitive automorphism group.[133X
  
  [33X[0;0YAs  of  Version  1.4.0,  [5Xsimpcomp[105X  provides  the  possibility  to  perform a
  combinatorial  version  of  algebraic blowups, so-called simplicial blowups,
  for  combinatorial  [22X4[122X-manfolds  as  described  in  [SK11]  and [Spr11a]. The
  implementation  can  be  used  as  well to resolve isolated singularities of
  combinatorial  [22X4[122X-pseudomanifolds. It seems that this feature, too, is unique
  to [5Xsimpcomp[105X.[133X
  
  [33X[0;0YStarting  from  Version  1.5.4,  [5Xsimpcomp[105X  comes with more efficient code to
  perform  bistellar  moves implemented in [10XC[110X (see function [2XSCReduceComplexFast[102X
  ([14X9.2-15[114X)). However, this feature is completely optional.[133X
  
  
  [1X1.2 [33X[0;0Y[5Xsimpcomp[105X[101X[1X benefits[133X[101X
  
  [33X[0;0YThe  origin  of  [5Xsimpcomp[105X  is  a  collection  of  scripts of the two authors
  [Eff11a],  [Spr11a]  that  provide  basic  and  often-needed  functions  and
  operations  for  working with simplicial complexes. Apart from some optional
  code  dealing  with  bistellar  moves  (see  Section  [14X9[114X  and  in  particular
  [2XSCReduceComplexFast[102X  ([14X9.2-15[114X)),  it is written entirely in the [5XGAP[105X scripting
  language,  thus giving the user the possibility to see behind the scenes and
  to customize or alter [5Xsimpcomp[105X functions if needed.[133X
  
  [33X[0;0YThe  main  benefit  when  working with [5Xsimpcomp[105X over implementing the needed
  functions  from  scratch  is  that  [5Xsimpcomp[105X  encapsulates  all  methods and
  properties  of a simplicial complex in a new [5XGAP[105X object type (as an abstract
  data  type).  This way, among other things, [5Xsimpcomp[105X can transparently cache
  properties   already   calculated,   thus   preventing   unnecessary  double
  calculations.  It  also  takes  care of the error-prone vertex labeling of a
  complex.  As  of  Version 1.5, [5Xsimpcomp[105X makes use of [5XGAP[105X's caching mechanism
  (as  described  in  [BL98])  to  cache  all known properties of a simplicial
  complex.  In  addition,  a customized data structure is provided to organize
  the complex library and to cache temporary information about a complex.[133X
  
  [33X[0;0Y[5Xsimpcomp[105X  provides  the  user with functions to save and load the simplicial
  complexes  to  and  from files and to import and export a complex in various
  formats  (e.g. from and to [5Xpolymake/TOPAZ[105X [GJ00], [5XSnapPea[105X [Wee99] and [5XRegina[105X
  [BBP+14] (via the [5XSnapPea[105X file format), [5XMacaulay2[105X [GS], LaTeX, etc.).[133X
  
  [33X[0;0YIn  contrast  to  the  software  package  [5Xpolymake[105X [GJ00] providing the most
  efficient algorithms for each task in form of a heterogeneous package (where
  algorithms  are  implemented  in  various  languages), the primary goal when
  developing  [5Xsimpcomp[105X  was not efficiency (this is already limited by the [5XGAP[105X
  scripting language), but rather ease of use and ease of extensibility by the
  user   in   the  [5XGAP[105X  language  with  all  its  mathematical  and  algebraic
  capabilities.  Extending  [5Xsimpcomp[105X  is  possible  directly  from within [5XGAP[105X,
  without having to compile anything, see Chapter [14X18[114X.[133X
  
  
  [1X1.3 [33X[0;0YHow to save time reading this document[133X[101X
  
  [33X[0;0YThe   core   component  in  [5Xsimpcomp[105X  is  the  newly  defined  object  types
  [10XSCPropertyObject[110X  and  its derived subtype [10XSCSimplicialComplex[110X. When working
  with  this  package it is important to understand how objects of these types
  can  be  created,  accessed and modified. The reader is therefore advised to
  first skim over the Chapters [14X3[114X and [14X5[114X.[133X
  
  [33X[0;0YThe impatient reader may then directly skip to Chapter [14X17[114X to see [5Xsimpcomp[105X in
  action.[133X
  
  [33X[0;0YThe  next  advised  step  is  to  have  a look at the functions for creating
  objects of type [10XSCSimplicialComplex[110X, see the first section of Chapter [14X6[114X.[133X
  
  [33X[0;0YThe rest of Chapter [14X6[114X contains most of the functions that [5Xsimpcomp[105X provides,
  except   for  the  functions  related  to  (co-)homology,  bistellar  flips,
  simplicial  blowups,  polyhedral  Morse  theory,  slicings  (discrete normal
  surfaces)  and  the  simplicial  complex  library  that are described in the
  Chapters   [14X8[114X  to  [14X13[114X.  Functions  for  the  more  general  [5XGAP[105X  object  type
  [10XSCPolyhedralComplex[110X are described in Chapter [14X4[114X .[133X
  
  
  [1X1.4 [33X[0;0YOrganization of this document[133X[101X
  
  [33X[0;0YThis manual accompanying [5Xsimpcomp[105X is organized as follows.[133X
  
  [30X    [33X[0;6YChapter  [14X2[114X provides a short introduction into the theory of simplicial
        complexes and PL-topology.[133X
  
  [30X    [33X[0;6YChapter  [14X3[114X  gives  a short overview about the newly defined [5XGAP[105X object
        types [5Xsimpcomp[105X is working with.[133X
  
  [30X    [33X[0;6YChapter  [14X4[114X  is  devoted  to  the  description  of  the [5XGAP[105X object type
        [10XSCPolyhedralComplex[110X that is defined by [5Xsimpcomp[105X.[133X
  
  [30X    [33X[0;6YChapter  [14X5[114X  introduce  the  [5XGAP[105X  object  types [10XSCSimplicialComplex[110X and
        [10XSCNormalSurface[110X which are both derived from [10XSCPolyhedralComplex[110X.[133X
  
  [30X    [33X[0;6YIn  Chapter  [14X6[114X  functions  for  working  with simplicial complexes are
        described.[133X
  
  [30X    [33X[0;6YChapter  [14X7[114X  gives  an  overview  over  functions related to slicings /
        discrete normal surfaces.[133X
  
  [30X    [33X[0;6YChapter  [14X8[114X describes the homology- and cohomology-related functions of
        [5Xsimpcomp[105X.[133X
  
  [30X    [33X[0;6YChapter [14X9[114X contains a description of the functions related to bistellar
        flips provided by [5Xsimpcomp[105X.[133X
  
  [30X    [33X[0;6YIn  Chapter  [14X10[114X simplicial blowups and resolutions of singularities of
        combinatorial [22X4[122X-pseudomanifolds are explained.[133X
  
  [30X    [33X[0;6YIn Chapter [14X11[114X polyhedral Morse theory is discussed.[133X
  
  [30X    [33X[0;6YIn  Chapter  [14X13[114X  the  simplicial  complex library and the input output
        functionality that [5Xsimpcomp[105X provides is described in detail.[133X
  
  [30X    [33X[0;6YChapter [14X15[114X contains descriptions of functions not fitting in the other
        chapters, such as the error handling and the email notification system
        of [5Xsimpcomp[105X.[133X
  
  [30X    [33X[0;6YChapter [14X16[114X contains a list of all property handlers allowing to access
        properties  of  a [10XSCSimplicialComplex[110X object, a [10XSCNormalSurface[110X object
        or  a  [10XSCLibRepository[110X  object  via  the  dot  operator (pseudo object
        orientation).[133X
  
  [30X    [33X[0;6YChapter  [14X17[114X  contains  the  transcript of a demo session with [5Xsimpcomp[105X
        showing  some  of  the  constructions and calculations with simplicial
        complexes that can also be used as a first overview of things possible
        with this package.[133X
  
  [30X    [33X[0;6YFinally,  Chapter  [14X18[114X  focuses  on  the  description  of  the internal
        structure  of  [5Xsimpcomp[105X  and  deals  with  aspects  of  extending  the
        functionality of the package.[133X
  
  
  [1X1.5 [33X[0;0YHow to assure [5Xsimpcomp[105X[101X[1X works correctly[133X[101X
  
  [33X[0;0YAs  with  all  software,  it is important to test whether [5Xsimpcomp[105X functions
  correctly  on  your  system after installing it. [5XGAP[105X has an internal testing
  mechanism and [5Xsimpcomp[105X ships with a short testing file that does some sample
  computations and verifies that the results are correct.[133X
  
  [33X[0;0YTo  test  the  functionality  of [5Xsimpcomp[105X you can run the function [2XSCRunTest[102X
  ([14X15.3-1[114X) from the [5XGAP[105X console:[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XSCRunTest();[127X[104X
    [4X[28Xsimpcomp package test               [128X[104X
    [4X[28Xmsecs: 7810[128X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27X[127X[104X
  [4X[32X[104X
  
  [33X[0;0Y[2XSCRunTest[102X  ([14X15.3-1[114X)  should return [9Xtrue[109X, otherwise the correct functionality
  of simpcomp cannot be guaranteed.[133X
  
  
  [1X1.6 [33X[0;0YControlling [5Xsimpcomp[105X[101X[1X log messages[133X[101X
  
  [33X[0;0YNote  that  the  verbosity of the output of information to the screen during
  calls  to functions of the package [5Xsimpcomp[105X can be controlled by setting the
  info level parameter via the function [2XSCInfoLevel[102X ([14X15.1-1[114X).[133X
  
  
  [1X1.7 [33X[0;0YHow to cite [5Xsimpcomp[105X[101X[1X[133X[101X
  
  [33X[0;0YIf  you  would like to cite [5Xsimpcomp[105X using BibTeX, you can use the following
  BibTeX  entry  for the current [5Xsimpcomp[105X version (remember to include the [10Xurl[110X
  package in your LaTeX document):[133X
  
  @manual{simpcomp,
  	author = "Felix Effenberger and Jonathan Spreer",
  	title  = "{\tt simpcomp} - a {\tt GAP} toolkit for simplicial complexes,
  	          {V}ersion 2.1.14",
  	year   = "2022",
  	url    = "\url{https://github.com/simpcomp-team/simpcomp}",
  }
  
  [33X[0;0YIf  you  are  not  using  BibTeX, you can use the following entry inside the
  bibliography environment of LaTeX.[133X
  
  \bibitem{simpcomp}
  F.~Effenberger and J.~Spreer,
  \emph{{\tt simpcomp} -- a {\tt GAP} toolkit for simplicial complexes},
  Version 2.1.14,
  2022,
  \url{https://github.com/simpcomp-team/simpcomp}.
  
