Join Inverse Categories as Models of Reversible Recursion

  • Holger Bock Axelsen
  • Robin Kaarsgaard
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9634)


Recently, a number of reversible functional programming languages have been proposed. Common to several of these is the assumption of totality, a property that is not necessarily desirable, and certainly not required in order to guarantee reversibility. In a categorical setting, however, faithfully capturing partiality requires handling it as additional structure. Recently, Giles studied inverse categories as a model of partial reversible (functional) programming. In this paper, we show how additionally assuming the existence of countable joins on such inverse categories leads to a number of properties that are desirable when modelling reversible functional programming, notably morphism schemes for reversible recursion, a \(\dagger \)-trace, and algebraic \(\omega \)-compactness. This gives a categorical account of reversible recursion, and, for the latter, provides an answer to the problem posed by Giles regarding the formulation of recursive data types at the inverse category level.


Partial Order Restriction Functor Monoidal Category Compatibility Relation Inverse Monoids 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.



We thank the anonymous reviewers for their useful comments. An abstract of this paper was presented at the 27th Nordic Workshop on Programming Theory held in Reykjavík, Iceland in October, 2015. The research was partly funded by the Danish Council for Independent Research \(\mid \) Natural Sciences under the Foundations of Reversible Computing project. We also acknowledge the support given by COST Action IC1405 Reversible computation.


  1. 1.
    Abramsky, S.: Retracing some paths in process algebra. In: Montanari, U., Sassone, V. (eds.) CONCUR 1996. LNCS, vol. 1119, pp. 1–17. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  2. 2.
    Abramsky, S., Haghverdi, E., Scott, P.: Geometry of interaction and linear combinatory algebras. Math. Struct. Comput. Sci. 12(5), 625–665 (2002)MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
    Adámek, J.: Recursive data types in algebraically \(\omega \)-complete categories. Inf. Comput. 118, 181–190 (1995)MathSciNetCrossRefzbMATHGoogle Scholar
  4. 4.
    Axelsen, H.B., Glück, R.: What do reversible programs compute? In: Hofmann, M. (ed.) FOSSACS 2011. LNCS, vol. 6604, pp. 42–56. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  5. 5.
    Barr, M.: Algebraically compact functors. J. Pure Appl. Algebra 82(3), 211–231 (1992)MathSciNetCrossRefzbMATHGoogle Scholar
  6. 6.
    Bennett, C.H.: Logical reversibility of computation. IBM J. Res. Dev. 17(6), 525–532 (1973)MathSciNetCrossRefzbMATHGoogle Scholar
  7. 7.
    Bowman, W.J., James, R.P., Sabry, A.: Dagger traced symmetric monoidal categories and reversible programming. In: Proceedings of RC 2011, pp. 51–56. Ghent University (2011).
  8. 8.
    Cockett, J.R.B., Guo, X.: Join restriction categories and the importance of being adhesive (2007)., presentation at Category Theory 2007
  9. 9.
    Cockett, J.R.B., Lack, S.: Restriction categories I: categories of partial maps. Theoret. Comput. Sci. 270(1–2), 223–259 (2002)MathSciNetCrossRefzbMATHGoogle Scholar
  10. 10.
    Cockett, J.R.B., Lack, S.: Restriction categories II: partial map classification. Theoret. Comput. Sci. 294(1–2), 61–102 (2003)MathSciNetCrossRefzbMATHGoogle Scholar
  11. 11.
    Cockett, J.R.B., Lack, S.: Restriction categories III: colimits, partial limits and extensivity. Math. Struct. Comput. Sci. 17(4), 775–817 (2007)MathSciNetCrossRefzbMATHGoogle Scholar
  12. 12.
    Cockett, R., Garner, R.: Restriction categories as enriched categories. Theoret. Comput. Sci. 523, 37–55 (2014)MathSciNetCrossRefzbMATHGoogle Scholar
  13. 13.
    Cristescu, I., Krivine, J., Varacca, D.: A compositional semantics for the reversible \(\pi \)-calculus. In: LICS 2013, pp. 388–397. IEEE Computer Society (2013)Google Scholar
  14. 14.
    Fiore, M.P.: Axiomatic Domain Theory in Categories of Partial Maps. Ph.D. thesis, University of Edinburgh (1994)Google Scholar
  15. 15.
    Fredkin, E., Toffoli, T.: Conservative logic. Int. J. Theor. Phys. 21(3–4), 219–253 (1982)MathSciNetCrossRefzbMATHGoogle Scholar
  16. 16.
    Giles, B.G.: An Investigation of some Theoretical Aspects of Reversible Computing. Ph.D. thesis, University of Calgary (2014)Google Scholar
  17. 17.
    Guo, X.: Products, Joins, Meets, and Ranges in Restriction Categories. Ph.D. thesis, University of Calgary (2012)Google Scholar
  18. 18.
    Haghverdi, E.: A Categorical Approach to Linear Logic, Geometry of Proofs and Full Completeness. Ph.D. thesis, Carlton University and University of Ottawa (2000)Google Scholar
  19. 19.
    Hasegawa, M.: Models of Sharing Graphs. Ph.D. thesis, University of Edinburgh (1997)Google Scholar
  20. 20.
    Hasegawa, M.: Recursion from cyclic sharing: traced monoidal categories and models of cyclic lambda calculi. In: de Groote, P., Hindley, J.R. (eds.) TLCA 1997. LNCS, vol. 1210, pp. 196–213. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  21. 21.
    Heunen, C.: On the functor \(\ell ^{2}\). In: Coecke, B., Ong, L., Panangaden, P. (eds.) Computation, Logic, Games and Quantum Foundations. LNCS, vol. 7860, pp. 107–121. Springer, Heidelberg (2013)Google Scholar
  22. 22.
    Hines, P.M.: The Algebra of Self-Similarity and its Applications. Ph.D. thesis, University of Wales, Bangor (1998)Google Scholar
  23. 23.
    Hoshino, N.: A representation theorem for unique decomposition categories. In: Berger, U., Mislove, M. (eds.) MFPS XXVIII. Electronic Notes in Theoretical Computer Science, vol. 286, pp. 213–227. Elsevier (2012)Google Scholar
  24. 24.
    Hyland, M.: Abstract and concrete models for recursion. In: Grumberg, O., Nipkow, T., Pfaller, C. (eds.) Proceedings of the NATO Advanced Study Institute on Formal Logical Methods for System Security and Correctness, pp. 175–198. IOS Press (2008)Google Scholar
  25. 25.
    James, R.P., Sabry, A.: Theseus: a high level language for reversible computing, work-in-progress report at RC 2014 (2014).
  26. 26.
    Joyal, A., Street, R., Verity, D.: Traced monoidal categories. Math. Proc. Camb. Philos. Soc. 119(3), 447–468 (1996)MathSciNetCrossRefzbMATHGoogle Scholar
  27. 27.
    Kutrib, M., Wendlandt, M.: Reversible limited automata. In: Durand-Lose, J., Nagy, B. (eds.) MCU 2015. LNCS, vol. 9288, pp. 113–128. Springer, Heidelberg (2015)CrossRefGoogle Scholar
  28. 28.
    Landauer, R.: Irreversibility and heat generation in the computing process. IBM J. Res. Dev. 5(3), 183–191 (1961)MathSciNetCrossRefzbMATHGoogle Scholar
  29. 29.
    Lawson, M.V.: Inverse Semigroups: The Theory of Partial Symmetries. World Scientific, Singapore (1998)CrossRefzbMATHGoogle Scholar
  30. 30.
    Manes, E.G., Benson, D.B.: The inverse semigroup of a sum-ordered semiring. Semigroup Forum 31(1), 129–152 (1985)MathSciNetCrossRefzbMATHGoogle Scholar
  31. 31.
    Morita, K.: Two-way reversible multihead automata. Fundamenta Informaticae 110(1–4), 241–254 (2011)MathSciNetzbMATHGoogle Scholar
  32. 32.
    Robinson, E., Rosolini, G.: Categories of partial maps. Inf. Comput. 79, 95–130 (1988)MathSciNetCrossRefzbMATHGoogle Scholar
  33. 33.
    Schordan, M., Jefferson, D., Barnes, P., Oppelstrup, T., Quinlan, D.: Reverse code generation for parallel discrete event simulation. In: Krivine, J., Stefani, J.B. (eds.) RC 2015. LNCS, vol. 9138, pp. 95–110. Springer, Heidelberg (2015)Google Scholar
  34. 34.
    Schultz, U.P., Bordignon, M., Støy, K.: Robust and reversible execution of self-reconfiguration sequences. Robotica 29(1), 35–57 (2011)CrossRefGoogle Scholar
  35. 35.
    Schultz, U.P., Laursen, J.S., Ellekilde, L., Axelsen, H.B.: Towards a domain-specific language for reversible assembly sequences. In: Krivine, J., Stefani, J.B. (eds.) RC 2015. LNCS, vol. 9138, pp. 111–126. Springer, Heidelberg (2015)Google Scholar
  36. 36.
    Selinger, P.: Idempotents in dagger categories. In: Selinger, P. (ed.) QPL 2006. Electronic Notes in Theoretical Computer Science, vol. 210, pp. 107–122. Elsevier (2008)Google Scholar
  37. 37.
    Selinger, P.: A survey of graphical languages for monoidal categories. In: Coecke, B. (ed.) New Structures for Physics. Lecture Notes in Physics, vol. 813, pp. 289–355. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  38. 38.
    Selinger, P.: Finite dimensional Hilbert spaces are complete for dagger compact closed categories. Logical Methods Comput. Sci. 8(3), 1–12 (2012)MathSciNetCrossRefzbMATHGoogle Scholar
  39. 39.
    Yokoyama, T., Axelsen, H.B., Glück, R.: Towards a reversible functional language. In: De Vos, A., Wille, R. (eds.) RC 2011. LNCS, vol. 7165, pp. 14–29. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  40. 40.
    Yokoyama, T., Glück, R.: A reversible programming language and its invertible self-interpreter. In: Proceedings of the Partial Evaluation and Program Manipulation, pp. 144–153. ACM (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2016

Authors and Affiliations

  1. 1.DIKU, Department of Computer ScienceUniversity of CopenhagenCopenhagenDenmark

Personalised recommendations