Quantified Invariant Generation Using an Interpolating Saturation Prover
نویسنده
چکیده
Interpolating provers have a variety of applications in verification, including invariant generation and abstraction refinement. Here, we extended these methods to produce universally quantified interpolants and invariants, allowing the verification of programs manipulating arrays and heap data structures. We show how a paramodulation-based saturation prover, such as SPASS, can be modified in a simple way to produce a first-order interpolating prover that is complete for universally quantified interpolants. Using a partial axiomatization of the theory of arrays with transitive closure, we show that the method can verify properties of simple programs manipulating arrays and linked lists.
منابع مشابه
Reasoning About Loops Using Vampire
In 2009, the symbol elimination method for loop invariant generation was introduced [8], which used saturation theorem proving in first-order logic to generate quantified invariants of programs with arrays. Symbol elimination is fully automatic, requires no user guidance, and it is the first ever approach able to generate invariants with alternations of quantifiers. In this paper we describe a ...
متن کاملReasoning About Loops Over Arrays using Vampire
The search for automated loop invariants generation has been popularly pursued due to the fact that invariants play a critical role in the verification process. Invariants with quantifiers are particularly interesting for these quantified invariants can be used to express relationships among the elements of array variables and other scalar variables. Automated invariant generation using a first...
متن کاملAn Interpolating Theorem Prover
We present a method of deriving Craig interpolants from proofs in the quantifier-free theory of linear inequality and uninterpreted function symbols, and an interpolating theorem prover based on this method. The prover has been used for predicate refinement in the Blast software model checker, and can also be used directly for model checking infinite-state systems, using interpolation-based ima...
متن کاملReasoning About Loops Using Vampire in KeY
We describe symbol elimination and consequence nding in the rst-order theorem prover Vampire for automatic generation of quanti ed invariants, possibly with quanti er alternations, of loops with arrays. Unlike the previous implementation of symbol elimination in Vampire, our work is not limited to a speci c programming language but provides a generic framework by relying on a simple guarded com...
متن کاملCase Studies on Invariant Generation Using a Saturation Theorem Prover
Automatic understanding of the intended meaning of computer programs is a very hard problem, requiring intelligence and reasoning. In this paper we evaluate a program analysis method, called symbol elimination, that uses firstorder theorem proving techniques to automatically discover non-trivial program properties. We discuss implementation details of the method, present experimental results, a...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2008