Static and dynamic verification of relational properties on self-composed C code

Lionel Blatter, Nikolai Kosmatov, Pascale Le Gall, Virgile Prevosto, Guillaume Petiot

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

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.

Original languageEnglish
Title of host publicationTests and Proofs - 12th International Conference, TAP 2018, Held as Part of STAF 2018, Proceedings
EditorsBurkhart Wolff, Catherine Dubois
PublisherSpringer Verlag
Pages44-62
Number of pages19
ISBN (Print)9783319929934
DOIs
Publication statusPublished - 1 Jan 2018
Externally publishedYes
Event12th International Conference on Tests and Proofs, TAP 2018 Held as Part of STAF 2018 - Toulouse, France
Duration: 27 Jun 201829 Jun 2018

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume10889 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference12th International Conference on Tests and Proofs, TAP 2018 Held as Part of STAF 2018
Country/TerritoryFrance
CityToulouse
Period27/06/1829/06/18

Keywords

  • Deductive verification
  • Dynamic verification
  • Frama-C
  • Relational properties
  • Self-composition
  • Specification

Fingerprint

Dive into the research topics of 'Static and dynamic verification of relational properties on self-composed C code'. Together they form a unique fingerprint.

Cite this