Counterexamples from Proof Failures in SPARK

David Hauzar 1, 2 Claude Marché 1, 2 Yannick Moy 3
2 TOCCATA - Certified Programs, Certified Tools, Certified Floating-Point Computations
LRI - Laboratoire de Recherche en Informatique, UP11 - Université Paris-Sud - Paris 11, Inria Saclay - Ile de France, CNRS - Centre National de la Recherche Scientifique : UMR8623
Abstract : A major issue in the activity of deductive program verification is the understanding of the reason why a proof fails. To help the user understand the problem and decide what needs to be fixed in the code or the specification, it is essential to provide means to investigate such a failure. We present our approach for the design and the implementation of counterexample generation within the SPARK 2014 environment, exhibiting values for the variables of the program where a given part of the specification fails to be validated. To produce a counterexample , we exploit the ability of SMT solvers to propose, when a proof of a formula is not found, a counter-model. Turning such a counter-model into a counterexample for the initial program is not trivial because of the many transformations leading from a given code and specification to a verification condition.
Document type :
Conference papers
Liste complète des métadonnées

Cited literature [25 references]  Display  Hide  Download

https://hal.inria.fr/hal-01314885
Contributor : Claude Marché <>
Submitted on : Thursday, May 12, 2016 - 12:08:30 PM
Last modification on : Thursday, April 5, 2018 - 12:30:22 PM
Document(s) archivé(s) le : Wednesday, November 16, 2016 - 2:17:02 AM

File

article.pdf
Files produced by the author(s)

Identifiers

  • HAL Id : hal-01314885, version 1

Citation

David Hauzar, Claude Marché, Yannick Moy. Counterexamples from Proof Failures in SPARK. Software Engineering and Formal Methods, Jul 2016, Vienna, Austria. ⟨hal-01314885⟩

Share

Metrics

Record views

551

Files downloads

272