Explaining Counterexamples with Giant-Step Assertion Checking
Benedikt Becker (Universit\'e Paris-Saclay, CNRS, Inria, LMF, 91405,, Orsay, France), Cl\'audio Belo Louren\c{c}o (Universit\'e Paris-Saclay, CNRS,, Inria, LMF, 91405, Orsay, France), Claude March\'e (Universit\'e, Paris-Saclay, CNRS, Inria, LMF, 91405, Orsay, France)

TL;DR
This paper introduces a novel method for diagnosing proof failures in deductive program verification by comparing standard and 'giant-step' assertion-checking executions to identify causes like program errors or annotation gaps.
Contribution
It proposes a new 'giant-step' semantics for assertion checking that helps categorize proof failures and improve counterexample validation in deductive verification.
Findings
Effective categorization of proof failures into program errors or annotation gaps.
Implementation of the approach in the Why3 platform.
Successful evaluation on literature examples.
Abstract
Identifying the cause of a proof failure during deductive verification of programs is hard: it may be due to an incorrectness in the program, an incompleteness in the program annotations, or an incompleteness of the prover. The changes needed to resolve a proof failure depend on its category, but the prover cannot provide any help on the categorisation. When using an SMT solver to discharge a proof obligation, that solver can propose a model from a failed attempt, from which a possible counterexample can be derived. But the counterexample may be invalid, in which case it may add more confusion than help. To check the validity of a counterexample and to categorise the proof failure, we propose the comparison between the run-time assertion-checking (RAC) executions under two different semantics, using the counterexample as an oracle. The first RAC execution follows the normal program…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
