A Failed Proof Can Yield a Useful Test

by   Li Huang, et al.

A successful automated program proof is, in software verification, the ultimate triumph. In practice, however, the road to such success is paved with many failed proof attempts. Unlike a failed test, which provides concrete evidence of an actual bug in the program, a failed proof leaves the programmer in the dark. Can we instead learn something useful from it? The work reported here takes advantage of the rich internal information that some automatic provers collect about the program when attempting a proof. If the proof fails, the Proof2Test tool presented in this article uses the counterexample generated by the prover (specifically, the SMT solver underlying the proof environment Boogie, used in the AutoProof system to perform correctness proofs of contract-equipped Eiffel programs) to produce a failed test, which provides the programmer with immediately exploitable information to correct the program. The discussion presents the Proof2Test tool and demonstrates the application of the ideas and tool to a collection of representative examples.


Improving Counterexample Quality from Failed Program Verification

In software verification, a successful automated program proof is the ul...

Debugging Program Verification Proof Scripts (Tool Paper)

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

How the Analyzer can Help the User Help the Analyzer

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

Reductions for Automated Hypersafety Verification

We propose an automated verification technique for hypersafety propertie...

Understanding Counterexamples for Relational Properties with DIbugger

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

QED at Large: A Survey of Engineering of Formally Verified Software

Development of formal proofs of correctness of programs can increase act...

Linear Program Reconstruction in Practice

We briefly report on a linear program reconstruction attack performed on...

Please sign up or login with your details

Forgot password? Click here to reset