Functional verification of low-level code requires abstractions over the memory model to be effective, since the number of side-conditions induced by byte-addressed memory is prohibitive even with modern automated reasoners. We propose a flexible solution to this challenge: assertions contain explicit memory layouts which carry the necessary side-conditions as invariants. The memory-related proof obligations arising during verification can then be solved using specialized automatic proof procedures. The remaining verification conditions about the content of data structures directly reflect a developer's understanding. The development is formalized in Isabelle/HOL
Abstract. One of the challenges in verifying systems level code is the low-level, untyped view of th...
http://www.springer.com/International audienceThis paper presents a formal verification with the Coq...
Formal verification is a promising technique to ensure the reliability of low-level programs like op...
Abstract: Functional verification of low-level code requires abstractions over the memory model to b...
International audienceThis article presents the formal verification, using the Coq proof assistant, ...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
We present a formal model of memory that both captures the lowlevel features of C’s pointers and mem...
AbstractStructured types, such as C's arrays and structs, present additional challenges in pointer p...
Structured types, such as C’s arrays and structs, present additional challenges in pointer program v...
Before software can be formally reasoned about, it must first be represented in some form of logic. ...
This paper examines a novel strategy for developing correctness proofs in interactive software verif...
Weak memory presents a new challenge for program verification and has resulted in the development of...
International audienceIn a computer program, basic functionalities may be implemented using bit-wise...
We present an approach for automatically generating provably correct abstractions from C source code...
Abstract. One of the challenges in verifying systems level code is the low-level, untyped view of th...
http://www.springer.com/International audienceThis paper presents a formal verification with the Coq...
Formal verification is a promising technique to ensure the reliability of low-level programs like op...
Abstract: Functional verification of low-level code requires abstractions over the memory model to b...
International audienceThis article presents the formal verification, using the Coq proof assistant, ...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
We present a formal model of memory that both captures the lowlevel features of C’s pointers and mem...
AbstractStructured types, such as C's arrays and structs, present additional challenges in pointer p...
Structured types, such as C’s arrays and structs, present additional challenges in pointer program v...
Before software can be formally reasoned about, it must first be represented in some form of logic. ...
This paper examines a novel strategy for developing correctness proofs in interactive software verif...
Weak memory presents a new challenge for program verification and has resulted in the development of...
International audienceIn a computer program, basic functionalities may be implemented using bit-wise...
We present an approach for automatically generating provably correct abstractions from C source code...
Abstract. One of the challenges in verifying systems level code is the low-level, untyped view of th...
http://www.springer.com/International audienceThis paper presents a formal verification with the Coq...
Formal verification is a promising technique to ensure the reliability of low-level programs like op...