Certified Verification of Relational Properties

02/21/2022
by   Lionel Blatter, et al.
0

The use of function contracts to specify the behavior of functions often remains limited to the scope of a single function call. Relational properties link several function calls together within a single specification. They can express more advanced properties of a given function, such as non-interference, continuity, or monotonicity. They can also relate calls to different functions, for instance, to show that an optimized implementation is equivalent to its original counterpart. However, relational properties cannot be expressed and verified directly in the traditional setting of modular deductive verification. Self-composition has been proposed to overcome this limitation, but it requires complex transformations and additional separation hypotheses for real-life languages with pointers. We propose a novel approach that is not based on code transformation and avoids those drawbacks. It directly applies a verification condition generator to produce logical formulas that must be verified to ensure a given relational property. The approach has been fully formalized and proved sound in the Coq proof assistant.

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
01/21/2018

Self-composition to Prove Relational Properties in Annotated C Program

Deductive verification provides a powerful tool to show functional prope...
research
11/26/2018

MetAcsl: Specification and Verification of High-Level Properties

Modular deductive verification is a powerful technique capable to show t...
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
11/17/2014

Verification of Relational Multiagent Systems with Data Types (Extended Version)

We study the extension of relational multiagent systems (RMASs), where a...
research
06/03/2022

Prophecy Variables for Hyperproperty Verification

Temporal logics for hyperproperties like HyperLTL use trace quantifiers ...

Please sign up or login with your details

Forgot password? Click here to reset