Cooperative Verification via Collective Invariant Generation

08/11/2020
by   Jan Haltermann, et al.
0

Software verification has recently made enormous progress due to the development of novel verification methods and the speed-up of supporting technologies like SMT solving. To keep software verification tools up to date with these advances, tool developers keep on integrating newly designed methods into their tools, almost exclusively by re-implementing the method within their own framework. While this allows for a conceptual re-use of methods, it requires novel implementations for every new technique. In this paper, we employ cooperative verification in order to avoid reimplementation and enable usage of novel tools as black-box components in verification. Specifically, cooperation is employed for the core ingredient of software verification which is invariant generation. Finding an adequate loop invariant is key to the success of a verification run. Our framework named CoVerCIG allows a master verification tool to delegate the task of invariant generation to one or several specialized helper invariant generators. Their results are then utilized within the verification run of the master verifier, allowing in particular for crosschecking the validity of the invariant. We experimentally evaluate our framework on an instance with two masters and three different invariant generators using a number of benchmarks from SV-COMP 2020. The experiments show that the use of CoVerCIG can increase the number of correctly verified tasks without increasing the used resources

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/21/2019

Verification Artifacts in Cooperative Verification: Survey and Unifying Component Framework

The goal of cooperative verification is to combine verification approach...
research
09/11/2018

Benchmarking of Java Verification Tools at the Software Verification Competition (SV-COMP)

Empirical evaluation of verification tools by benchmarking is a common m...
research
08/07/2020

Prolog for Verification, Analysis and Transformation Tools

This article examines the use of the Prolog language for writing verific...
research
11/29/2018

Exploiting Pointer Analysis in Memory Models for Deductive Verification

Cooperation between verification methods is crucial to tackle the challe...
research
09/28/2018

UVM Based Reusable Verification IP for Wishbone Compliant SPI Master Core

The System on Chip design industry relies heavily on functional verifica...
research
09/16/2023

Btor2MLIR: A Format and Toolchain for Hardware Verification

Formats for representing and manipulating verification problems are extr...

Please sign up or login with your details

Forgot password? Click here to reset