Skip to content

Latest commit

 

History

44 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simplicial Homology

GitHub release License DOI

SimplicialHomology is a Wolfram language paclet (package) for constructing, manipulating, and analysing abstract simplicial complexes. It provides tools for computing simplicial homology, performing common topological constructions, and studying combinatorial invariants of finite simplicial complexes. So far, Mathematica lacked in-built or third party support for simplicial homology or discrete topology in general. Primarily, that motivated the development of this package. I have largely taken both inspiration and reference from the implementation of simplicial complexes in sagemath (Python).

Features include construction of simplicial complexes from facets or cells, computation of reduced and unreduced homology (or cohomology) groups over integers, rations, or finite rings, Euler characteristic and f-vectors, joins, cones, suspensions, stars, links, and access to a collection of standard and enumerated simplicial complexes for testing and experimentation. The paclet is designed for research, education, and computational topology workflows in the Wolfram language.

On arXiv: https://arxiv.org/abs/2608.14240v1

Wolfram paclet repository: https://resources.wolframcloud.com/PacletRepository/resources/Taggar/SimplicialHomology/

Installation

Easily install the package from Wolfram paclet repository using the following command:

PacletInstall["Taggar/SimplicialHomology"]

Usage

Import the package by running

In[1]:= <<Taggar`SimplicialHomology`

Create a simplicial complex using facets as follows:

In[2]:= S1 = SimplicialComplex[{{1, 2}, {2, 3}, {3, 1}}];

or using one of the named objects:

In[3]:= torus = SimplicialComplex["Torus"];

Calculate the homology groups of torus:

In[4]:= HomologyGroup[torus]
Out[4]= <|0 -> Integers, 1 -> Superscript[Integers, 2], 2 -> Integers|>

or Betti numbers of S1:

In[5]:= BettiNumber[S1]
Out[5]= <|0 -> 1, 1 -> 1|>

Reduced homology, homology over other rings such as rationals or finite rings, and cohomology can also be computed using the package. Calculate cone, suspension, or join of spaces:

In[6]:= SimplicialCone[torus]
In[7]:= SimplicialSuspension[S1]
In[8]:= SimplicialJoin[S1, torus]

Check that two simplicial complexes are isomorphic to each other:

In[9]:= SimplicialIsomorphicQ[
            SimplicialComplex[{{1, 2, 3}}],
            SimplicialComplex[{{a, b, c}, {b, c}}]]
Out[9]= True

Find the automorphism group of a simplicial complex:

In[10]:= SimplicialAutomorphismGroup[SimplicialComplex["RealProjectivePlane"]]
Out[10]= PermutationGroup[{Cycles[{{3, 5},{4, 6}}], Cycles[{{2, 3}, {5, 6}}], Cycles[{{1, 2}, {3, 5}}]}]

Verify that it is isomorphic to the alternating group of degree 5:

In[11]:= ResourceFunction["FindGroupIsomorphism"][%, AlternatingGroup[5]]
Out[11]= {{1, 4, 14, 19, 27, 34, 42, 47, 57, 60, 12, 9, 50, 55, 37, 40, 20, 17, 35, 30, 23, 18, 54, 59, 5, 8, 28, 25, 46, 39, 32, 29, 45, 48, 10, 3, 58, 51, 16, 13, 43, 38, 22, 15, 33, 36, 53, 56, 7, 2, 52, 49, 31, 26, 44, 41, 24, 21, 11, 6}}

Construct stars or links of simplices:

In[12]:= sc = SimplicialComplex[{{1, 2, 3}, {2, 3, 4}}];
In[13]:= SimplicialStar[sc, {1}]
In[14]:= SimplicialLink[sc,{2, 3}]

For a full reference, visit the homepage at Wolfram paclet repository here.

Future scope

  • simplicial maps
  • wedge products
  • barycentric subdivisions

Citation

If you use this package for research or otherwise, please cite it as follows:

@misc{taggar2026sh,
      title={SimplicialHomology: implementation of abstract simplicial complex in Mathematica}, 
      author={Naman Taggar},
      year={2026},
      eprint={2608.14240},
      archivePrefix={arXiv},
      primaryClass={math.AT},
      url={https://arxiv.org/abs/2608.14240}, 
}

Version log

Version 1.2.1, on 26 August, 2026 — random simplicial complexes added in examples. log

Version 1.2.0, on 23 August, 2026 — chain complexes are now formalised as an object, cohomology is thus also implemented; a test-suite is added. log

Version 1.1.1, on 8 August, 2026 — support for simplicial products and a bug fix. log

Version 1.1.0, on 1 August, 2026 — support for relative homology and stars & links. log

Version 1.0.0, on 10 July, 2026 — initial public release.

Version 0.0.1, on 08 July, 2026 — initial upload with homology, Betti numbers and joins.

Contributions

Please feel free to give your feedback on the package, or to contribute with an issue or a PR! The test files are in Test/ directory and may be run to ensure everything functions correctly.

References

[1] Munkres, J. R. Elements of Algebraic Topology, Addison Wesley Publishing Company, 1984.

[2] Hatcher A., Algebraic Topology, Cambridge University Press, Cambridge, 2002. W. Kühnel and T. F. Banchoff, The 9-vertex complex projective plane, Math. Intelligencer 5 (1983), no. 3, 11-22. doi:10.1007/BF03026567

[3] M. Hachimori. http://infoshako.sk.tsukuba.ac.jp/~hachi/math/library/dunce_hat_eng.html.

[4] Anders Björner and Frank H. Lutz, Simplicial manifolds, bistellar flips and a 16-vertex triangulation of the Poincaré homology 3-sphere, Experiment. Math. 9 (2000), no. 2, 275-289.

[5] U. Brehm and W. Kuhnel, 15-vertex triangulations of an 8-manifold, Math. Annalen 294 (1992), no. 1, 167-193.

[6] M. E. Rudin. An unshellable triangulation of a tetrahedron. Bull. Amer. Math. Soc. 64 (1958), 90-91.

[7] Frank H. Lutz, Császár's Torus, Electronic Geometry Model No. 2001.02.069 (2002). http://www.eg-models.de/models/Classical_Models/2001.02.069/_direct_link.html.

[8] G. M. Ziegler. Shelling polyhedral 3-balls and 4-polytopes. Discrete Comput. Geom. 19 (1998), 159-174. doi:10.1007/PL00009339

[9] https://doc.sagemath.org/html/en/reference/topology/sage/topology/simplicial_complex.html

[10] https://doc.sagemath.org/html/en/reference/topology/sage/topology/simplicial_complex_examples.html

[11] https://doc.sagemath.org/html/en/reference/references/index.html

[12] https://resources.wolframcloud.com/FunctionRepository/resources/FindGroupIsomorphism/

About

Simplicial homology in Wolfram language

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages