Proof Pearl: Proving a Simple Von Neumann Machine Turing Complete

Uložené v:
Podrobná bibliografia
Názov: Proof Pearl: Proving a Simple Von Neumann Machine Turing Complete
Autori: J Strother Moore
Prispievatelia: The Pennsylvania State University CiteSeerX Archives
Zdroj: http://www.cs.utexas.edu/users/moore/publications/turing-completeness.pdf.
Zbierka: CiteSeerX
Predmety: ACL2, Turing machine, Java Virtual Machine (JVM, ver- ifying
Popis: 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.
Druh dokumentu: text
Popis súboru: application/pdf
Jazyk: English
Relation: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.697.588
Dostupnosť: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.697.588
http://www.cs.utexas.edu/users/moore/publications/turing-completeness.pdf
Rights: Metadata may be used without restrictions as long as the oai identifier remains attached to it.
Prístupové číslo: edsbas.77AFA28C
Databáza: BASE
Popis
Abstrakt: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.