Reversible effects as inverse arrows

Abstract Reversible computing models settings in which all processes can be reversed. Applications include low-power computing, quantum computing, and robotics. It is unclear how to represent side-effects in this setting, because conventional methods need not respect reversibility. We model reversible effects by adapting Hughes' arrows to dagger arrows and inverse arrows. This captures several fundamental reversible effects, including serialization and mutable store computations. Whereas arrows are monoids in the category of profunctors, dagger arrows are involutive monoids in the category of profunctors, and inverse arrows satisfy certain additional properties. These semantics inform the design of functional reversible programs supporting side-effects.

[1]  J. M. EGGER,et al.  On involutive monoidal categories , 2011 .

[2]  Charles H. Bennett,et al.  Logical reversibility of computation , 1973 .

[3]  Kasper Stoy,et al.  Robust and reversible execution of self-reconfiguration sequences , 2011, Robotica.

[4]  Chris Heunen,et al.  Pictures of complete positivity in arbitrary dimension , 2011, Inf. Comput..

[5]  Kenichi Morita,et al.  Two-Way Reversible Multi-Head Finite Automata , 2011, Fundam. Informaticae.

[6]  G. M. Kelly Coherence theorems for lax algebras and for distributive laws , 1974 .

[7]  Robert Glück,et al.  A reversible programming language and its invertible self-interpreter , 2007, PEPM '07.

[8]  Robert Glück,et al.  The Program Inverter LRinv and Its Structure , 2005, PADL.

[9]  Tommaso Toffoli,et al.  Reversible Computing , 1980, ICALP.

[10]  Amr Sabry,et al.  Information effects , 2012, POPL '12.

[11]  Sally Popkorn,et al.  A Handbook of Categorical Algebra , 2009 .

[12]  Peter Selinger,et al.  Dagger Compact Closed Categories and Completely Positive Maps: (Extended Abstract) , 2007, QPL.

[13]  M. Laplaza,et al.  Coherence for distributivity , 1972 .

[14]  Chris Heunen,et al.  Reversible Monadic Computing , 2015, MFPS.

[15]  Kazuyuki Asada,et al.  Arrows are strong monads , 2010, MSFP '10.

[16]  Ross Paterson,et al.  A new notation for arrows , 2001, ICFP '01.

[17]  Norman Ramsey,et al.  Advanced Functional Programming , 2005 .

[18]  Robert Lynas,et al.  A Virtual Machine for Supporting Reversible Probabilistic Guarded Command Languages , 2010, Electron. Notes Theor. Comput. Sci..

[19]  Robert Glück,et al.  A Categorical Foundation for Structured Reversible Flowchart Languages , 2018, MFPS.

[20]  Samson Abramsky,et al.  A Structural Approach to Reversible Computation , 2005, Theor. Comput. Sci..

[21]  Roshan P. James Theseus : A High Level Language for Reversible Computing , 2014 .

[22]  Eugenio Moggi,et al.  Computational lambda-calculus and monads , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[23]  Robert Glück,et al.  Join inverse categories and reversible recursion , 2017, J. Log. Algebraic Methods Program..

[24]  John Hughes,et al.  Generalising monads to arrows , 2000, Sci. Comput. Program..

[25]  Brett Gordon Giles An investigation of some theoretical aspects of reversible computing , 2014 .

[26]  Marko C. J. D. van Eekelen,et al.  There and back again: arrows for invertible programming , 2005, Haskell '05.

[27]  J. Robin B. Cockett,et al.  Restriction categories I: categories of partial maps , 2002, Theor. Comput. Sci..

[28]  Daniele Varacca,et al.  A Compositional Semantics for the Reversible p-Calculus , 2013, 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science.

[29]  Chris Heunen,et al.  Monads on dagger categories , 2016, 1602.04324.

[30]  Ross Paterson,et al.  Arrows and computation , 2009 .

[31]  Bart Jacobs,et al.  Under Consideration for Publication in J. Functional Programming Categorical Semantics for Arrows , 2022 .

[32]  Robert Glück,et al.  Towards a Reversible Functional Language , 2011, RC.

[33]  John Hughes Programming with Arrows , 2004, Advanced Functional Programming.

[34]  Masahito Hasegawa,et al.  Decomposing Typed Lambda Calculus into a Couple of Categorical Programming Languages , 1995, Category Theory and Computer Science.

[35]  Martin Kutrib,et al.  Reversible Limited Automata , 2015, MCU.

[36]  Markus Schordan,et al.  Reverse Code Generation for Parallel Discrete Event Simulation , 2015, RC.

[37]  Murdoch James Gabbay,et al.  Imaginary groups: lazy monoids and reversible computation , 2013, Mathematical Structures in Computer Science.