Integration of the Kenzo System within SageMath for New Algebraic Topology Computations
Abstract
:1. Introduction
- Computation of the join of two simplicial sets, wedges, smash products, homotopy groups, spectral sequences, and finite topological spaces;
- Connection between chain complexes, simplicial sets, and morphisms of chain complexes;
- Improvements and fixes of serious flaws in external packages, which caused erroneous calculations;
- Integration of an algorithm to compute homotopy groups of simply connected (not 1-reduced) simplicial sets from Kenzo to our interface, in order to be able to use it from Sagemath;
- Presentation of some examples of computations combining both systems by means of the interface. That is, the interface allows us to carry out computations that would not be possible using Kenzo and SageMath separately;
- We even show how we computed homotopy groups that were not known before.
2. Effective Homology Theory and the Kenzo System
> (setf kz1 (k-z 1)) [K1 Abelian-Simplicial-Group]
> (efhm kz1) [K22 Homotopy-Equivalence K1 <= K1 => K16] > (orgn (k 16)) (CIRCLE)
> (homology kz1 0 3) Homology in dimension 0: Component Z ---done--- Homology in dimension 1: Component Z ---done--- Homology in dimension 2: ---done---
> (progn (setf X (sphere 3)) (setf k3 (chml-clss X 3)) (setf t3 (z-whitehead X k3)) (setf X4 (fibration-total t3)) (setf k4 (chml-clss X4 4)) (setf t4 (z2-whitehead X4 k4)) (setf X5 (fibration-total t4)) (setf k5 (chml-clss X5 5)) (setf t5 (z2-whitehead X5 k5)) (setf X6 (fibration-total t5)) (homology X6 6)) Homology in dimension 6: Component Z/12Z ---done---
3. SageMath and Algebraic Topology
3.1. Chain Complexes
sage: C = ChainComplex({0: matrix(ZZ, 2, 3, [3, 0, 0, 0, 0, 0])}); C Chain complex with at most 2 nonzero terms over Integer Ring sage: ascii_art(C) [3 0 0] [0 0 0] 0 <-- C_1 <-------- C_0 <-- 0
sage: m = matrix(ZZ, 2, 2, [0, -1, 0, 0]) sage: D = ChainComplex([m, m], base_ring=GF(2)); D Chain complex with at most 3 nonzero terms over Finite Field of size 2 sage: ascii_art(D) [0 1] [0 1] [0 0] [0 0] 0 <-- C_2 <------ C_1 <------ C_0 <-- 0
sage: E = ChainComplex({3:m,2:m}, degree_of_differential=-1) sage: ascii_art(E) [0 −1] [0 −1] [0 0] [0 0] 0 <-- C_1 <-------- C_2 <-------- C_3 <-- 0
sage: ascii_art(E.dual()) [ 0 0] [ 0 0] [−1 0] [−1 0] 0 <-- C_3 <-------- C_2 <-------- C_1 <-- 0 sage: R.<x,y,z> = QQ[] sage: C1 = ChainComplex({1:matrix([[x]])}, degree_of_differential=-1) sage: C2 = ChainComplex({1:matrix([[y]])}, degree_of_differential=-1) sage: ascii_art(C1.tensor(C2)) [ x] [y x] [−y] 0 <-- C_0 <------ C_1 <----- C_2 <-- 0
sage: C.homology(0) Z x Z sage: C.homology(1) Z x C3 sage: C.homology(2) 0
3.2. Simplicial Sets
sage: S2_1 = simplicial_sets.Sphere(2) sage: S2_2 = simplicial_sets.Sphere(1).suspension() sage: from sage.homology.simplicial_set import AbstractSimplex, SimplicialSet sage: v = AbstractSimplex(0, name=’v’) sage: f = AbstractSimplex(2, name=’f’) sage: dv = v.apply_degeneracies(0) sage: S2_3 = SimplicialSet({f:(dv,dv,dv)})
sage: S2_1.betti() {0: 1, 1: 0, 2: 1} sage: S2_2.betti() {0: 1, 1: 0, 2: 1} sage: S2_3.betti() {0: 1, 1: 0, 2: 1}
sage: P2 = simplicial_sets.ComplexProjectiveSpace(2); P2
CP^2
sage: from sage.homology.simplicial_set import SimplicialSet sage: S3 = simplicial_complexes.BarnetteSphere(); S3 Barnette's triangulation of the 3-sphere sage: KS3 = SimplicialSet(S3); KS3 Simplicial set with 92 non-degenerate simplices
sage: W = S2_1.wedge(P2); W Wedge: (S^2 v CP^2) sage: W.factors() (S^2, CP^2) sage: W.all_n_simplices(2) [rho_0, rho_1, sigma_2, s_1 s_0 *] sage: S2_1.all_n_simplices(2) [sigma_2, s_1 s_0 v_0] sage: P2.all_n_simplices(2) [rho_0, rho_1, s_1 s_0 v]
sage: W.homology(2) Z x Z sage: W.homology(3) 0 sage: W.homology(4) Z sage: W.cohomology(2) Z x Z sage: W.cohomology(3) 0 sage: W.cohomology(4) Z sage: ascii_art(W.chain_complex()) [ 2 0 −2] [ 0 −1 −1] [−1 0 1] [ 1 1 0] [ 0 0 0] [ 0 −1 −1] 0 <-- C_0 <-- 0 <-- C_2 <----------- C_3 <----------- C_4 <-- 0 sage: R = W.cohomology_ring(); R Cohomology ring of Wedge: (S^2 v CP^2) over Rational Field sage: R.basis() Finite family {(0, 0): h^{0,0}, (2, 0): h^{2,0}, (2, 1): h^{2,1}, (4, 0): h^{4,0}} sage: table([[a*b for b in R.basis()] for a in R.basis()]) h^{0,0} h^{2,0} h^{2,1} h^{4,0} h^{2,0} 1/4*h^{4,0} 0 0 h^{2,1} 0 0 0 h^{4,0} 0 0 0 sage: [a.degree() for a in R.basis()] [0, 2, 2, 4] sage: simplicial_sets.Torus().fundamental_group() Finitely presented group < e0, e1 | e0 * e1^-1 * e0^-1 * e1 > sage: M = W.algebraic_topological_model(); M (Chain homotopy between: Chain complex endomorphism of Chain complex with at most 5 nonzero terms over Rational Field and Chain complex endomorphism of Chain complex with at most 5 nonzero terms over Rational Field, Chain complex with at most 5 nonzero terms over Rational Field)
4. The SageMath-Kenzo Interface
sage: from sage.libs.ecl import ecl_eval sage: ecl_eval("(require :kenzo)") sage: ecl_eval("(in-package #:cat)") sage: ecl_eval("(setf K (k-z 3))") <ECL: [K25 Abelian-Simplicial-Group]>
k_z = EclObject("k-z") k_z2 = EclObject("k-z2") k_zp = EclObject("k-zp")
def EilenbergMacLaneSpace(G, n): if G == ZZ: kenzospace = k_z(n) return KenzoSimplicialGroup(kenzospace) elif G == AdditiveAbelianGroup([2]): kenzospace = k_z2(n) return KenzoSimplicialGroup(kenzospace) elif G in CommutativeAdditiveGroups() and G.is_cyclic(): kenzospace = k_zp(G.cardinality(), n) return KenzoSimplicialGroup(kenzospace) else: raise NotImplementedError("…")
sage: from sage.interfaces.kenzo import KFiniteSimplicialSet sage: CP3 = simplicial_sets.ComplexProjectiveSpace(3); CP3 CP^3 sage: KCP3 = KFiniteSimplicialSet(CP3); KCP3 [K609 Simplicial -Set]
sage: from sage.interfaces.kenzo import EilenbergMacLaneSpace sage: from sage.interfaces.kenzo import Sphere sage: E = EilenbergMacLaneSpace(AdditiveAbelianGroup([2]), 2) sage: S3 = Sphere(3) sage: L = S3.loop_space() sage: X = E.cartesian_product(L) sage: [X.homology(i) for i in range(8)] [Z, 0, Z x C2, 0, Z x C2 x C4, C2, Z x C2 x C2 x C4, C2 x C2]
5. Homotopy Groups
- When some homology group in the tower is obtained such that it is a sum of several factors or , , the intermediate spaces in diagram (1) are not -reduced. To solve this problem, it is necessary to introduce a new step in the algorithm to produce a reduction from to a -reduced space. This step was already available in Kenzo but was not used in the external module [18], so that incorrect results were obtained. We have solved this problem by using the corresponding Kenzo function producing the necessary reduction;
- When some homology group is equal to zero, the external module [18] stops the construction of the tower and claims that for every . This assumption is incorrect since there exist spaces with but for some . We have solved this bug by continuing the construction of the tower from the following step such that ;
- Each fibration in the tower is defined by means of a simplicial morphism of degree , called the twisting operator [17], . This simplicial morphism is described by a well-known and existing isomorphism between and (the set of the -simplices of ). In order to construct this twisting operator, Kenzo uses the Smith Normal Form (SNF) [24] of the differential matrix of degree of the simplicial set , denoted . The SNF algorithm of a matrix A consists in computing a diagonal matrix D such that each diagonal element divides and two invertible matrices (corresponding to the changes of bases), P and Q, such that . In particular, the SNF algorithm of produces a diagonal matrix whose entries describe the (factors of the) group . If is a sum of several factors, the intermediate fibrations must be constructed considering the diagonal elements of the SNF (which is unique). However, the external module [18] uses a different decomposition of (by means of a diagonal matrix which also describes the homology group but does not always satisfy the SNF property), so that in some situations an error is found. We have solved this bug by transforming the homology group factors used in the module into SNF, constructing the intermediate fibrations following the correct order.
sage: from sage.interfaces.kenzo import KFiniteSimplicialSet sage: S3 = simplicial_sets.Sphere(3) sage: T = simplicial_sets.Torus() sage: sT = T.suspension() sage: S3vsT = S3.wedge(sT) sage: K = KFiniteSimplicialSet(S3vsT) sage: [K.homotopy_group(i) for i in range(2,5)] [Multiplicative Abelian group isomorphic to Z x Z, Multiplicative Abelian group isomorphic to Z x Z x Z x Z x Z, Multiplicative Abelian group isomorphic to Z x Z x Z x Z x Z x Z x C2 x C2 x C2 x C2 x C2]
Discovering New Homotopy Groups
- It is proved that has the homotopy type of a wedge of spheres of dimension ;
- It is proved that, if , has the homotopy type of a wedge of spheres of dimension ;
- It is conjectured that has the homotopy type of a wedge of spheres of dimension .
sage: NI = simplicial_complexes.NotIConnectedGraphs(5,3); NI Simplicial complex of not 3- connected graphs on 5 vertices sage: [NI.homology(i) for i in range(1,8)] [0, 0, 0, 0, 0, Z^6, 0]
sage: import sage.libs.ecl sage: from sage.homology.simplicial_set import SimplicialSet sage: from sage.interfaces.kenzo import KFiniteSimplicialSet sage: sage.libs.ecl.ecl_eval("(ext:set-limit 'ext:heap-size 0)") sage: SNI = SimplicialSet(NI) sage: KNI = KFiniteSimplicialSet(SNI) sage: pi6 = KNI.homotopy_group(6); pi6 Multiplicative Abelian group isomorphic to Z x Z x Z x Z x Z x Z
sage: pi7 = KNI.homotopy_group(7); pi7
Multiplicative Abelian group isomorphic to C2 x C2 x C2 x C2 x C2 x C2
which, to our knowledge, was not known up to now. This computation took more than 14 h in a computing node with Intel Xeon E5-2650 v4, 2.20GHz processors, and 512 GB of RAM.6. Integration of Other External Modules
6.1. Joins, Wedges, and Smash Products
sage: from sage.interfaces.kenzo import Sphere sage: from sage.interfaces.kenzo import KFiniteSimplicialSet sage: T1 = simplicial_sets.Torus() sage: T = KFiniteSimplicialSet(T1) sage: S2 = Sphere(2) sage: lS2 = S2.loop_space() sage: TvlS2 = T.wedge(lS2) sage: [TvlS2.homology(i) for i in range(1,5)] [Z x Z x Z, Z x Z, Z, Z]
sage: from sage.interfaces.kenzo import EilenbergMacLaneSpace sage: E1 = EilenbergMacLaneSpace(ZZ, 2) sage: E2 = EilenbergMacLaneSpace(ZZ, 3) sage: E = E1.join(E2) sage: [E.homology(i) for i in range(11)] [Z, 0, 0, 0, 0, 0, Z, 0, Z x C2, 0, Z x C2 x C3] sage: [E.homotopy_group(i) for i in range(6, 9)] [Multiplicative Abelian group isomorphic to Z, Trivial Abelian group, Multiplicative Abelian group isomorphic to Z]
sage: E3 = E1.smash_product(E2) sage: [E3.homology(i) for i in range(11)] [Z, 0, 0, 0, 0, Z, 0, Z x C2, 0, Z x C2 x C3, C2] sage: [E3.homotopy_group(i) for i in range(5, 9)] [Multiplicative Abelian group isomorphic to Z, Trivial Abelian group, Multiplicative Abelian group isomorphic to Z, Multiplicative Abelian group isomorphic to C2]
6.2. Spectral Sequences
- Spectral sequence of a bicomplex given by a list of morphisms of chain complexes;
- Serre spectral sequence associated with a cartesian product;
- Serre spectral sequence associated with the first fibration in the Whitehead tower of a simplicial set;
- Eilenberg–Moore spectral sequence associated with the loop space of a simplicial set.
sage: C1 = ChainComplex({1: matrix(ZZ, 0, 2, [])}, degree_of_differential = -1) sage: C2 = ChainComplex({1: matrix(ZZ, 1, 2, [1, 0])}, degree_of_differential = -1) sage: C3 = ChainComplex({0: matrix(ZZ, 0,2 , [])}, degree_of_differential = -1) sage: M1 = Hom(C2,C1)({1: matrix(ZZ, 2, 2, [2, 0, 0, 2])}) sage: M2 = Hom(C3,C2)({0: matrix(ZZ, 1, 2, [2, 0])})
sage: from sage.interfaces.kenzo import Bicomplex SpectralSequence sage: l = [M1, M2] sage: E = Bicomplex SpectralSequence(l) sage: E.group(2,0,1) Additive abelian group isomorphic to Z/2 + Z sage: E.table(3,0,2,0,2) 0 0 0 Z/2 + Z/4 0 0 0 0 Z sage: E.matrix(2,2,0) [0 0] [−4 0]
sage: from sage.interfaces.kenzo import Sphere sage: S2 = Sphere(2) sage: S3 = Sphere(3) sage: P = S3.cartesian_product(S2) sage: E = P.serre_spectral_sequence() sage: E.group(2,3,0) Additive abelian group isomorphic to Z sage: E.table(2, 0, 3, 0, 2) Z 0 0 Z 0 0 0 0 Z 0 0 Z sage: E.matrix(3,3,0) [0]
sage: from sage.interfaces.kenzo import Sphere sage: S3 = Sphere(3) sage: E = S3.sw_spectral_sequence() sage: E.table(2, 0, 3, 0, 4) Z 0 0 Z 0 0 0 0 Z 0 0 Z 0 0 0 0 Z 0 0 Z sage: E.matrix(3,3,0) [1] sage: E.matrix(3,3,2) [2]
sage: from sage.interfaces.kenzo import Sphere sage: S3 = Sphere(3) sage: L = S3.loop_space() sage: EMS = L.em_spectral_sequence() sage: EMS.table(1, -5, -2, 5, 8) 0 Z Z + Z + Z Z + Z + Z 0 0 0 0 0 0 Z Z + Z 0 0 0 0 sage: EMS.matrix(1, -2 ,8) [ 3 −2 0] [ 3 0 −3] [ 0 2 −3]
6.3. Finite Topological Spaces
> (setf edges (make-array 19 :initial-contents ’(() () () () (1 2) (1 2) (2 3) (2 4) (2 3) (2 4) (3 4) (3 4) (5 6) (5 6 7) (5 6 7 8) (7 8 11) (8 9 12) (9 10 11) (7 10 12)))) > (setf finite-space (build-finite-space :stong (edges-to-stong-mtrx edges) :orgn ’(example))) [K1 Finite-Space]
> (h-regular-homology finite-space 0) Component Z > (h-regular-homology finite-space 1) Component Z/2Z > (h-regular-homology finite-space 2) Component Z Component Z
sage: from sage.homology.finite_topological_spaces import FiniteSpace sage: minimal_basis = {5: {4, 5}, 4: {4}, 2: {2}, 6: {2, 4, 6}, 1: {1, 2, 4}, 3: {1, 2, 4, 3}} sage: M = FiniteSpace(minimal_basis)
sage: M.core()
Finite T0 topological space of 4 points with minimal basis
{2: {2}, 3: {2, 4, 3}, 4: {4}, 6: {2, 4, 6}}
sage: covers = [[9, 13], [7, 13], [4, 13], [8, 12], [7, 12], [5, 12], [9, 11], [6, 11], [5, 11], [8, 10], [6, 10], [4, 10], [3, 9], [2, 9], [3, 8], [2, 8], [3, 7], [1, 7], [3, 6], [1, 6], [2, 5], [1, 5], [2, 4], [1, 4]] sage: P = Poset((list(range(1,14)), covers), cover_relations = True) sage: X = FiniteSpace(P) sage: dvf = X.discrete_vector_field() sage: X.hregular_homology(dvfield = dvf) {0: Z, 1: C2, 2: 0}
7. Conclusions and Further Work
- The package permits an easy installation of Kenzo and incorporates some of the external modules for Kenzo that are scattered in the personal websites of different authors. This has required the authors to update, adapt, polish, and correct flaws in the external code, since some of them were developed for outdated versions of the Kenzo system;
- They spread Kenzo to a broad community by including it in SageMath. The interface also eases the use of Kenzo for users with no previous knowledge of functional programming, since the interface is transparent: The user does not notice that Kenzo is running withing SageMath and the computations are carried out in Kenzo via SageMath commands. No knowledge on functional programming is required;
- Jupyter notebooks can be used as a friendly graphical user interface. Even more, it is possible to use SageMath with our Kenzo interface online with no software installation required;
- The interface is efficient due to the use of a C-library interface, roughly equivalent to Kenzo in time and space efficiency;
- They are extensible: New modules and features can be added to both the package and the interface;
- It is an open-source software: Any user can explore and adapt the code.
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Acknowledgments
Conflicts of Interest
References
- Bubenik, P. Statistical topological data analysis using persistence landscapes. J. Mach. Learn. Res. 2015, 16, 77–102. [Google Scholar]
- Carlsson, G. Topology and data. Bull. Am. Math. Soc. 2009, 46, 255–308. [Google Scholar] [CrossRef] [Green Version]
- Mischaikow, K.; Kokubu, H.; Mrozek, M.; Pilarczyk, P.; Gedeon, T.; Lessard, J.P.; Gameiro, M. The Computational HOMology Project. 2009. Available online: http://chomp.rutgers.edu/ (accessed on 24 March 2021).
- Nanda, V. Perseus, the Persistent Homology Software. 2019. Available online: http://www.sas.upenn.edu/~vnanda/perseus (accessed on 24 March 2021).
- Tausz, A.; Vejdemo-Johansson, M.; Adams, H. JavaPlex: A research software package for persistent (co)homology. In Proceedings of ICMS 2014; Hong, H., Yap, C., Eds.; Lecture Notes in Computer Science 8592; 2014; pp. 129–136. Available online: http://appliedtopology.github.io/javaplex/ (accessed on 24 March 2021).
- Sergeraert, F. The computability problem in Algebraic Topology. Adv. Math. 1994, 104, 1–29. [Google Scholar] [CrossRef] [Green Version]
- Dousson, X.; Rubio, J.; Sergeraert, F.; Siret, Y. The Kenzo Program. Institut Fourier, Grenoble. 1999. Available online: http://www-fourier.ujf-grenoble.fr/~sergerar/Kenzo/ (accessed on 24 March 2021).
- Whitehead, G. Fiber Spaces and the Eilenberg Homology Groups. Proc. Natl. Acad. Sci. USA 1952, 38, 426–430. [Google Scholar] [CrossRef] [PubMed] [Green Version]
- Rubio, J.; Sergeraert, F. Constructive Homological Algebra and Applications, Lecture Notes Summer School on Mathematics, Algorithms, and Proofs; University of Genova: Genova, Italy, 2006; Available online: http://www-fourier.ujf-grenoble.fr/~sergerar/Papers/Genova-MAP-2006-v3.pdf (accessed on 24 March 2021).
- Heras, J.; Pascual, V.; Rubio, J.; Sergeraert, F. fKenzo: A user interface for computations in Algebraic Topology. J. Symb. Comput. 2011, 46, 685–698. [Google Scholar] [CrossRef] [Green Version]
- The SageMath Developers. SageMath, the Sage Mathematics Software System (Version 9.1.0). 2020. Available online: https://www.sagemath.org (accessed on 24 March 2021).
- Palmieri, J. Examples of Simplicial Sets—Sage Reference Manual v8.8. 2019. Available online: https://doc.sagemath.org/html/en/reference/homology/sage/homology/simplicial_set_examples.html##sage.homology.simplicial_set_examples.simplicial_data_from_kenzo_output (accessed on 24 March 2021).
- Cuevas-Rozo, J.; Marco-Buzunáriz, M.A.; Romero, A. Computing with Kenzo from Sage. In Proceedings of the 2019 conference on Effective Methods in Algebraic Geometry. 2019, p. 23. Available online: http://eventos.ucm.es/_files/_event/_12097/_editorFiles/file/Abstracts_MEGA-alphabetic.pdf (accessed on 24 March 2021).
- Cuevas-Rozo, J.; Divasón, J.; Marco-Buzunáriz, M.; Romero, A. A Kenzo interface for algebraic topology computations in SageMath. ACM Commun. Comput. Algebra 2019, 53, 61–64. [Google Scholar] [CrossRef]
- Rubio, J.; Sergeraert, F.; Siret, Y. EAT: Symbolic Software for Effective Homology Computation; Institut Fourier: Grenoble, France, 1997; Available online: https://www-fourier.ujf-grenoble.fr/~sergerar/Kenzo/EAT-program.zip (accessed on 24 March 2021).
- Heber, G. A Repackaged Version of the Kenzo Program by Francis Sergeraert and Collaborators. 2019. Available online: https://github.com/gheber/kenzo (accessed on 24 March 2021).
- May, J.P. Simplicial Objects in Algebraic Topology; Van Nostrand Mathematical Studies; University of Chicago Press: Chicago, IL, USA, 1967. [Google Scholar]
- Heras, J. A Kenzo Module Computing Homotopy Groups. 2011. Available online: https://esus.unirioja.es/psycotrip/archivos_documentos/homotopy.cl (accessed on 24 March 2021).
- Romero, A.; Rubio, J.; Sergeraert, F. Computing Spectral Sequences. J. Symb. Comput. 2006, 41, 1059–1079. [Google Scholar] [CrossRef] [Green Version]
- Cuevas-Rozo, J. Finite Topological Spaces in Kenzo. 2020. Available online: https://github.com/jcuevas-rozo/finite-topological-spaces (accessed on 24 March 2021).
- Marco, M.; Romero, A. Library Interface to Kenzo—Sage Reference Manual v9.2. 2020. Available online: https://doc.sagemath.org/html/en/reference/interfaces/sage/interfaces/kenzo.html (accessed on 24 March 2021).
- Real, P. An algorithm computing homotopy groups. Math. Comput. Simul. 1996, 42, 461–465. [Google Scholar] [CrossRef]
- Hurewicz, W. Beiträge zur Topologie der Deformationen I-II. Proc. Akad. Van Wet. 1935, 38, 112–119, 521–528. [Google Scholar]
- Newman, M. Integral Matrices; Academic Press: Cambridge, MA, USA, 1972. [Google Scholar]
- Cuevas-Rozo, J.; Divasón, J.; Marco-Buzunáriz, M.; Romero, A. A New Algorithm for Computing the Twisting Operator of the Whitehead Tower Method in the Not 1-Reduced Case. 2021. Available online: https://www.unirioja.es/cu/anromero/TwistingOperatorWhiteheadTower.pdf (accessed on 24 March 2021).
- Babson, E.; Björner, A.; Linusson, S.; Shareshian, J.; Welker, V. Complexes Of Not i-Connected Graphs. Topology 1996, 38, 271–299. [Google Scholar] [CrossRef] [Green Version]
- Heras, J. Effective Homology of the pushout of simplicial sets. In Proceedings of the XII Encuentros de Álgebra Computacional y Aplicaciones (EACA 2010), Santiago de Compostela, Spain, 19–21 July 2010; pp. 152–156. [Google Scholar]
- McCleary, J. A User’s Guide to Spectral Sequences, 2nd ed.; Number 58 in Cambridge Studies in Advanced Mathematics; Cambridge University Press: Cambridge, UK, 2001. [Google Scholar]
- Serre, J.P. Homologie singulière des espaces fibrés. Ann. Math. 1951, 54, 425–505. [Google Scholar] [CrossRef]
- Eilenberg, S.; Moore, J.C. Homology and fibrations, I: Coalgebras, cotensor product and its derived functors. Comment. Math. Helv. 1965, 40, 199–236. [Google Scholar] [CrossRef]
- Alexandroff, P. Diskrete Räume. Mat. Sb. 1937, 2, 501–518. [Google Scholar]
- Stong, R.E. Finite topological spaces. Trans. Am. Math. Soc. 1966, 123, 325–340. [Google Scholar] [CrossRef]
- Cuevas-Rozo, J.; Lambán, L.; Romero, A.; Sarria, H. Effective homological computations on finite topological spaces. Appl. Algebra Eng. Commun. Comput. 2020. In press. [Google Scholar] [CrossRef]
- Jipsen, P.; Saliola, F. Finite Posets—Sage Reference Manual v9.2. 2020. Available online: https://doc.sagemath.org/html/en/reference/combinat/sage/combinat/posets/posets.html (accessed on 24 March 2021).
- Barmak, J.A. Algebraic Topology of Finite Topological Spaces and Applications; Lecture Notes in Mathematics; Springer: Berlin/Heidelberg, Germany, 2011; Volume 2032. [Google Scholar]
- Hart, W.; Johansson, F.; Pancratz, S. FLINT: Fast Library for Number Theory, Version 2.4.0. 2013. Available online: http://flintlib.org (accessed on 24 March 2021).
K | m | |
---|---|---|
4 | ||
5 | ||
6 | ||
8 |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2021 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Cuevas-Rozo, J.; Divasón, J.; Marco-Buzunáriz, M.; Romero, A. Integration of the Kenzo System within SageMath for New Algebraic Topology Computations. Mathematics 2021, 9, 722. https://doi.org/10.3390/math9070722
Cuevas-Rozo J, Divasón J, Marco-Buzunáriz M, Romero A. Integration of the Kenzo System within SageMath for New Algebraic Topology Computations. Mathematics. 2021; 9(7):722. https://doi.org/10.3390/math9070722
Chicago/Turabian StyleCuevas-Rozo, Julián, Jose Divasón, Miguel Marco-Buzunáriz, and Ana Romero. 2021. "Integration of the Kenzo System within SageMath for New Algebraic Topology Computations" Mathematics 9, no. 7: 722. https://doi.org/10.3390/math9070722