z-logo
open-access-imgOpen Access
How testing helps to diagnose proof failures
Author(s) -
Guillaume Petiot,
Nikolaï Kosmatov,
Bernard Botella,
Alain Giorgetti,
Jacques Julliand
Publication year - 2018
Publication title -
formal aspects of computing
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.366
H-Index - 42
eISSN - 1433-299X
pISSN - 0934-5043
DOI - 10.1007/s00165-018-0456-4
Subject(s) - computer science , executable , gas meter prover , programming language , theory of computation , mathematical proof , counterexample , design by contract , statement (logic) , specification language , proof assistant , software , software development , mathematics , software construction , law , geometry , discrete mathematics , political science
Applying deductive verification to formally prove that a program respects its formal specification is a very complex and time-consuming task due in particular to the lack of feedback in case of proof failures. Along with a non-compliance between the code and its specification (due to an error in at least one of them), possible reasons of a proof failure include a missing or too weak specification for a called function or a loop, and lack of time or simply incapacity of the prover to finish a particular proof. This work proposes a methodology where test generation helps to identify the reason of a proof failure and to exhibit a counterexample clearly illustrating the issue. We define the categories of proof failures, introduce two subcategories of contract weaknesses (single and global ones), and examine their properties. We describe how to transform a C program formally specified in an executable specification language into C code suitable for testing, and illustrate the benefits of the method on comprehensive examples. The method has been implemented in StaDy, a plugin of the software analysis platform Frama-C. Initial experiments show that detecting non-compliances and contract weaknesses allows to precisely diagnose most proof failures.

The content you want is available to Zendy users.

Already have an account? Click here to sign in.
Having issues? You can contact us here
Accelerating Research

Address

John Eccles House
Robert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom