There and Back Again: From Bounded Checking to Verification of Program Equivalence via Symbolic Up-to Techniques

05/06/2021
by   Vasileios Koutavas, et al.
0

We present a bounded equivalence verification technique for higher-order programs with local state that combines fully abstract symbolic environmental bisimulations similar to symbolic game models, novel up-to techniques which are effective in practice even when terms diverge, and lightweight invariant annotations. The combination yields an equivalence checking technique with no false positives or negatives where all inequivalences can be automatically detected, and many equivalences can be automatically or semi-automatically proved, including all classical Meyer and Sieber equivalences. We realise the technique in a tool prototype called Hobbit and benchmark it with an extensive set of new and existing examples.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/28/2022

Bounded Invariant Checking for Stateflow

Stateflow models are complex software models, often used as part of indu...
research
08/24/2021

A Game Characterization for Contrasimilarity

We present the first game characterization of contrasimilarity, the weak...
research
03/10/2021

Bounded Invariant Checking for Stateflow Programs

Stateflow models are complex software models, often used as part of safe...
research
02/21/2020

Symbolic Execution Game Semantics

We present a framework for symbolically executing and model checking hig...
research
08/01/2023

Datapath Verification via Word-Level E-Graph Rewriting

Formal verification of datapath circuits is challenging as they are subj...
research
10/20/2019

Checking Timed Bisimulation with Bounded Zone-History Graphs – Technical Report

Timed automata (TA) are a well-established formalism for discrete-state/...
research
04/10/2018

POR for Security Protocol Equivalences: Beyond Action-Determinism

Formal methods have proved effective to automatically analyze protocols....

Please sign up or login with your details

Forgot password? Click here to reset