This paper examines a novel strategy for developing correctness proofs in interactive software verification for C programs. Rather than proceeding backwards from the generated verification conditions, we start by developing a library of the employed data structures and related coding idioms. The application of that library then leads to correctness proofs that reflect informal arguments about the idioms. We apply this strategy to the low-level memory allocator of the L4 microkernel, a case study discussed in the literature
If software code is developed by humans, can we as users rely on its absolute correctness? Today's s...
Abstract. Before low-level imperative code can be reasoned about in an interactive theorem prover, i...
Correctness-by-Construction (CbC) is an approach to incrementally create formally correct programs g...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
We present an approach for automatically generating provably correct abstractions from C source code...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
Before software can be formally reasoned about, it must first be represented in some form of logic. ...
International audienceThis article presents the formal verification, using the Coq proof assistant, ...
Formal methods are not used widely in industrial software development, because the overhead of forma...
This paper presents techniques developed to check program equivalences in the context of cryptograph...
Functional verification of low-level code requires abstractions over the memory model to be effectiv...
International audienceThis paper reports on the design of adequate on-machine formal semantics for a...
Formal verification is a promising technique to ensure the reliability of low-level programs like op...
AbstractPrimitives are basic means provided by a microkernel to implementors of operating system ser...
Developing a verifying compiler---a compiler that proves that components are correct with respect to...
If software code is developed by humans, can we as users rely on its absolute correctness? Today's s...
Abstract. Before low-level imperative code can be reasoned about in an interactive theorem prover, i...
Correctness-by-Construction (CbC) is an approach to incrementally create formally correct programs g...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
We present an approach for automatically generating provably correct abstractions from C source code...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
Before software can be formally reasoned about, it must first be represented in some form of logic. ...
International audienceThis article presents the formal verification, using the Coq proof assistant, ...
Formal methods are not used widely in industrial software development, because the overhead of forma...
This paper presents techniques developed to check program equivalences in the context of cryptograph...
Functional verification of low-level code requires abstractions over the memory model to be effectiv...
International audienceThis paper reports on the design of adequate on-machine formal semantics for a...
Formal verification is a promising technique to ensure the reliability of low-level programs like op...
AbstractPrimitives are basic means provided by a microkernel to implementors of operating system ser...
Developing a verifying compiler---a compiler that proves that components are correct with respect to...
If software code is developed by humans, can we as users rely on its absolute correctness? Today's s...
Abstract. Before low-level imperative code can be reasoned about in an interactive theorem prover, i...
Correctness-by-Construction (CbC) is an approach to incrementally create formally correct programs g...