How the Analyzer can Help the User Help the Analyzer
This work addresses the challenge of user interaction in automated verification tools for software developers, but it appears incremental as it focuses on specific mechanisms within an existing tool.
The paper tackles the problem of failed verification in program proof tools by presenting mechanisms in the SPARK proof tool that provide users with the right information to help complete proofs, demonstrated through a simple running example.
The automation offered by modern program proof tools goes hand in hand with the capability to interact with the tool when the verification fails. The SPARK proof tool tries to help the user by providing the right information, so that the user can help the tool complete the proof. In this article, we present these mechanisms and how they work concretely on a simple running example.