Formalizing computing models for machine verification and proofs

The Formalization of two Computational Models in Dafny

Logic in Computer ScienceFormal Languages and Automata TheoryProgramming Languages

Summary

Computers can be understood using simple models like Turing Machines and the Lambda Calculus, which explain how computations happen step-by-step. This paper shows how these models were precisely described using a programming language called Dafny. The formal descriptions help prove that certain machines always finish their work and verify important mathematical properties about functions. This helps ensure that computer systems behave correctly by checking their fundamental building blocks.

What this means in practice

Authors

Ştefan Ciobâc\b{a}, Diana-Elena Gratie, Dragoş-Irinel Rotariu

Abstract

We describe the formalization in Dafny of two computational models, Turing Machines and the Lambda Calculus. We present several application of the formalizations: machine proofs of termination for Turing machines, Dafny proofs for Church encodings, and a mechanized proof of the Church-Rosser theorem.