We present an approach for automatically generating provably correct abstractions from C source code that are useful for practical implementation verification. The abstractions are easier for a human verification engineer to reason about than the implementation and increase the productivity of interactive code proof. We guarantee soundness by automatically generating proofs that the abstractions are correct. In particular, we show two key abstractions that are critical for verifying systems-level C code: automatically turning potentially overflowing machine-word arithmetic into ideal integers, and trans-forming low-level C pointer reasoning into separate abstract heaps. Previous work carrying out such transformations has either done so usin...
Most current approaches to software verification are one-sided -- a safety prover will try to prove ...
International audienceFormal verification of software or hardware systems — be it by model checking,...
AutoCorres is a tool for use with the Isabelle/HOL interactive theorem prover that attempts to simpl...
Before software can be formally reasoned about, it must first be represented in some form of logic. ...
Abstract. Before low-level imperative code can be reasoned about in an interactive theorem prover, i...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
We describe an experiment of formal verification of C source code, using the CADUCEUS tool. We perfo...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
Unlike testing, formal verification can not only prove the presence of errors, but their absence as ...
Compilers, and especially optimizing compilers, are complicated programs. Bugs in compilers happen, ...
This paper examines a novel strategy for developing correctness proofs in interactive software verif...
Formal verification is a promising technique to ensure the reliability of low-level programs like op...
International audienceFor all the successes in verifying low-level, efficient, security-critical cod...
International audienceGiven the complexity and sophistication of code generation and optimization al...
International audienceThis paper reports on the design of adequate on-machine formal semantics for a...
Most current approaches to software verification are one-sided -- a safety prover will try to prove ...
International audienceFormal verification of software or hardware systems — be it by model checking,...
AutoCorres is a tool for use with the Isabelle/HOL interactive theorem prover that attempts to simpl...
Before software can be formally reasoned about, it must first be represented in some form of logic. ...
Abstract. Before low-level imperative code can be reasoned about in an interactive theorem prover, i...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
We describe an experiment of formal verification of C source code, using the CADUCEUS tool. We perfo...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
Unlike testing, formal verification can not only prove the presence of errors, but their absence as ...
Compilers, and especially optimizing compilers, are complicated programs. Bugs in compilers happen, ...
This paper examines a novel strategy for developing correctness proofs in interactive software verif...
Formal verification is a promising technique to ensure the reliability of low-level programs like op...
International audienceFor all the successes in verifying low-level, efficient, security-critical cod...
International audienceGiven the complexity and sophistication of code generation and optimization al...
International audienceThis paper reports on the design of adequate on-machine formal semantics for a...
Most current approaches to software verification are one-sided -- a safety prover will try to prove ...
International audienceFormal verification of software or hardware systems — be it by model checking,...
AutoCorres is a tool for use with the Isabelle/HOL interactive theorem prover that attempts to simpl...