Skip to main content
Log in

On reversible Turing machines and their function universality

  • Original Article
  • Published:
Acta Informatica Aims and scope Submit manuscript

Abstract

We provide a treatment of the reversible Turing machines (RTMs) under a strict function semantics. Unlike many existing reversible computation models, we distinguish strictly between computing the function \(\lambda x.f(x)\) and computing the function \(\lambda x. (x, f(x))\), or other injective embeddings of f. We reinterpret and adapt a number of important foundational reversible computing results under this semantics. Unifying the results in a single model shows that, as expected (and previously claimed), the RTMs are robust and can compute exactly all injective computable functions. Because injectivity entails that the RTMs are not strictly Turing-complete w.r.t. functions, we use an appropriate alternative universality definition, and show how to derive universal RTMs (URTMs) from existing irreversible universal machines. We then proceed to construct a URTM from the ground up. This resulting machine is the first URTM which does not depend on a reversible simulation of an existing universal machine. The new construction has the advantage that the interpretive overhead of the URTM is limited to a (program dependent) constant factor. Another novelty is that the URTM can function as an inverse interpreter at no asymptotic cost.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11

Similar content being viewed by others

Notes

  1. This natural definition of universality for reversible Turing machine was previously suggested by Li and Vitányi, cf. [22, Sect. 8.1.4], although no concrete constructions were given.

  2. However, the reversible machine is not (quasi-)real-time, while the irreversible one is, and it is not obvious that a quasi-realtime RTM should be possible without altering the tape contents. This hints that RTMs and TMs might have different structural complexity, at least fine-grained. For a formal language RTM model with a read-only one-way input tape, Axelsen et al. have recently shown that this is indeed the case, for a hierarchy between real-time and linear time [8].

  3. This can be enforced by tracking the non-blank part of the tape, and ensuring that this contains no blanks at halting.

  4. Should any of these conditions fail, we can rename as necessary to introduce them, without altering the fine-grained behavior of the machines.

  5. Of course, increasing the amount of static resources does not limit expressivity, as the extra resources can simply be ignored.

  6. We could also have defined the semantics for k-tape TMs such that the input was always given on a single tape, i.e., restricted to unary functions, but this would have severely hampered the presentation.

  7. The simulation of symbol rules provided in [25, Lemma 3, p. 227] is unfortunately flawed: translation of the rules (q, (su), p) and (r, (tv), p)) breaks reversibility if the encodings of u and v share a longer prefix than that of the encodings of s and t. Our proof can be adapted for use in the 2-symbol machine of [25], by reading and writing 0’s where our 3-symbol construction uses blanks.

  8. It is not difficult to see that the reliance on legal computation runs turns the definition—which appears to be about the inner workings of the machine—into one about the extensional behavior. For Turing machines this would then fall under Rice’s theorem.

