GithubHelp home page GithubHelp logo

silky / at Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mvr/at

0.0 0.0 0.0 326 KB

Effective Algebraic Topology in Haskell

License: BSD 3-Clause "New" or "Revised" License

Haskell 88.13% TeX 11.87%

at's Introduction

AT

A Haskell rewrite of Kenzo, a collection of algorithms for 'effective algebraic topology'. The algorithms and implementations in Kenzo were created by Francis Sergeraert, Julio Rubio Garcia, Xavier Dousson, Ana Romero and many collaborators.

Writing it from scratch myself is the only chance I have of understanding it!

Central Concepts of Kenzo

A simplicial set X is described by a type a, containing whatever data is required to specify X, and a type GeomSimplex a, whose elements correspond to non-degenerate simplices (in Kenzo called 'geometric simplices'). Like Kenzo we also allow a predicate on GeomSimplex a specifying when an element actually describes a geometric simplex and when it is 'spurious'.

An actual simplex of X is a geometric simplex together with a 'formal degeneracy operator', which is a list of degeneracy operators in a normal form. Face maps are implemented as functions from geometric simplices to (possibly degenerate) simplices, and the extension of these face maps to all simplices is forced by the simplicial identities.

A simplicial set is of finite type if there is a finite number of geometric simplices for each dimension, and there is a function giving a list of these simplices for any dimension n. It is not required that there are finitely many geometric simplices overall.

The normalised chain complex N(X) of X has each N(X)_n given by the free abelian group on the set of nondegenerate n-simplices of X, with the boundary of a simplex calculated similar to usual (the alternating sum of face maps), but ignoring any degenerate faces.

If C(X) is the ordinary chain complex of simplicial chains of X, the quotient map C(X) -> N(X) is a quasi-isomorphism, and so if X is of finite type, then the homology of X can be computed via N(X).

But many unavoidable simplicial sets (like K(ℤ,n) and loop spaces ΩX) are not of finite type, and so we need some other way to calculate their homology. This is where 'effective homology' comes in.

A reduction between chain complexes C and D is a strong deformation retract of chain complexes. The data of a reduction unwinds to a triple (f : C -> D, g : D -> C, h : C -> C) where f and g are degree 0, the homotopy operator h is degree 1, and certain equations involving these hold. A (strong chain) equivalence between two chain complexes C and D is a span of reductions l : E -> C and r : E -> D.

An effective homology structure on C is an equivalence between C and a chain complex F of finite type.

A simplicial set with effective homology is a simplicial set X equipped with an effective homology structure on N(X).

The point of Kenzo is that although constructions on simplicial sets sometimes do not preserve levelwise finiteness, they do extend to effective homology structures. And so if we begin with a finite simplicial complex and perform some constructions using it, then we can often compute the homology of the result even if the actual simplicial sets are now far too complicated to get a handle on.

Plan

Homological Algebra

  • Definitions
    • Chain Complex
    • Bicomplex
    • Reduction
      • Perturbation
    • Strong Equivalence
      • Composition via Span
  • Constructions
    • Tensor
      • Functoriality
    • 'Bicone' (specialised pushout for surjections)
      • Tot
    • Bar
      • Functoriality
    • Cobar
      • Of 1-reduced
      • Of 0-reduced
      • Functoriality

Simplicial Sets

  • Definitions
    • Simplicial Set
    • Simplicial Morphism
    • Simplicial Group
    • Kan Structure
    • SSet With Effective Homology
    • Principal Fibrations
    • Discrete Vector Fields
    • Coalgebra Structure on Chains
    • Algebra Structure on Chains of Groups
    • Kan Structure on Chains of Groups
  • Finite Examples
    • Spheres
      • Treat S^1 separately (not 1-reduced)
    • Moore Spaces
    • Projective Spaces
  • Eilenberg-MacLane Spaces
    • K(ℤ,1)
    • K(ℤ/2,1) (Can be made particularly efficient)
    • K(ℤ/p,1)
  • Constructions
    • Products
      • Group structure
    • Total Space of Principal Fibration
    • Loop Space
      • Of 1-reduced
      • Of 0-reduced
      • Group structure
      • Canonical twisting function X -> GX
    • Classifying Space
      • For 0-reduced group
      • For non-reduced group
      • Special case for discrete groups
      • Group Structure
    • Suspension
    • Pushouts (of 1-reduced sSets)
    • Other Finite Homotopy Colimits

