Constraint-based Relational Verification

06/04/2021
by   Hiroshi Unno, et al.
0

In recent years they have been numerous works that aim to automate relational verification. Meanwhile, although Constrained Horn Clauses (CHCs) empower a wide range of verification techniques and tools, they lack the ability to express hyperproperties beyond k-safety such as generalized non-interference and co-termination. This paper describes a novel and fully automated constraint-based approach to relational verification. We first introduce a new class of predicate Constraint Satisfaction Problems called pfwCSP where constraints are represented as clauses modulo first-order theories over predicate variables of three kinds: ordinary, well-founded, or functional. This generalization over CHCs permits arbitrary (i.e., possibly non-Horn) clauses, well-foundedness constraints, functionality constraints, and is capable of expressing these relational verification problems. Our approach enables us to express and automatically verify problem instances that require non-trivial (i.e., non-sequential and non-lock-step) self-composition by automatically inferring appropriate schedulers (or alignment) that dictate when and which program copies move. To solve problems in this new language, we present a constraint solving method for pfwCSP based on stratified CounterExample-Guided Inductive Synthesis (CEGIS) of ordinary, well-founded, and functional predicates. We have implemented the proposed framework and obtained promising results on diverse relational verification problems that are beyond the scope of the previous verification frameworks.

READ FULL TEXT
research
07/07/2020

Program Verification via Predicate Constraint Satisfiability Modulo Theories

This paper presents a verification framework based on a new class of pre...
research
09/07/2018

Relational Program Synthesis

This paper proposes relational program synthesis, a new problem that con...
research
08/10/2020

Wikidata Constraints on MARS (Extended Technical Report)

Wikidata constraints, albeit useful, are represented and processed in an...
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
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
10/20/2019

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

A wide range of interesting program properties are intrinsically relatio...

Please sign up or login with your details

Forgot password? Click here to reset