Automatic Program Instrumentation for Automatic Verification (Extended Technical Report)

05/26/2023
by   Jesper Amilon, et al.
0

In deductive verification and software model checking, dealing with certain specification language constructs can be problematic when the back-end solver is not sufficiently powerful or lacks the required theories. One way to deal with this is to transform, for verification purposes, the program to an equivalent one not using the problematic constructs, and to reason about its correctness instead. In this paper, we propose instrumentation as a unifying verification paradigm that subsumes various existing ad-hoc approaches, has a clear formal correctness criterion, can be applied automatically, and can transfer back witnesses and counterexamples. We illustrate our approach on the automated verification of programs that involve quantification and aggregation operations over arrays, such as the maximum value or sum of the elements in a given segment of the array, which are known to be difficult to reason about automatically. We formalise array aggregation operations as monoid homomorphisms. We implement our approach in the MonoCera tool, which is tailored to the verification of programs with aggregation, and evaluate it on example programs, including SV-COMP programs.

READ FULL TEXT
research
06/02/2021

Putting the Squeeze on Array Programs: Loop Verification via Inductive Rank Reduction

Automatic verification of array manipulating programs is a challenging p...
research
01/24/2023

Relation-Algebraic Verification of Disjoint-Set Forests

This paper studies how to use relation algebras, which are useful for hi...
research
01/22/2021

PEQcheck: Localized and Context-aware Checking of Functional Equivalence (Technical Report)

Refactorings must not alter the program's functionality. However, not al...
research
06/10/2023

ScaffML: A Quantum Behavioral Interface Specification Language for Scaffold

Ensuring the correctness of quantum programs is crucial for quantum soft...
research
09/20/2019

Automated Verification of Integer Overflow

Integer overflow accounts for one of the major source of bugs in softwar...
research
05/26/2023

Automated Verification of Correctness for Masked Arithmetic Programs

Masking is a widely-used effective countermeasure against power side-cha...
research
02/02/2023

A Framework for the Automated Verification of Algebraic Effects and Handlers (extended version)

Algebraic effects and handlers are a powerful abstraction to build non-l...

Please sign up or login with your details

Forgot password? Click here to reset