DeepAI AI Chat
Log In Sign Up

Verification of Programs via Intermediate Interpretation

by   Alexei P. Lisitsa, et al.
University of Liverpool

We explore an approach to verification of programs via program transformation applied to an interpreter of a programming language. A specialization technique known as Turchin's supercompilation is used to specialize some interpreters with respect to the program models. We show that several safety properties of functional programs modeling a class of cache coherence protocols can be proved by a supercompiler and compare the results with our earlier work on direct verification via supercompilation not using intermediate interpretation. Our approach was in part inspired by an earlier work by E. De Angelis et al. (2014-2015) where verification via program transformation and intermediate interpretation was studied in the context of specialization of constraint logic programs.


page 1

page 2

page 3

page 4


Verifying Programs via Intermediate Interpretation

We explore an approach to verification of programs via program transform...

Transformational Verification of Quicksort

Many transformation techniques developed for constraint logic programs, ...

Direct Interpretation of Functional Programs for Debugging

We make another assault on the longstanding problem of debugging. After ...

Generating Distributed Programs from Event-B Models

Distributed algorithms offer challenges in checking that they meet their...

CANAL: A Cache Timing Analysis Framework via LLVM Transformation

A unified modeling framework for non-functional properties of a program ...

Different Maps for Different Uses. A Program Transformation for Intermediate Verification Languages

In theorem prover or SMT solver based verification, the program to be ve...

An Experiment in Ping-Pong Protocol Verification by Nondeterministic Pushdown Automata

An experiment is described that confirms the security of a well-studied ...