Static and Dynamic Verification of Relational Properties on Self-Composed C Code
Lionel Blatter, Nikolai Kosmatov, Pascale Le Gall, Virgile Prevosto, and Guillaume Petiot

TL;DR
This paper introduces a verification technique for relational properties in C programs, using self-composition, implemented as a FRAMA-C plugin called RPP, supporting side effects and recursion, and enabling static and dynamic analysis.
Contribution
It presents a novel approach for verifying relational properties in C, implemented as a FRAMA-C plugin supporting complex functions and combining static and dynamic methods.
Findings
Effective verification of relational properties in C programs.
Supports functions with side effects and recursion.
Combines static proof and runtime testing for verification.
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Malware Detection Techniques · Security and Verification in Computing · Software Engineering Research
