# Verifying Programs via Intermediate Interpretation

**Authors:** Alexei P. Lisitsa, Andrei P. Nemytykh

arXiv: 1705.06738 · 2017-05-22

## TL;DR

This paper presents a novel method for program verification using supercompilation of interpreters, enabling the proof of safety properties in functional programs modeling cache coherence protocols.

## Contribution

It introduces a verification approach via intermediate interpretation and supercompilation, extending previous methods to functional programs and comparing with direct supercompilation techniques.

## Key findings

- Successfully proved safety properties of cache coherence protocols
- Demonstrated advantages over direct supercompilation verification
- Extended verification techniques to functional programming models

## Abstract

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 De E. Angelis et al. (2014-2015) where verification via program transformation and intermediate interpretation was studied in the context of specialization of constraint logic programs.

---
Source: https://tomesphere.com/paper/1705.06738