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.
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.