Effective Homology

Misc TODOs

  • Fix space leaks, jeez
  • Pretty-printing for everything
  • Docs for everything
  • Move this list to Github issues
  • Consolidate some files? Eg. Sum, Shift into ChainComplex, Morphism into SSet
  • Short-circuits: e.g. composing with zero/id for morphism/reduction/equivalence
  • Make sure things are being aggressively inlined
  • Make homology calculation do less work: should just need SNF of one matrix and the rank of another.
  • Improve Smith normal form code, would be better to call out to some existing library instead of rolling our own. The options appear to be LinBox or FLINT. The former appears to support sparse matrices better
  • Check homology of K(G,n) calculations against known results

Notes

  • I have switched a little terminology: I believe Kenzo uses 'effective' for finite-type things and 'locally effective' for what I am calling effective things, but I find this a bit confusing.
  • In Kenzo, every sSet is conflated with its chain complex of normalised chains, here I have kept the two separate.
  • Avoid over-engineering the Haskell as much as possible.
  • That being said, the use of Constrained.Category is a bit of a mess.
  • There may be a way to unify some of the algorithms via bicomplexes and the 'generalised Eilenberg-Zilber theorem' relating the diagonal and total complexes. But the EZ-theorem only gives a strong deformation retract in special cases, in general it is just a chain homotopy equivalence.
  • The classifying space functor Wbar factors through the 'total bisimplicial set' functor. But it would be difficult to describe the total functor on bisimplicial spaces algorithmically, because its definition involves the equaliser of certain face maps. So it only makes sense to try and implement consider bicomplexes and not bisimplicial sets.
  • Running Kenzo with SBCL:
    > rlwrap sbcl
    (require :asdf)
    (load "kenzo.asd")
    (asdf:load-system "kenzo")
    (in-package :kenzo)
    
    (finite-ss-table '(a b 1 c (b a)))
    
    etc.
  • classes.lisp in Kenzo contains the meaning of some of the 4 letter abbreviations
    • ABSM = ABstract SiMplex
    • GMSM = GeoMetric SiMplex
    • CMBN = CoMBinatioN
    • CFFC = CoeFFiCient
    • GNRT = GeNeRaTor
    • CMPR = CoMPaRison
    • CMPRF = CoMPaRison Function
    • ICMBN = Internal-CoMBiNation
    • STRT = STRaTegy
    • bsgn = BaSe GeNerator
    • dffr = DiFFeRential
    • grmd = GRound MoDule
    • efhm = EFfective HoMology
    • idnm = IDentification NuMber
    • orgn = ORiGiN
    • vctr = VeCToR
    • intr-mrph = INTeRnal-MoRPHism (the class of actual functions implementing a morphism of simplicial sets or chain complexes)
    • sbtr = SuBTRact
    • crpr = CarRtesian PRoduct
    • BRGN = BaR GeNerator
    • TNPR = TeNsor PRoduct
  • Unguessable CL functions
    • (ash x n) = bit shift x left by n
    • (add x y) and (sbtr x y) can sometimes actually be a use of the perturbation lemma(!!), depending on the types of the arguments.

References

Code:

Papers:

Everything relevant to effective algebraic topology that I can find (not all of which is relevant for implementation). Some of the documents have multiple versions; I have tried to link to the most recent in each case. Some material is repeated in different references.

[1] Franz, M. 2021. Szczarba’s twisting cochain and the Eilenberg-Zilber maps. Collectanea Mathematica. 72, 3 (2021), 569–586.

[2] Guidolin, A. and Romero, A. 2021. Computing higher Leray-Serre spectral sequences of towers of fibrations. Foundations of Computational Mathematics. 21, 4 (2021), 1023–1074.

[3] Romero, A., Rubio, J., Sergeraert, F. and Szymik, M. 2020. A new Kenzo module for computing the Eilenberg-Moore spectral sequence. ACM Communications in Computer Algebra. 54, 2 (2020), 57–60.

[4] Romero, A., Rubio, J. and Sergeraert, F. 2019. An implementation of effective homotopy of fibrations. Journal of Symbolic Computation. 94, (2019), 149–172.

[5] Romero, A. and Sergeraert, F. 2019. The eilenberg-zilber theorem via discrete vector fields.

[6] Zhechev, S. 2019. Algorithmic aspects of homotopy theory and embeddability. Institute of Science; Technology Austria.

[7] Sergeraert, F. 2018. The homological hexagonal lemma. Georgian Mathematical Journal. 25, 4 (2018), 603–622.

[8] Vejdemo-Johansson, M. 2018. Algorithms in A-algebras. Georgian Mathematical Journal. 25, 4 (2018), 629–635.

[9] Romero, A. and Sergeraert, F. 2017. A Bousfield-Kan algorithm for computing the effective homotopy of a space. Foundations of Computational Mathematics. 17, 5 (2017), 1335–1366.

[10] Hess, K. 2016. The Hochschild complex of a twisting cochain. Journal of Algebra. 451, (2016), 302–356.

[11] Romero, A. and Sergeraert, F. 2015. A combinatorial tool for computing the effective homotopy of iterated loop spaces. Discrete & Computational Geometry. 53, 1 (2015), 1–15.

[12] Čadek, M., Krčál, M., Matoušek, J., Sergeraert, F., Vokřínek, L. and Wagner, U. 2014. Computing all maps into a sphere. Journal of the ACM. 61, 3 (2014), Art. 17, 44.

[13] Čadek, M., Krčál, M., Matoušek, J., Vokřínek, L. and Wagner, U. 2014. Polynomial-time computation of homotopy groups and Postnikov systems in fixed dimension. SIAM Journal on Computing. 43, 5 (2014), 1728–1780.

[14] Filakovský, M. 2014. Effective homology for homotopy colimit and cofibrant replacement. Universitatis Masarykianae Brunensis. Facultas Scientiarum Naturalium. Archivum Mathematicum. 50, 5 (2014), 273–286.

[16] Krčál, M., Matoušek, J. and Sergeraert, F. 2013. Polynomial-time homology for simplicial Eilenberg-MacLane spaces. Foundations of Computational Mathematics. The Journal of the Society for the Foundations of Computational Mathematics. 13, 6 (2013), 935–963.

[17] Filakovský, M. 2012. Effective chain complexes for twisted products. Universitatis Masarykianae Brunensis. Facultas Scientiarum Naturalium. Archivum Mathematicum. 48, 5 (2012), 313–322.

[18] Romero, A. and Rubio, J. 2012. Computing the homology of groups: The geometric way. Journal of Symbolic Computation. 47, 7 (2012), 752–770.

[19] Romero, A. and Sergeraert, F. 2012. Discrete vector fields and fundamental algebraic topology.

[20] Romero, A. and Sergeraert, F. 2012. Effective homotopy of fibrations. Applicable Algebra in Engineering, Communication and Computing. 23, 1-2 (2012), 85–100.

[21] Rubio, J. and Sergeraert, F. 2012. Constructive homological algebra and applications.

[22] Stevenson, D. 2012. Décalage and Kan’s simplicial loop group functor. Theory and Applications of Categories. 26, (2012), No. 28, 768–787.

[23] Spiwack, A. 2011. Verified Computing in Homological Algebra. Ecole Polytechnique X.

[25] Álvarez, V., Armario, J.A., Frau, M.D. and Real, P. 2010. Cartan’s constructions and the twisted Eilenberg-Zilber theorem. Georgian Mathematical Journal. 17, 1 (2010), 13–23.

[26] Berciano Alcaraz, A., Rubio, J. and Sergeraert, F. 2010. A case study of A-structure. Georgian Mathematical Journal. 17, 1 (2010), 57–77.

[27] Heras, J. 2010. Effective homology of the pushout of simplicial sets. Proceedings of the XII encuentros de álgebra computacional y aplicaciones (2010), 152–156.

[28] Heras, J., Pascual, V., Romero, A. and Rubio, J. 2010. Integrating multiple sources to answer questions in algebraic topology. Proceedings of the 10th ASIC and 9th MKM international conference, and 17th calculemus conference on intelligent computer mathematics (Paris, France, 2010), 331–335.

[29] Hess, K. and Tonks, A. 2010. The loop group and the cobar construction. Proceedings of the American Mathematical Society. 138, 5 (2010), 1861–1876.

[30] Romero, A. 2010. Computing the first stages of the Bousfield-Kan spectral sequence. Applicable Algebra in Engineering, Communication and Computing. 21, 3 (2010), 227–248.

[31] Álvarez, V., Armario, J.A., Frau, M.D. and Real, P. 2009. Algebra structures on the comparison of the reduced bar construction and the reduced W-construction. Communications in Algebra. 37, 10 (2009), 3643–3665.

[32] Romero, A., Ellis, G. and Rubio, J. 2009. Interoperating between computer algebra systems: Computing homology of groups with Kenzo and GAP. ISSAC 2009—Proceedings of the 2009 International Symposium on Symbolic and Algebraic Computation (2009), 303–310.

[33] Sergeraert, F. 2009. Triangulations of complex projective spaces.

[34] Thomas, S. 2008. The functors and Diag ∘ Nerve are simplicially homotopy equivalent. Journal of Homotopy and Related Structures. 3, 1 (2008), 359–378.

[35] Berciano, A., Jiménez, M.J. and Real, P. 2006. Reducing computational costs in the basic perturbation lemma. Computer algebra in scientific computing. V.G. Ganzha, E.W. Mayr, and E.V. Vorozhtsov, eds. Springer, Berlin. 33–48.

[36] Romero, A., Rubio, J. and Sergeraert, F. 2006. Computing spectral sequences. Journal of Symbolic Computation. 41, 10 (2006), 1059–1079.

[37] González-Díaz, R. and Real, P. 2003. Computation of cohomology operations of finite simplicial complexes. Homology Homotopy Appl. 83–93.

[38] Clément, A. 2002. Integral cohomology of finite Postnikov towers. Université de Lausanne.

[39] Real, P. 2000. Homological perturbation theory and associativity. Homology, Homotopy and Applications. 2, (2000), 51–88.

[40] Dousson, X. 1999. Homologie effective des classifiants et calculs de groupes d’homotopie. l’Université Joseph Fourier.

[41] Goerss, P.G. and Jardine, J.F. 1999. Simplicial homotopy theory. Birkhäuser Verlag, Basel.

[42] Hurado, P.R., Álvarez, V., Armario, J.A. and González-Díaz, R. 1999. Algorithms in algebraic topology and homological algebra: The problem of the complexity. Zapiski Nauchnykh Seminarov POMI. 258, (1999), 161–184, 358.

[43] Rubio Garcia, J., Sergeraert, F. and Siret, Y. 1999. Kenzo: A symbolic software for effective homology computation. Institut Fourier.

[44] Forman, R. 1998. Morse theory for cell complexes. Advances in Mathematics. 134, 1 (1998), 90–145.

[45] Real, P. 1996. An algorithm computing homotopy groups. Math. Comput. Simulation. 42, 4-6 (1996), 461–465.

[46] Real, P. 1996. On the computability of the Steenrod squares. Ann. Univ. Ferrara Sez. VII (N.S.). 42, (1996), 57–63 (1998).

[48] Morace, F. and Prouté, A. 1994. Brown’s natural twisting cochain and the Eilenberg-Mac Lane transformation. J. Pure Appl. Algebra. 97, 1 (1994), 81–89.

[49] Real Jurado, P. 1993. Algoritmos de cálculo de homología efectiva de los espacios clasificantes. Universidad de Sevilla, Departamento de Geometría y Topología.

[50] Rubio, J. and Sergeraert, F. 1993. Locally effective objects and algebraic topology. Computational algebraic geometry (Nice, 1992). F. Eyssette and A. Galligo, eds. Birkhäuser Boston, Boston, MA. 235–251.

[51] Lambe, L. and Stasheff, J. 1987. Applications of perturbation theory to iterated fibrations. Manuscripta Mathematica. 58, 3 (1987), 363–376.

[52] Sergeraert, F. 1987. Homologie effective. I. Comptes Rendus de l’Académie des Sciences - Series I - Mathematics. 304, 11 (1987), 279–282.

[53] Sergeraert, F. 1987. Homologie effective. II. Comptes Rendus de l’Académie des Sciences - Series I - Mathematics. 304, 12 (1987), 319–321.

at's People

Contributors

mvr avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.