References

  1. Abramov, S., Glück, R.: Principles of inverse computation and the universal resolving algorithm. In: Mogensen, T.Æ., Schmidt, D.A., Sudborough, I.H. (eds.) The Essence of Computation: Complexity, Analysis, Transformation. Lecture Notes in Computer Science, vol. 2566, pp. 269–295. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  2. Axelsen, H.B.: Clean translation of an imperative reversible programming language. In: Knoop, J. (ed.) Compiler Construction, CC 2011. Proceedings, Lecture Notes in Computer Science, vol. 6601, pp. 142–161. Springer, Heidelberg (2011)

    Google Scholar 

  3. Axelsen, H.B.: Time complexity of tape reduction for reversible Turing machines. In: De Vos, A., Wille, R. (eds.) Reversible Computation, RC 2011. Revised Papers, Lecture Notes in Computer Science, vol. 7165, pp. 1–13. Springer, Heidelberg (2012)

    Google Scholar 

  4. Axelsen, H.B., Glück, R.: A simple and efficient universal reversible Turing machine. In: Dediu, A.H., Inenaga, S., Martín-Vide, C. (eds.) LATA 2011. Proceedings, Lecture Notes in Computer Science, vol. 6638, pp. 117–128. Springer, Heidelberg (2011)

    Google Scholar 

  5. Axelsen, H.B., Glück, R.: What do reversible programs compute? In: Hoffman, M. (ed.) FOSSACS 2011. Proceedings, Lecture Notes in Computer Science, vol. 6604, pp. 42–56. Springer, Heidelberg (2011)

    Google Scholar 

  6. Axelsen, H.B., Glück, R., Yokoyama, T.: Reversible machine code and its abstract processor architecture. In: Diekert, V., Volkov, M.V., Voronkov, A. (eds.) Computer Science—Theory and Applications, CSR 2007. Proceedings, Lecture Notes in Computer Science, vol. 4649, pp. 56–69. Springer, Heidelberg (2007)

    Google Scholar 

  7. Axelsen, H.B., Holzer, M., Kutrib, M., Malcher, A.: Reversible shrinking two-pushdown automata. In: Dediu, A.H., Martín-Vide, C., Truthe B. (eds.) LATA 2016. Proceedings, Lecture Notes in Computer Science. Springer, Heidelberg (2016). To appear

  8. Axelsen, H.B., Jakobi, S., Kutrib, M., Malcher, A.: A hierarchy of fast reversible Turing machines. In: Krivine, J., Stefani, J.B. (eds.) Reversible Computation, RC 2015. Proceedings, Lecture Notes in Computer Science, vol. 9138, pp. 29–44. Springer, Heidelberg (2015)

    Google Scholar 

  9. Axelsen, H.B., Yokoyama, T.: Programming techniques for reversible comparison sorts. In: Feng, X., Park, S. (eds.) APLAS 2015. Proceedings, Lecture Notes in Computer Science, vol. 9458, pp. 407–426. Springer, Heidelberg (2015)

    Google Scholar 

  10. Bennett, C.H.: Logical reversibility of computation. IBM J. Res. Dev. 17(6), 525–532 (1973)

    Article  MathSciNet  MATH  Google Scholar 

  11. Feynman, R.: Quantum mechanical computers. Opt. News 11, 11–20 (1985)

    Article  Google Scholar 

  12. Foster, J.N., Greenwald, M.B., Moore, J.T., Pierce, B.C., Schmitt, A.: Combinators for bi-directional tree transformations: a linguistic approach to the view update problem. ACM Trans. Programm. Lang. Syst. 29(3), 17 (2007)

    Article  Google Scholar 

  13. Glück, R., Kawabe, M.: A program inverter for a functional language with equality and constructors. In: Ohori, A. (ed.) APLAS 2003. Proceedings, Lecture Notes in Computer Science, vol. 2895, pp. 246–264. Springer, Heidelberg (2003)

    Google Scholar 

  14. Glück, R., Kawabe, M.: Derivation of deterministic inverse programs based on LR parsing. In: Kameyama, Y., Stuckey, P.J. (eds.) Functional and Logic Programming. Proceedings, Lecture Notes in Computer Science, vol. 2998, pp. 291–306. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  15. Glück, R., Kawada, Y., Hashimoto, T.: Transforming interpreters into inverse interpreters by partial evaluation. In: Proceedings of the Partial Evaluation and Semantics-Based Program Manipulation, PEPM 2003, pp. 10–19. ACM Press (2003)

  16. Glück, R., Sørensen, M.: A roadmap to metacomputation by supercompilation. In: Danvy, O., Glück, R., Thiemann, P. (eds.) Partial Evaluation. Proceedings, Lecture Notes in Computer Science, vol. 1110, pp. 137–160. Springer, Heidelberg (1996)

    Google Scholar 

  17. Jones, N.D.: Computability and Complexity: From a Programming Language Perspective. Foundations of Computing. MIT Press, Cambridge (1997)

    Google Scholar 

  18. Kutrib, M., Malcher, A.: Reversible pushdown automata. In: Dediu, A.H., Fernau, H., Martín-Vide, C. (eds.) LATA 2010. Proceedings, Lecture Notes in Computer Science, vol. 6031, pp. 368–379. Springer, Heidelberg (2010)

    Google Scholar 

  19. Kutrib, M., Malcher, A.: One-way reversible multi-head finite automata. In: Glück, R., Yokoyama, T. (eds.) Reversible Computation, RC 2012. Revised Papers, Lecture Notes in Computer Science, vol. 7581, pp. 14–28. Springer, Heidelberg (2012)

    Google Scholar 

  20. Landauer, R.: Irreversibility and heat generation in the computing process. IBM J. Res. Dev. 5(3), 183–191 (1961)

    Article  MathSciNet  MATH  Google Scholar 

  21. Lecerf, Y.: Machines de Turing réversibles. Récursive insolubilité en \(n\in {N}\) de l’équation \(u=\theta ^n u\), où \(\theta \) est un “isomorphisme de codes”. Comptes Rendus Hebdomadaires des Séances de l’Académie des Sciences 257, 2597–2600 (1963)

    MathSciNet  MATH  Google Scholar 

  22. Li, M., Vitányi, P.M.B.: An Introduction to Kolmogorov Complexity and Its Applications. Springer, New York (1993)

    Book  MATH  Google Scholar 

  23. McCarthy, J.: The inversion of functions defined by Turing machines. In: Shannon, C.E., McCarthy, J. (eds.) Automata Studies, pp. 177–181. Princeton University Press, Princeton (1956)

    Google Scholar 

  24. Morita, K.: Reversible computing and cellular automata—A survey. Theo. Comp. Sci. 395(1), 101–131 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  25. Morita, K., Shirasaki, A., Gono, Y.: A 1-tape 2-symbol reversible Turing machine. Trans. IEICE E 72(3), 223–228 (1989)

    Google Scholar 

  26. Morita, K., Yamaguchi, Y.: A universal reversible Turing machine. In: Durand-Lose, J., Margenstern, M. (eds.) Machines, Computations and Universality, MCU 2007. Proceedings, Lecture Notes in Computer Science, vol. 4664, pp. 90–98. Springer, Heidelberg (2007)

    Google Scholar 

  27. Mu, S.C., Hu, Z., Takeichi, M.: An algebraic approach to bi-directional updating. In: Chin, W.N. (ed.) APLAS 2004. Proceedings, Lecture Notes in Computer Science, vol. 3302, pp. 2–20. Springer, Heidelberg (2004)

    Google Scholar 

  28. Schellekens, M.: MOQA; unlocking the potential of compositional static average-case analysis. J. Log. Algebr. Program. 79(1), 61–83 (2010)

    Article  MathSciNet  MATH  Google Scholar 

  29. van de Snepscheut, J.L.A.: What Computing Is All About. Springer, New York (1993)

    Book  MATH  Google Scholar 

  30. Thomsen, M.K., Axelsen, H.B.: Parallelization of reversible ripple-carry adders. Parallel Process. Lett. 19(2), 205–222 (2009)

    Article  MathSciNet  Google Scholar 

  31. Thomsen, M.K., Axelsen, H.B., Glück, R.: A reversible processor architecture and its reversible logic design. In: De Vos, A., Wille, R. (eds.) Reversible Computation, RC 2011. Revised Papers, Lecture Notes in Computer Science, vol. 7165, pp. 30–42. Springer, Heidelberg (2012)

    Google Scholar 

  32. Thomsen, M.K., Glück, R., Axelsen, H.B.: Reversible arithmetic logic unit for quantum arithmetic. J. Phys. A Math. Theo. 42(38), 2002 (2010)

    MathSciNet  MATH  Google Scholar 

  33. Toffoli, T.: Reversible computing. In: de Bakker, J.W., van Leeuwen, J. (eds.) ICALP 1980. Proceedings, Lecture Notes in Computer Science, vol. 85, pp. 632–644. Springer, New York (1980)

    Google Scholar 

  34. Van Rentergem, Y., De Vos, A.: Optimal design of a reversible full adder. Int. J. Unconv. Comput. 1(4), 339–355 (2005)

    Google Scholar 

  35. Yokoyama, T., Axelsen, H.B., Glück, R.: Principles of a reversible programming language. In: Computing Frontiers, CF 2008. Proceedings, pp. 43–54. ACM Press (2008)

  36. Yokoyama, T., Axelsen, H.B., Glück, R.: Fundamentals of reversible flowchart languages. Theo. Comp. Sci. 611, 87–115 (2016)

  37. Yokoyama, T., Glück, R.: A reversible programming language and its invertible self-interpreter. In: Partial Evaluation and Program Manipulation, PEPM 2007. Proceedings, pp. 144–153. ACM Press (2007)

Download references

Acknowledgments

The authors wish to thank Michael Kirkedal Thomsen for help with the figures in Sect. 5, and Tetsuo Yokoyama for inspiring discussions on computability issues.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Holger Bock Axelsen.

Additional information

Revised and extended version of the conference papers [4, 5]. This research was partially supported by Danish Council for Strategic Research under the MicroPower project and the Danish Council for Independent Research | Natural Sciences under the Foundations of Reversible Computing project; the second author was partially supported by the Japan Society for the Promotion of Science. The authors acknowledge partial support from COST Action IC1405 Reversible Computation.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Axelsen, H.B., Glück, R. On reversible Turing machines and their function universality. Acta Informatica 53, 509–543 (2016). https://doi.org/10.1007/s00236-015-0253-y

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00236-015-0253-y

Mathematics Subject Classification

Navigation