The SeaHorn verification framework
In this paper, we present SeaHorn, a software verification framework. The key distinguishing
feature of SeaHorn is its modular design that separates the concerns of the syntax of the …
feature of SeaHorn is its modular design that separates the concerns of the syntax of the …
SMT-based model checking for recursive programs
A Komuravelli, A Gurfinkel, S Chaki - Formal Methods in System Design, 2016 - Springer
We present an SMT-based symbolic model checking algorithm for safety verification of
recursive programs. The algorithm is modular and analyzes procedures individually. Unlike …
recursive programs. The algorithm is modular and analyzes procedures individually. Unlike …
Generalized property directed reachability
The IC3 algorithm was recently introduced for proving properties of finite state reactive
systems. It has been applied very successfully to hardware model checking. We provide a …
systems. It has been applied very successfully to hardware model checking. We provide a …
A data-driven CHC solver
We present a data-driven technique to solve Constrained Horn Clauses (CHCs) that encode
verification conditions of programs containing unconstrained loops and recursions. Our CHC …
verification conditions of programs containing unconstrained loops and recursions. Our CHC …
Ufo: A Framework for Abstraction- and Interpolation-Based Software Verification
In this paper, we present Ufo, a framework and a tool for verifying (and finding bugs in)
sequential C programs. The framework is built on top of the LLVM compiler infrastructure …
sequential C programs. The framework is built on top of the LLVM compiler infrastructure …
Ramsey vs. lexicographic termination proving
Termination proving has traditionally been based on the search for (possibly lexicographic)
ranking functions. In recent years, however, the discovery of termination proof techniques …
ranking functions. In recent years, however, the discovery of termination proof techniques …
Disjunctive interpolants for Horn-clause verification
One of the main challenges in software verification is efficient and precise compositional
analysis of programs with procedures and loops. Interpolation methods remains one of the …
analysis of programs with procedures and loops. Interpolation methods remains one of the …
Better termination proving through cooperation
One of the difficulties of proving program termination is managing the subtle interplay
between the finding of a termination argument and the finding of the argument's supporting …
between the finding of a termination argument and the finding of the argument's supporting …
[PDF][PDF] Program Verification as Satisfiability Modulo Theories.
A key driver of SMT over the past decade has been an interchange format, SMT-LIB, and a
growing set of benchmarks sharing this common format. SMT-LIB captures very well an …
growing set of benchmarks sharing this common format. SMT-LIB captures very well an …
Decomposing software verification using distributed summary synthesis
There are many approaches for automated software verification, but they are either
imprecise, do not scale well to large systems, or do not sufficiently leverage parallelization …
imprecise, do not scale well to large systems, or do not sufficiently leverage parallelization …