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

01/07/2019
by   Daniel Dietsch, et al.
0

In theorem prover or SMT solver based verification, the program to be verified is often given in an intermediate verification language such as Boogie, Why, or CHC. This setting raises new challenges. We investigate a preprocessing step which takes the similar role that alias analysis plays in verification, except that now, a (mathematical) map is used to model the memory or a data object of type array. We present a program transformation that takes a program P to an equivalent program P' such that, by verifying P' instead of P, we can reduce the burden of the exponential explosion in the number of case splits. Here, the case splits are according to whether two statements using the same map variable are independent or not; if they are independent, we might as well employ two different map variables and thus remove the need for a case split (this is the idea behind the program transformation). We have implemented the program transformation and show that, in an ideal case, we can avoid the exponential explosion.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/18/2017

Verifying Programs via Intermediate Interpretation

We explore an approach to verification of programs via program transform...
research
08/24/2017

Verification of Programs via Intermediate Interpretation

We explore an approach to verification of programs via program transform...
research
05/31/2018

Symbolic Computation via Program Transformation

Symbolic computation is an important approach in automated program analy...
research
09/14/2017

Enhancing Predicate Pairing with Abstraction for Relational Verification

Relational verification is a technique that aims at proving properties t...
research
02/16/2018

Compositional Verification of Compiler Optimisations on Relaxed Memory

A valid compiler optimisation transforms a block in a program without in...
research
05/24/2022

Verified Implementation of an Efficient Term-Rewriting Algorithm for Multiplier Verification on ACL2

Automatic and efficient verification of multiplier designs, especially t...
research
03/02/2021

Dynamic Verification of C/C++11 Concurrency over Multi Copy Atomics

We investigate the problem of runtime analysis of C11 programs under Mul...

Please sign up or login with your details

Forgot password? Click here to reset