Publication details

Saarland University Computer Science

Verified Programming of Turing Machines in Coq

Yannick Forster, Fabian Kunze, Maximilian Wuttke

Technical Report, submitted for review, 2019

We present a framework for the verified programming of multi-tape Turing machines in Coq. Improving on prior work by Asperti and Ricciotti in Matita, we implement multiple layers of abstraction. The highest layer allows a user to implement nontrivial algorithms as Turing machines and verify their correctness, as well as time and space complexity compositionally. The user can do so without ever mentioning states, symbols on tapes or transition functions: They write programs in an imperative language with registers containing values of encodable data types, and our framework constructs corresponding Turing machines.
As case studies, we verify a translation from multi-tape to single-tape machines as well as a universal Turing machine, both with polynomial time overhead and constant factor space overhead.

Download PDF        Show BibTeX               


Login to edit


Legal notice, Privacy policy