Lightweight Interactive Proving inside an Automatic Program Verifier

11/27/2018
by   Sylvain Dailler, et al.
0

Among formal methods, the deductive verification approach allows establishing the strongest possible formal guarantees on critical software. The downside is the cost in terms of human effort required to design adequate formal specifications and to successfully discharge the required proof obligations. To popularize deductive verification in an industrial software development environment, it is essential to provide means to progressively transition from simple and automated approaches to deductive verification. The SPARK environment, for development of critical software written in Ada, goes towards this goal by providing automated tools for formally proving that some code fulfills the requirements expressed in Ada contracts. In a program verifier that makes use of automatic provers to discharge the proof obligations, a need for some additional user interaction with proof tasks shows up: either to help analyzing the reason of a proof failure or, ultimately, to discharge the verification conditions that are out-of-reach of state-of-the-art automatic provers. Adding interactive proof features in SPARK appears to be complicated by the fact that the proof toolchain makes use of the independent, intermediate verification tool Why3, which is generic enough to accept multiple front-ends for different input languages. This paper reports on our approach to extend Why3 with interactive proof features and also with a generic client-server infrastructure allowing integration of proof interaction into an external, front-end graphical user interface such as the one of SPARK.

READ FULL TEXT
research
04/12/2018

Debugging Program Verification Proof Scripts (Tool Paper)

Interactive program verification is characterized by iterations of unfin...
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
08/22/2019

Interactive Duplicate Search in Software Documentation

Various software features such as classes, methods, requirements, and te...
research
01/09/2023

Case studies of development of verified programs with Dafny for accessibility assessment

Formal verification techniques aim at formally proving the correctness o...
research
08/06/2021

Deductive Verification via the Debug Adapter Protocol

We propose a conceptual integration of deductive program verification in...
research
12/23/2019

An Integrated Development Environment for the Prototype Verification System

The steep learning curve of formal technologies is a well-known barrier ...
research
08/21/2022

Improving Counterexample Quality from Failed Program Verification

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

Please sign up or login with your details

Forgot password? Click here to reset