Generating Abstract Explanations of Spurious Counterexamples in C Programs
نویسندگان
چکیده
Counterexample driven re nement is a promising technique to generate automatic abstractions for model checking software. A central problem in automating this approach is the re nement of models from spurious error traces. We present a solution to this problem for C programs. Our solution introduces compile time names for run time values, and handles all constructs in the C programming language. We present Newton, an implementation of our solution, and empirical results from running Newton on several C programs.
منابع مشابه
Abstraction Refinement for Termination
ion Refinement for Termination⋆ Byron Cook, Andreas Podelski, and Andrey Rybalchenko 1 Microsoft Research, Cambridge 2 Max-Planck-Institut für Informatik, Saarbrücken Abstract. Abstraction can often lead to spurious counterexamples. Counterexample-guided abstraction refinement is a method of strengthening abstractions based on the analysis of these spurious counterexamples. For invariance prope...
متن کاملUnder-approximating loops in C programs for fast counterexample detection
Many software model checkers only detect counterexamples with deep loops after exploring numerous spurious and increasingly longer counterexamples. We propose a technique that aims at eliminating this weakness by constructing auxiliary paths that represent the effect of a range of loop iterations. Unlike acceleration, which captures the exact effect of arbitrarily many loop iterations, these au...
متن کاملElimination of Spurious Explanations
The generation of explanations is considered as a main asset of knowledge-based systems. In this paper we show that current approaches of generating explanations for constraint satisfaction problems fall short. These approaches can lead to spurious explanations with respect to a proposed (or selected) solution. We introduce an extension of current explanation principles such that all explanatio...
متن کاملSAT Based Predicate Abstraction for Hardware Verification
Predicate abstraction is an important technique for extracting compact finite state models from large or infinite state systems. Predicate abstraction uses decision procedures to compute a model which is amenable to model checking, and has been used successfully for software verification. Little work however has been done on applying predicate abstraction to large scale finite state systems, mo...
متن کاملCounterexample-Guided Abstraction Refinement
We present an automatic iterative abstraction-refinement methodology in which the initial abstract model is generated by an automatic analysis of the control structures in the program to be verified. Abstract models may admit erroneous (or “spurious”) counterexamples. We devise new symbolic techniques which analyze such counterexamples and refine the abstract model correspondingly. The refineme...
متن کامل