Relational Verification via Invariant-Guided Synchronization

07/09/2019
by   Qi Zhou, et al.
0

Relational properties describe relationships that hold over multiple executions of one or more programs, such as functional equivalence. Conventional approaches for automatically verifying such properties typically rely on syntax-based, heuristic strategies for finding synchronization points among the input programs. These synchronization points are then annotated with appropriate relational invariants to complete the proof. However, when suboptimal synchronization points are chosen the required invariants can be complicated or even inexpressible in the target theory. In this work, we propose a novel approach to verifying relational properties. This approach searches for synchronization points and synthesizes relational invariants simultaneously. Specifically, the approach uses synthesized invariants as a guide for finding proper synchronization points that lead to a complete proof. We implemented our approach as a tool named PEQUOD, which targets Java Virtual Machine (JVM) bytecode. We evaluated PEQUOD by using it to solve verification challenges drawn from the from the research literature and by verifying properties of student-submitted solutions to online challenge problems. The results show that PEQUOD solve verification problems that cannot be addressed by current techniques.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/27/2019

Compositional Verification of Heap-Manipulating Programs through Property-Guided Learning

Analyzing and verifying heap-manipulating programs automatically is chal...
research
10/20/2017

Verifying Equivalence of Database-Driven Applications

This paper addresses the problem of verifying equivalence between a pair...
research
09/14/2021

The concept of class invariant in object-oriented programming

Class invariants – consistency constraints preserved by every operation ...
research
11/26/2019

OASIS: ILP-Guided Synthesis of Loop Invariants

Finding appropriate inductive loop invariants for a program is a key cha...
research
10/22/2020

Ghost Signals: Verifying Termination of Busy-Waiting

Programs for multiprocessor machines commonly perform busy-waiting for s...
research
10/13/2020

CISE3: Verifying Weakly Consistent Applications with Why3

In this paper we present a tool for the formal analysis of applications ...
research
08/12/2022

Relational Action Bases: Formalization, Effective Safety Verification, and Invariants (Extended Version)

Modeling and verification of dynamic systems operating over a relational...

Please sign up or login with your details

Forgot password? Click here to reset