Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1007/978-3-030-33636-3_13guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

En Garde! Unguarded Iteration for Reversible Computation in the Delay Monad

Published: 07 October 2019 Publication History

Abstract

Reversible computation studies computations which exhibit both forward and backward determinism. Among others, it has been studied for half a century for its applications in low-power computing, and forms the basis for quantum computing.
Though certified program equivalence is useful for a number of applications (e.g., certified compilation and optimization), little work on this topic has been carried out for reversible programming languages. As a notable exception, Carette and Sabry have studied the equivalences of the finitary fragment of, a reversible combinator calculus, yielding a two-level calculus of type isomorphisms and equivalences between them. In this paper, we extend the two-level calculus of finitary to one for full (i.e., with both recursive types and iteration by means of a trace combinator) using the delay monad, which can be regarded as a “computability-aware” analogue of the usual maybe monad for partiality. This yields a calculus of iterative (and possibly non-terminating) reversible programs acting on user-defined dynamic data structures together with a calculus of certified program equivalences between these programs.

References

[1]
Abel Andreas and Chapman James Normalization by Evaluation in the Delay Monad: A Case Study for Coinduction via Copatterns and Sized Types Electronic Proceedings in Theoretical Computer Science 2014 153 51-67
[2]
Altenkirch T, Danielsson NA, and Kraus N Esparza J and Murawski AS Partiality, revisited Foundations of Software Science and Computation Structures 2017 Heidelberg Springer 534-549
[3]
Barthe G, Capretta V, and Pons O Setoids in type theory J. Funct. Program. 2003 13 2 261-293
[4]
Bennett CH Logical reversibility of computation IBM J. Res. Dev. 1973 17 6 525-532
[5]
Benton N, Kennedy A, and Varming C Berghofer S, Nipkow T, Urban C, and Wenzel M Some domain theory and denotational semantics in Coq Theorem Proving in Higher Order Logics 2009 Heidelberg Springer 115-130
[6]
Capretta, V.: General recursion via coinductive types. Logical Methods Comput. Sci. 1(2) (2005).
[7]
Carette J and Sabry A Thiemann P Computing with semirings and weak rig groupoids Programming Languages and Systems 2016 Heidelberg Springer 123-148
[8]
Chapman J, Uustalu T, and Veltri N Quotienting the delay monad by weak bisimilarity Math. Struct. Comput. Sci. 2019 29 1 67-92
[9]
Cockett JRB and Lack S Restriction categories I: categories of partial maps Theoret. Comput. Sci. 2002 270 1–2 223-259
[10]
Cockett JRB and Lack S Restriction categories III: colimits, partial limits and extensivity Math. Struct. Comput. Sci. 2007 17 4 775-817
[11]
Danielsson, N.A.: Operational semantics using the partiality monad. In: ACM SIGPLAN International Conference on Functional Programming, ICFP 2012, Copenhagen, Denmark, 9–15 September 2012, pp. 127–138 (2012).
[12]
Danielsson Nils Anders Up-to techniques using sized types Proceedings of the ACM on Programming Languages 2017 2 POPL 1-28
[13]
Escardó, M.H., Knapp, C.M.: Partial elements and recursion via dominances in univalent type theory. In: 26th EACSL Annual Conference on Computer Science Logic, CSL 2017, 20–24 August 2017, Stockholm, Sweden, pp. 21:1–21:16 (2017).
[14]
Ésik, Z., Goncharov, S.: Some remarks on conway and iteration theories. CoRR abs/1603.00838 (2016). http://arxiv.org/abs/1603.00838
[15]
Giles, B.: An investigation of some theoretical aspects of reversible computing. Ph.D. thesis, University of Calgary (2014)
[16]
Goncharov S, Milius S, and Rauch C Complete elgot monads and coalgebraic resumptions Electr. Notes Theor. Comput. Sci. 2016 325 147-168
[17]
Goncharov, S., Schröder, L., Rauch, C., Jakob, J.: Unguarded recursion on coinductive resumptions. Logical Methods Comput. Sci. 14(3) (2018).
[18]
Hasegawa M de Groote P and Roger Hindley J Recursion from cyclic sharing: traced monoidal categories and models of cyclic lambda calculi Typed Lambda Calculi and Applications 1997 Heidelberg Springer 196-213
[19]
Hofmann Martin Extensional Constructs in Intensional Type Theory 1997 London Springer London
[20]
Jacobsen PAH, Kaarsgaard R, and Thomsen MK Kari J and Ulidowski I CoreFun: a typed functional reversible core language Reversible Computation 2018 Cham Springer 304-321
[21]
James, R.P., Sabry, A.: Information effects. In: Proceedings of the 39th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2012, Philadelphia, Pennsylvania, USA, 22–28 January 2012, pp. 73–84 (2012).
[22]
James, R.P., Sabry, A.: Theseus: A high level language for reversible computing (2014). https://www.cs.indiana.edu/~sabry/papers/theseus.pdf. Work-in-progress report at RC 2014
[23]
Joyal A, Street R, and Verity D Traced monoidal categories Math. Proc. Camb. Philos. Soc. 1996 119 3 447-468
[24]
Kaarsgaard R and Glück R A categorical foundation for structured reversible flowchart languages: soundness and adequacy Logical Methods Comput. Sci. 2018 14 3 1-38
[25]
Kaarsgaard R, Axelsen HB, and Glück R Join inverse categories and reversible recursion J. Logic Algebra Methods Program. 2017 87 33-50
[26]
Karvonen, M.: The Way of the Dagger. Ph.D. thesis, School of Informatics, University of Edinburgh (2019)
[27]
Kastl, J.: Inverse categories. In: Hoehnke, H.J. (ed.) Algebraische Modelle, Kategorien und Gruppoide, Studien zur Algebra und ihre Anwendungen, vol. 7, pp. 51–60. Akademie-Verlag, Berlin (1979)
[28]
Landauer R Irreversibility and heat generation in the computing process IBM J. Res. Dev. 1961 5 3 261-269
[29]
Laplaza ML Kelly GM, Laplaza M, Lewis G, and Mac Lane S Coherence for distributivity Coherence in Categories 1972 Heidelberg Springer 29-65
[30]
Laursen JS, Ellekilde LP, and Schultz UP Modelling reversible execution of robotic assembly Robotica 2018 36 5 625-654
[31]
Norell, U.: Dependently Typed Programming in Agda. In: Proceedings of TLDI 2009: 2009 ACM SIGPLAN International Workshop on Types in Languages Design and Implementation, Savannah, GA, USA, 24 January 2009, pp. 1–2 (2009)
[32]
Rendel T and Ostermann K Invertible syntax descriptions: unifying parsing and pretty printing ACM SIGPLAN Not. 2010 45 11 1-12
[33]
Schordan M, Jefferson D, Barnes P, Oppelstrup T, and Quinlan D Krivine J and Stefani J-B Reverse code generation for parallel discrete event simulation Reversible Computation 2015 Cham Springer 95-110
[34]
Schultz UP Kari J and Ulidowski I Reversible object-oriented programming with region-based memory management Reversible Computation 2018 Cham Springer 322-328
[35]
Thomsen MK, Axelsen HB, and Glück R De Vos A and Wille R A reversible processor architecture and its reversible logic design Reversible Computation 2012 Heidelberg Springer 30-42
[36]
Univalent Foundations Program: Homotopy Type Theory: Univalent Foundations of Mathematics, Institute for Advanced Study (2013). https://homotopytypetheory.org/book
[37]
Uustalu Tarmo and Veltri Niccolò The Delay Monad and Restriction Categories Theoretical Aspects of Computing – ICTAC 2017 2017 Cham Springer International Publishing 32-50
[38]
Uustalu T and Veltri N Chang B-YE Partiality and container monads Programming Languages and Systems 2017 Cham Springer 406-425
[39]
Veltri, N.: A Type-Theoretical Study of Nontermination. Ph.D. thesis, Tallinn University of Technology (2017). https://digi.lib.ttu.ee/i/?7631
[40]
de Vos, A.: Reversible Computing: Fundamentals, Quantum Computing, and Applications. Wiley, Weinheim (2010)
[41]
Yokoyama, T., Glück, R.: A reversible programming language and its invertible self-interpreter. In: Proceedings of Partial Evaluation and Program Manipulation, pp. 144–153. ACM (2007)

Cited By

View all
  • (2022)Quantum information effectsProceedings of the ACM on Programming Languages10.1145/34986636:POPL(1-27)Online publication date: 12-Jan-2022

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
Mathematics of Program Construction: 13th International Conference, MPC 2019, Porto, Portugal, October 7–9, 2019, Proceedings
Oct 2019
474 pages
ISBN:978-3-030-33635-6
DOI:10.1007/978-3-030-33636-3

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 07 October 2019

Author Tags

  1. Reversible computation
  2. Iteration
  3. Delay monad

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 29 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2022)Quantum information effectsProceedings of the ACM on Programming Languages10.1145/34986636:POPL(1-27)Online publication date: 12-Jan-2022

View Options

View options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media