How the Analyzer can Help the User Help the Analyzer
@article{Moy2021HowTA, title={How the Analyzer can Help the User Help the Analyzer}, author={Yannick Moy}, journal={ArXiv}, year={2021}, volume={abs/2108.02969} }
Program proof is the application of deductive verification techniques to programs. Industrial acceptability of such tools relies on the high degree of automation provided by modern automatic provers, in particular SMT solvers, when the source code is restricted to a suitable language subset. SPARK 1 is an example of such a FLOSS industrial tool for Ada programs. It is available freely online as part of GNAT Community Edition 2. While striving to offer the most automation to our users, we have…
References
SHOWING 1-10 OF 13 REFERENCES
Deductive Software Verification – The KeY Book
- Computer ScienceLecture Notes in Computer Science
- 2016
This book is the definitive guide to KeY that lets you explore the full potential of deductive software verification in practice and contains the complete theory behind KeY for active researchers who want to understand it in depth or use it in their own work.
Improved usability and performance of SMT solvers for debugging specifications
- Computer ScienceInternational Journal on Software Tools for Technology Transfer
- 2010
Investigations in two areas are described: the reporting of counterexample information and the testing of vacuity, both of which are important to realistic use of such tools for typical software development.
Instrumenting a weakest precondition calculus for counterexample generation
- Computer Science, MathematicsJ. Log. Algebraic Methods Program.
- 2018
Your Proof Fails? Testing Helps to Find the Reason
- Computer ScienceTAP@STAF
- 2016
This work proposes a complete methodology where test generation helps to identify the reason of a proof failure and to exhibit a counterexample clearly illustrating the issue, and describes how to transform a formally specified C program into C code suitable for testing, and illustrates the benefits on comprehensive examples.
The Boogie Verification Debugger (Tool Paper)
- Computer ScienceSEFM
- 2011
The Boogie Verification Debugger (BVD) is a tool that lets users explore the potential program errors reported by a deductive program verifier. The user interface is like that of a dynamic debugger,…
Compiler Error Messages Considered Unhelpful: The Landscape of Text-Based Programming Error Message Research
- Computer ScienceITiCSE-WGR
- 2019
A comprehensive, historical and state-of-the-art report on research in the area, synthesise and present the existing evidence for these messages including the difficulties they present and their effectiveness, and makes the bibtex file of the 300+ reference corpus publicly available.
VeriFast: A Powerful, Sound, Predictable, Fast Verifier for C and Java
- Computer ScienceNASA Formal Methods
- 2011
This paper describes the basic symbolic execution approach in some formal detail, and zooms in on two technical aspects: the approach to permission accounting, including fractional permissions, precise predicates, and counting permissions; and the approaches to lemma function termination in the presence of dynamically-bound lemmafunction calls.
Debugging and Visualization
- Computer ScienceDeductive Software Verification
- 2016
The usage and different use cases of the Symbolic Execution Debugger (SED) are presented and the extendable architecture of the SED and the underlying symbolic execution engine based on KeY are discussed.
Ten Challenges for Making Automation a "Team Player" in Joint Human-Agent Activity
- Computer ScienceIEEE Intell. Syst.
- 2004
This analysis is based on some of the principles of human-centered computing that have developed individually and jointly over the years, and is adapted from a more comprehensive examination of common ground and coordination.
Lightweight Interactive Proving inside an Automatic Program Verifier
- Computer ScienceF-IDE@FLoC
- 2018
This paper reports on the 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 graph-ical user interface such as the one of SPARK.