Skip to main content

Proof Pearl: Proving a Simple Von Neumann Machine Turing Complete

  • Conference paper
Interactive Theorem Proving (ITP 2014)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 8558))

Included in the following conference series:

Abstract

In this paper we sketch an ACL2-checked proof that a simple but unbounded Von Neumann machine model is Turing Complete, i.e., can do anything a Turing machine can do. The project formally revisits the roots of computer science. It requires re-familiarizing oneself with the definitive model of computation from the 1930s, dealing with a simple “modern” machine model, thinking carefully about the formal statement of an important theorem and the specification of both total and partial programs, writing a verifying compiler, including implementing an X86-like call/return protocol and implementing computed jumps, codifying a code proof strategy, and a little “creative” reasoning about the non-termination of two machines.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bevier, W., Hunt Jr., W.A., Moore, J.S., Young, W.: Special issue on system verification. Journal of Automated Reasoning 5(4), 409–530 (1989)

    Google Scholar 

  2. Boyer, R.S., Moore, J.S.: A mechanical proof of the turing completeness of pure lisp. In: Bledsoe, W.W., Loveland, D.W. (eds.) Contemporary Mathematics: Automated Theorem Proving: After 25 Years, vol. 29, pp. 133–168. American Mathematical Society, Providence (1984)

    Chapter  Google Scholar 

  3. Boyer, R.S., Moore, J.S.: A mechanical proof of the unsolvability of the halting problem. Journal of the Association for Computing Machinery 31(3), 441–458 (1984)

    Article  MATH  MathSciNet  Google Scholar 

  4. Cohen, E., Dahlweid, M., Hillebrand, M., Leinenbach, D., Moskal, M., Santen, T., Schulte, W., Tobies, S.: VCC: A practical system for verifying concurrent C. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 23–42. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  5. Kaufmann, M., Manolios, P., Moore, J.S.: Computer-Aided Reasoning: An Approach. Kluwer Academic Press, Boston (2000)

    Google Scholar 

  6. Kaufmann, M., Moore, J.S.: The ACL2 home page. Dept. of Computer Sciences, University of Texas at Austin (2014), http://www.cs.utexas.edu/users/moore/acl2/

  7. Klein, G., Elphinstone, K., Heiser, G., Andronick, J., Cock, D., Derrin, P., Elkaduwe, D., Engelhardt, K., Kolanski, R., Norrish, M., Sewell, T., Tuch, H., Winwood, S.: seL4: Formal verification of an os kernel. In: ACM Symposium on Operating Systems Principles, pp. 207–220 (October 2009)

    Google Scholar 

  8. Lindholdm, T., Yellin, F.: The Java Virtual Machine Specification, 2nd edn. Prentice Hall (1999)

    Google Scholar 

  9. Liu, H.: Formal Specification and Verification of a JVM and its Bytecode Verifier. PhD thesis, University of Texas at Austin (2006)

    Google Scholar 

  10. Milner, R., Weyhrauch, R.: Proving compiler correctness in a mechanized logic. In: Machine Intelligence 7, pp. 51–72. Edinburgh University Press (1972)

    Google Scholar 

  11. Ray, S., Moore, J.S.: Proof styles in operational semantics. In: Hu, A.J., Martin, A.K. (eds.) FMCAD 2004. LNCS, vol. 3312, pp. 67–81. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  12. Rogers, H.: A Theory of Recursive Functions and Effective Commputability. McGraw-Hill (1967)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Moore, J.S. (2014). Proof Pearl: Proving a Simple Von Neumann Machine Turing Complete. In: Klein, G., Gamboa, R. (eds) Interactive Theorem Proving. ITP 2014. Lecture Notes in Computer Science, vol 8558. Springer, Cham. https://doi.org/10.1007/978-3-319-08970-6_26

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-08970-6_26

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-08969-0

  • Online ISBN: 978-3-319-08970-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics