• Top
    • Documentation
      • Xdoc
      • ACL2-doc
      • Recursion-and-induction
      • Loop$-primer
      • Operational-semantics
        • Operational-semantics-3__annotated-bibliography
          • Bib::bhmy89
          • Bib::liu06
          • Bib::bm96
          • Bib::plotkin04b
          • Bib::bgm90
          • Bib::hkms17
          • Bib::bkm96
          • Bib::moore15
          • Bib::bh99
          • Bib::wilding93
          • Bib::plotkin04a
          • Bib::moore03b
          • Bib::mp02
          • Bib::moore19
          • Bib::manolios00
          • Bib::flatau92
          • Bib::hb92
          • Bib::bm05
          • Bib::goel16
          • Bib::bm73
          • Bib::ghk17
          • Bib::wilding92
          • Bib::moore17
          • Bib::moore96
          • Bib::ghkg14
          • Bib::yu92
          • Bib::hunt85
          • Bib::boh03
          • Bib::mmrv06
          • Bib::bm80
          • Bib::bh97
          • Bib::moore99b
          • Bib::moore14
            • Bib::rm04
            • Bib::by96
            • Bib::sawada00
            • Bib::mccarthy62
            • Bib::bm79
            • Bib::moore99a
            • Bib::sh98
            • Bib::rhmm07
            • Bib::kmm00a
            • Bib::ghk13
            • Bib::moore03a
            • Bib::hk12
            • Bib::mp67
            • Bib::young88
            • Bib::bm97
            • Bib::moore73
            • Bib::kmm00b
            • Bib::bevier87
          • Operational-semantics-1__simple-example
          • Operational-semantics-2__other-examples
          • Operational-semantics-5__history-etc
          • Operational-semantics-4__how-to-find-things
        • Pointers
        • Doc
        • Documentation-copyright
        • Course-materials
        • Args
        • ACL2-doc-summary
        • Finding-documentation
        • Broken-link
        • Doc-terminal-test-2
        • Doc-terminal-test-1
      • Books
      • Boolean-reasoning
      • Projects
      • Debugging
      • Std
      • Proof-automation
      • Macro-libraries
      • ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Operational-semantics-3__annotated-bibliography

    Bib::moore14

    J S. Moore, “ Proof Pearl: Proving a Simple Von Neumann Machine Turing Complete” in G. Klein and R. Gamboa, editors, Interactive Theorem Proving, ITP 2014, Springer LNCS 8558, doi.org/10.1007/978-3-319-08970-6_26, 2014.



    Relevance:M1 can compute anything a Turing machine can. (The paper ought to be re-titled “Proving M1 Turing Equivalent.”)



    ———

    The “Simple Von Neumann machine” in question is M1. See the ACL2 directory books/models/jvm/m1/ and the README file there.

    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.



    ———

    See the ACL2 book books/models/jvm/m1/theorems-a-and-b.lisp.