We present a framework to analyze and verify programs containing loops by using a first-order language of so-called extended expressions. This language can express both functional and temporal properties of loops. We prove soundness and completeness of our framework and use our approach to automate the tasks of partial correctness verification, termination analysis and invariant generation. For doing so, we express the loop semantics as a set of first-order properties over extended expressions and use theorem provers and/or SMT solvers to reason about these properties. Our approach supports full first-order reasoning, including proving program properties with alternation of quantifiers. Our work is implemented in the tool QuIt and successfu...
peer-reviewedMany automated techniques for invariant generation are based on the idea that the invar...
This paper presents a minimal model of the functioning of program verification and property checking...
International audienceWe present new static analysis methods for proving liveness properties of prog...
Static analysis of program semantics can be used to provide strong guarantees about the correctness ...
We describe an iterative algorithm for mechanically deriving loop invariants for the purpose of prov...
We describe an iterative algorithm for mechanically deriving loop invariants for the purpose of prov...
Software is ubiquitous in nearly all aspects of human life, including safety-critical activities. It...
Abstract—Verifiers that can prove programs correct against their full functional specification requi...
We present the foundations of a verifier for higher-order functional programs with generics and recu...
Predicate abstraction is a major abstraction technique for the verification of software. Data is abs...
We describe symbol elimination and consequence finding in the first-order theorem prover Vampire for...
Verifiers that can prove programs correct against their full functional specification require, for p...
This dissertation deals with the automatic generation of sound specifications from a given program i...
Does the application of time quantifiers, such as “sometimes” and “always” in loop invariants, incre...
In this article, we investigate the automated verification of temporal properties of heap-aware prog...
peer-reviewedMany automated techniques for invariant generation are based on the idea that the invar...
This paper presents a minimal model of the functioning of program verification and property checking...
International audienceWe present new static analysis methods for proving liveness properties of prog...
Static analysis of program semantics can be used to provide strong guarantees about the correctness ...
We describe an iterative algorithm for mechanically deriving loop invariants for the purpose of prov...
We describe an iterative algorithm for mechanically deriving loop invariants for the purpose of prov...
Software is ubiquitous in nearly all aspects of human life, including safety-critical activities. It...
Abstract—Verifiers that can prove programs correct against their full functional specification requi...
We present the foundations of a verifier for higher-order functional programs with generics and recu...
Predicate abstraction is a major abstraction technique for the verification of software. Data is abs...
We describe symbol elimination and consequence finding in the first-order theorem prover Vampire for...
Verifiers that can prove programs correct against their full functional specification require, for p...
This dissertation deals with the automatic generation of sound specifications from a given program i...
Does the application of time quantifiers, such as “sometimes” and “always” in loop invariants, incre...
In this article, we investigate the automated verification of temporal properties of heap-aware prog...
peer-reviewedMany automated techniques for invariant generation are based on the idea that the invar...
This paper presents a minimal model of the functioning of program verification and property checking...
International audienceWe present new static analysis methods for proving liveness properties of prog...