Self-composition to Prove Relational Properties in Annotated C Program

01/21/2018
by   Lionel Blatter, et al.
0

Deductive verification provides a powerful tool to show functional properties of a given program. However, in practice, many properties of interest link several program calls. This is for instance the case for non-interference, continuity and monotony. Other examples relate sequences of function calls, for instance to show that decrypting an encrypted message with the appropriate key gives back the original one message. Such properties cannot be expressed directly in the traditional setting used by modular deductive verification, but are amenable to verification through self-composition. This paper presents a verification tool dedicated to relational properties, in the form of a Frama-C plug-in called RPP and based on self-composition. It supports functions with side effects and recursive functions. Our initial experiments on existing benchmarks confirm that RPP is useful to prove relational properties.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/21/2018

Static and Dynamic Verification of Relational Properties on Self-Composed C Code

Function contracts are a well-established way of formally specifying the...
research
09/14/2017

Enhancing Predicate Pairing with Abstraction for Relational Verification

Relational verification is a technique that aims at proving properties t...
research
05/19/2019

Property Directed Self Composition

We address the problem of verifying k-safety properties: properties that...
research
02/21/2022

Certified Verification of Relational Properties

The use of function contracts to specify the behavior of functions often...
research
06/04/2021

Constraint-based Relational Verification

In recent years they have been numerous works that aim to automate relat...
research
10/20/2019

Relational Test Tables: A Practical Specification Language for Evolution and Security

A wide range of interesting program properties are intrinsically relatio...
research
07/28/2022

Regression verification of unbalanced recursive functions with multiple calls (long version)

Given two programs p_1 and p_2, typically two versions of the same progr...

Please sign up or login with your details

Forgot password? Click here to reset