simpcomp
A GAP toolbox for simplicial complexes
Version 1.1.21
January 2010
Felix Effenberger
e-mail: effenberger@mathematik.uni-stuttgart.de
Jonathan Spreer
e-mail: spreer@mathematik.uni-stuttgart.de
Address:
University of Stuttgart
Department of Mathematics
Institute of Geometry and Topology
D-70550 Stuttgart, Germany
Abstract
simpcomp is a GAP package for working with simplicial complexes. It allows the computation of many properties of simplicial complexes (such as the f-, g- and h-vectors, the face lattice, the automorphism group, (co-)homology with explicit basis computation, intersection form, etc.) and provides the user with functions to compute new complexes from old (simplex links and stars, connected sums, cartesian products, handle additions, bistellar flips, etc.). Furthermore, it comes with an extensive library of known triangulations of manifolds and provides the user with the possibility to create own complex libraries.
simpcomp caches computed properties of a simplicial complex, thus avoiding unnecessary computations, internally handles the vertex labeling of the complexes and insures the consistency of a simplicial complex throughout all operations.
simpcomp relies on the GAP package homology [DH+04] for its homology computation, but also provides the user with an own (co-)homology algorithm in case the packacke homology is not available. For automorphism group computation the GAP package GRAPE [S06] is used, which in turn uses the program nauty
by Brendan McKay [M84]. An internal automorphism group calculation algorithm in used as fallback if the GRAPE package is not available.
Copyright
(C) 2009 by Felix Effenberger and Jonathan Spreer.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation, see http://www.fsf.org/licensing/licenses/fdl.html for a copy. simpcomp is free software. The code of simpcomp is released under the GPL version 2 or later (at your preference). For the text of the GPL see the file COPYING
in the simpcomp directory or http://www.gnu.org/licenses/.
Acknowledgements
A few functions of simpcomp are based on code from other authors. The bistellar flips implementation is based upon work of Frank Lutz [L03]. Some functions were carried over from the Homology package by Dumas et al. [DH+04] -- these functions are marked in the documentation and the source code. The internal (co)homology algorithms were implemented by Armin Weiss.
Most of the complexes in the simplicial complex library are taken from the "Manifold Page" by Frank Lutz [ManifoldPage].
The first author acknowledges support by the Deutsche Forschungsgemeinschaft (DFG). This work was carried out as part of the DFG project "Ku 1203/5-2".
Contents
1. Introduction
1.1 Why simpcomp
1.2 How to save time reading this document
1.3 Organization of this document
1.4 How to assure simpcomp works correctly
1.5 How to cite simpcomp
2. Theoretical foundations
2.1 Polytopes and polytopal complexes
2.2 Simplices and simplicial complexes
2.3 From geometry to combinatorics
2.4 Normal surfaces and combinatorial slicings
3. The GAP object types SCSimplicicalComplex and SCNormalSurface
3.1 The object types SCSimplicialComplex
and SCPropertyObject
3.1-1 SCIsSimplicialComplex
3.1-2 SCCopy
3.1-3 ShallowCopy (SCSimplicialComplex)
3.1-4 SCForceRecalc
3.2 Accessing properties of a SCSimplicialComplex
object
3.3 Overloaded operators of SCSimplicialComplex
3.3-1 Operation + (SCSimplicialComplex, Integer)
3.3-2 Operation - (SCSimplicialComplex, Integer)
3.3-3 Operation mod (SCSimplicialComplex, Integer)
3.3-4 Operation ^ (SCSimplicialComplex, Integer)
3.3-5 Operation + (SCSimplicialComplex, SCSimplicialComplex)
3.3-6 Operation - (SCSimplicialComplex, SCSimplicialComplex)
3.3-7 Operation * (SCSimplicialComplex, SCSimplicialComplex)
3.3-8 Operation = (SCSimplicialComplex, SCSimplicialComplex)
3.3-9 Operation Union (SCSimplicialComplex, SCSimplicialComplex)
3.3-10 Operation Difference (SCSimplicialComplex, SCSimplicialComplex)
3.3-11 Operation Intersection (SCSimplicialComplex, SCSimplicialComplex)
3.4 SCSimplicialComplex
as a subtype of Set
3.4-1 Size (SCSimplicialComplex)
3.4-2 Length (SCSimplicialComplex)
3.4-3 Operation [] (SCSimplicialComplex)
3.4-4 IsBound (SCSimplicialComplex)
3.4-5 Iterator (SCSimplicialComplex)
3.5 The object types SCNormalSurface
as asubtyope of SCPropertyObject
3.6 Overloaded operators of SCNormalSurface
3.6-1 Operation + (SCNormalSurface, Integer)
3.6-2 Operation - (SCNormalSurface, Integer)
3.6-3 Operation mod (SCNormalSurface, Integer)
3.6-4 Operation = (SCNormalSurface, SCNormalSurface)
3.6-5 Operation Union (SCNormalSurface, SCNormalSurface)
3.7 SCNormalSurface
as a subtype of Set
4. Functions for simplicial complexes
4.1 Creating an SCSimplicialComplex
object from a facet list
4.1-1 SCFromFacets
4.1-2 SC
4.1-3 SCFromDifferenceCycles
4.1-4 SCFromGenerators
4.2 Generating some standard triangulations
4.2-1 SCBdCrossPolytope
4.2-2 SCBdSimplex
4.2-3 SCEmpty
4.2-4 SCSimplex
4.3 Generating new complexes from old
4.3-1 SCCartesianPower
4.3-2 SCCartesianProduct
4.3-3 SCConnectedComponents
4.3-4 SCConnectedProduct
4.3-5 SCConnectedSum
4.3-6 SCConnectedSumMinus
4.3-7 SCDifferenceCycleCompress
4.3-8 SCDifferenceCycleExpand
4.3-9 SCFVectorBdCrossPolytope
4.3-10 SCFVectorBdSimplex
4.3-11 SCStronglyConnectedComponents
4.4 Vertex labelings and label operations
4.4-1 SCLabelMax
4.4-2 SCLabelMin
4.4-3 SCLabels
4.4-4 SCRelabel
4.4-5 SCRelabelStandard
4.4-6 SCRelabelTransposition
4.4-7 SCRename
4.4-8 SCSortComplex
4.4-9 SCUnlabelFace
4.5 Computing properties of simplicial complexes
4.5-1 SCAltshulerSteinberg
4.5-2 SCAutomorphismGroup
4.5-3 SCAutomorphismGroupInternal
4.5-4 SCBoundary
4.5-5 SCDim
4.5-6 SCDualGraph
4.5-7 SCEulerCharacteristic
4.5-8 SCFVector
4.5-9 SCFaceLattice
4.5-10 SCFaceLatticeEx
4.5-11 SCFaces
4.5-12 SCFacesEx
4.5-13 SCFacets
4.5-14 SCFacetsEx
4.5-15 SCFpBettiNumbers
4.5-16 SCFundamentalGroup
4.5-17 SCGVector
4.5-18 SCGenerators
4.5-19 SCGeneratorsEx
4.5-20 SCHVector
4.5-21 SCHasBoundary
4.5-22 SCHasInterior
4.5-23 SCHomology
4.5-24 SCIncidences
4.5-25 SCIncidencesEx
4.5-26 SCInterior
4.5-27 SCIsCentrallySymmetric
4.5-28 SCIsConnected
4.5-29 SCIsEmpty
4.5-30 SCIsEulerianManifold
4.5-31 SCIsHomologySphere
4.5-32 SCIsInKd
4.5-33 SCIsKNeighborly
4.5-34 SCIsOrientable
4.5-35 SCIsPseudoManifold
4.5-36 SCIsPure
4.5-37 SCIsShellable
4.5-38 SCIsStronglyConnected
4.5-39 SCMinimalNonFaces
4.5-40 SCMinimalNonFacesEx
4.5-41 SCName
4.5-42 SCNeighborliness
4.5-43 SCNumFaces
4.5-44 SCOrientation
4.5-45 SCSkel
4.5-46 SCSkelEx
4.5-47 SCSpanningTree
4.5-48 SCVertices
4.5-49 SCVerticesEx
4.6 Operations on simplicial complexes
4.6-1 SCAlexanderDual
4.6-2 SCCollapseGreedy
4.6-3 SCCone
4.6-4 SCDeletedJoin
4.6-5 SCDifference
4.6-6 SCHandleAddition
4.6-7 SCIntersection
4.6-8 SCIsIsomorphic
4.6-9 SCIsSubcomplex
4.6-10 SCIsomorphism
4.6-11 SCIsomorphismEx
4.6-12 SCJoin
4.6-13 SCLink
4.6-14 SCLinks
4.6-15 SCNeighbors
4.6-16 SCNeighborsEx
4.6-17 SCShelling
4.6-18 SCShellingExt
4.6-19 SCShellings
4.6-20 SCSpan
4.6-21 SCStar
4.6-22 SCStars
4.6-23 SCSuspension
4.6-24 SCUnion
4.6-25 SCVertexIdentification
4.6-26 SCWedge
5. (Co-)Homology of simplicial complexes
5.1 Homology computation
5.1-1 SCBoundaryOperatorMatrix
5.1-2 SCBoundarySimplex
5.1-3 SCHomologyBasis
5.1-4 SCHomologyBasisAsSimplices
5.1-5 SCHomologyInternal
5.2 Cohomology computation
5.2-1 SCCoboundaryOperatorMatrix
5.2-2 SCCohomology
5.2-3 SCCohomologyBasis
5.2-4 SCCohomologyBasisAsSimplices
5.2-5 SCCupProduct
5.2-6 SCIntersectionForm
5.2-7 SCIntersectionFormParity
5.2-8 SCIntersectionFormDimensionality
5.2-9 SCIntersectionFormSignature
6. Bistellar flips
6.1 Theory
6.2 Functions for bistellar flips
6.2-1 SCBistellarOptions
6.2-2 SCEquivalent
6.2-3 SCExamineComplexBistellar
6.2-4 SCIntFunc.SCChooseMove
6.2-5 SCIsKStackedSphere
6.2-6 SCIsManifold
6.2-7 SCIsMovableComplex
6.2-8 SCMove
6.2-9 SCMoves
6.2-10 SCRMoves
6.2-11 SCReduceAsSubcomplex
6.2-12 SCReduceComplex
6.2-13 SCReduceComplexEx
7. Functions for normal surfaces
7.1 Creating an SCNormalSurface
object
7.1-1 SCNSEmpty
7.1-2 SCNSFromFacets
7.1-3 SCNS
7.1-4 SCNSSlicing
7.2 Generating new objects from normal surfaces
7.2-1 SCNSCopy
7.2-2 SCNSSubdivision
7.3 Properties of SCNormalSurface
objects
7.3-1 SCNSDim
7.3-2 SCNSEulerCharacteristic
7.3-3 SCNSFVector
7.3-4 SCNSFaceLattice
7.3-5 SCNSFaceLatticeEx
7.3-6 SCNSFpBettiNumbers
7.3-7 SCNSGenus
7.3-8 SCNSHomology
7.3-9 SCNSSkel
7.3-10 SCNSSkelEx
7.3-11 SCNSTopologicalType
8. Library and I/O
8.1 Simplicial complex library
8.1-1 SCIsLibRepository
8.1-2 SCLib
8.1-3 SCLibAdd
8.1-4 SCLibAllComplexes
8.1-5 SCLibDelete
8.1-6 SCLibDetermineTopologicalType
8.1-7 SCLibFlush
8.1-8 SCLibInit
8.1-9 SCLibIsLoaded
8.1-10 SCLibSearchByAttribute
8.1-11 SCLibSearchByName
8.1-12 SCLibSize
8.1-13 SCLibUpdate
8.1-14 SCLibStatus
8.2 simpcomp input / output functions
8.2-1 SCLoad
8.2-2 SCSave
8.2-3 SCExportPolymake
8.2-4 SCImportPolymake
8.2-5 SCExportLatexTable
8.2-6 SCExportJavaView
9. Miscellaneous functions
9.1 simpcomp error handling
9.1-1 SCErrorBreak
9.1-2 SCErrorMail
9.2 Email notification system
9.2-1 SCMailClearPending
9.2-2 SCMailIsEnabled
9.2-3 SCMailIsPending
9.2-4 SCMailSend
9.2-5 SCMailSendPending
9.2-6 SCMailSetAddress
9.2-7 SCMailSetEnabled
9.2-8 SCMailSetMinInterval
9.3 Testing the functionality of simpcomp
9.3-1 SCRunTest
10. Property handlers
10.1 Property handlers of a SCSimplicialComplex
10.2 Property handlers of a SCNormalSurface
11. A demo session with SimpComp
11.1 Creating a SCSimplicialComplex
object
11.2 Working with a SCSimplicialComplex
object
11.3 Calculating properties of a SCSimplicialComplex
object
11.4 Creating new complexes from a SCSimplicialComplex
object
11.5 Homology related calculations
11.6 Bistellar flips
12. simpcomp internals
12.1 Example of a common property handler
12.2 Writing a property handler