We present a new methodology for automatic verification of C programs against finite state machine specifications. Our approach is compositional, naturally enabling us to decompose the verification of large software systems into subproblems of manageable complexity. The decomposition reflects the modularity in the software design. We use weak simulation as the notion of conformance between the program and its specification. Following the abstractverify-refine paradigm, our tool MAGIC first extracts a finite model from C source code using predicate abstraction and theorem proving. Subsequently, simulation is checked via a reduction to Boolean satisfiability. MAGIC is able to interface with several publicly available theorem provers and SAT s...
In the last three decades, memory safety issues in system programming languages such as C or C++ hav...
The state space explosion problem in model checking remains the chief obstacle to the practical veri...
Developing a verifying compiler---a compiler that proves that components are correct with respect to...
We present a new methodology for automatic verification of C programs against finite state machine s...
There has been considerable progress in the domain of software verification over the last few years....
Unlike testing, formal verification can not only prove the presence of errors, but their absence as ...
In our increasingly computer-oriented society, the computer programs we rely on tend to increase in ...
Abstract. There has been considerable progress in the domain of software verification over the last ...
AbstractThis paper presents a methodology for automated modular verification of C programs against s...
Abstract. There has been considerable progress in the domain of software verifica-tion over the last...
We present an approach for automatically generating provably correct abstractions from C source code...
In this thesis, we describe and evaluate approaches for the efficient reasoning of realworld C progr...
Formal methods for verification of software systems often face the problem of state explosion and co...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
Software components and the methodology of component-based development offer a promising approach to...
In the last three decades, memory safety issues in system programming languages such as C or C++ hav...
The state space explosion problem in model checking remains the chief obstacle to the practical veri...
Developing a verifying compiler---a compiler that proves that components are correct with respect to...
We present a new methodology for automatic verification of C programs against finite state machine s...
There has been considerable progress in the domain of software verification over the last few years....
Unlike testing, formal verification can not only prove the presence of errors, but their absence as ...
In our increasingly computer-oriented society, the computer programs we rely on tend to increase in ...
Abstract. There has been considerable progress in the domain of software verification over the last ...
AbstractThis paper presents a methodology for automated modular verification of C programs against s...
Abstract. There has been considerable progress in the domain of software verifica-tion over the last...
We present an approach for automatically generating provably correct abstractions from C source code...
In this thesis, we describe and evaluate approaches for the efficient reasoning of realworld C progr...
Formal methods for verification of software systems often face the problem of state explosion and co...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
Software components and the methodology of component-based development offer a promising approach to...
In the last three decades, memory safety issues in system programming languages such as C or C++ hav...
The state space explosion problem in model checking remains the chief obstacle to the practical veri...
Developing a verifying compiler---a compiler that proves that components are correct with respect to...