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

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

Function contracts are a well-established way of formally specifying the intended behavior of a function. However, they usually only describe what should happen during a single call. Relational properties, on the other hand, link several function calls. They include such properties as non-interference, continuity and monotonicity. Other examples relate sequences of function calls, for instance, to show that decrypting an encrypted message with the appropriate key gives back the original message. Such properties cannot be expressed directly in the traditional setting of modular deductive verification, but are amenable to verification through self-composition. This paper presents a verification technique dedicated to relational properties in C programs and its implementation in the form of a FRAMA-C plugin called RPP and based on self-composition. It supports functions with side effects and recursive functions. The proposed approach makes it possible to prove a relational property, to check it at runtime, to generate a counterexample using testing and to use it as a hypothesis in the subsequent verification. Our initial experiments on existing benchmarks confirm that the proposed technique is helpful for static and dynamic analysis of relational properties.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/21/2018

Self-composition to Prove Relational Properties in Annotated C Program

Deductive verification provides a powerful tool to show functional prope...
research
02/21/2022

Certified Verification of Relational Properties

The use of function contracts to specify the behavior of functions often...
research
09/14/2017

Enhancing Predicate Pairing with Abstraction for Relational Verification

Relational verification is a technique that aims at proving properties t...
research
03/25/2023

The WhyRel Prototype for Relational Verification

Verifying relations between programs arises as a task in various verific...
research
06/04/2021

Constraint-based Relational Verification

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

Abstract interpretation of Michelson smart-contracts

Static analysis of smart-contracts is becoming more widespread on blockc...
research
05/19/2019

Property Directed Self Composition

We address the problem of verifying k-safety properties: properties that...

Please sign up or login with your details

Forgot password? Click here to reset