Improving Counterexample Quality from Failed Program Verification

08/21/2022
by   Li Huang, et al.
0

In software verification, a successful automated program proof is the ultimate triumph. The road to such success is, however, paved with many failed proof attempts. The message produced by the prover when a proof fails is often obscure, making it very hard to know how to proceed further. The work reported here attempts to help in such cases by providing immediately understandable counterexamples. To this end, it introduces an approach called Counterexample Extraction and Minimization (CEAM). When a proof fails, CEAM turns the counterexample model generated by the prover into a a clearly understandable version; it can in addition simplify the counterexamples further by minimizing the integer values they contain. We have implemented the CEAM approach as an extension to the AutoProof verifier and demonstrate its application to a collection of examples.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/21/2022

A Failed Proof Can Yield a Useful Test

A successful automated program proof is, in software verification, the u...
research
05/17/2023

What do we know when we know that a theory is consistent?

Given a first-order theory and a proof that it is consistent, can we des...
research
08/06/2021

How the Analyzer can Help the User Help the Analyzer

The automation offered by modern program proof tools goes hand in hand w...
research
04/12/2018

Debugging Program Verification Proof Scripts (Tool Paper)

Interactive program verification is characterized by iterations of unfin...
research
07/09/2019

Understanding Counterexamples for Relational Properties with DIbugger

Software verification is a tedious process that involves the analysis of...
research
11/27/2018

Lightweight Interactive Proving inside an Automatic Program Verifier

Among formal methods, the deductive verification approach allows establi...

Please sign up or login with your details

Forgot password? Click here to reset