Improving Counterexample Quality from Failed Program Verification

by   Li Huang, et al.

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.


page 1

page 2

page 3

page 4


A Failed Proof Can Yield a Useful Test

A successful automated program proof is, in software verification, the u...

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...

How the Analyzer can Help the User Help the Analyzer

The automation offered by modern program proof tools goes hand in hand w...

Debugging Program Verification Proof Scripts (Tool Paper)

Interactive program verification is characterized by iterations of unfin...

Understanding Counterexamples for Relational Properties with DIbugger

Software verification is a tedious process that involves the analysis of...

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