We describe an experiment of formal verification of C source code, using the CADUCEUS tool. We performed a full formal proof of the classical Schorr-Waite graph-marking algorithm, which has already been used several times as a case study for formal reasoning on pointer programs. Our study is original with respect to previous experiments for several reasons. First, we use a general-purpose tool for C programs: we start from a real source code written in C, specified using an annotation language for arbitrary C programs. Second, we use several theorem provers as backends, both automatic and interactive. Third, we indeed formally establish more properties of the algorithm than previous works, in particular a formal proof of termination is made...
This research describes a component-based approach to proving the correctness of programs involving ...
This dataset contains the data on the last set of pre-run benchmarks of the tool Theta on SV-COMP 20...
Low-level pointer-manipulating code is ubiquitous in operating systems, networking stacks, and brows...
We present an approach for automatically generating provably correct abstractions from C source code...
We propose an original approach for checking memory safety of C pointer programs possibly including ...
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. ...
Unlike testing, formal verification can not only prove the presence of errors, but their absence as ...
This paper introduces a methodology to perform formal verification of floating-point C programs. It ...
Compilers, and especially optimizing compilers, are complicated programs. Bugs in compilers happen, ...
Separation logic is the twenty-first-century variant of Hoare logic that permits verification of poi...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
International audienceGiven the complexity and sophistication of code generation and optimization al...
The proliferation of software across all aspects of people's life means that software failure can br...
This paper presents our results in study of verifiaction of infinite state space systems. We deal mo...
This research describes a component-based approach to proving the correctness of programs involving ...
This dataset contains the data on the last set of pre-run benchmarks of the tool Theta on SV-COMP 20...
Low-level pointer-manipulating code is ubiquitous in operating systems, networking stacks, and brows...
We present an approach for automatically generating provably correct abstractions from C source code...
We propose an original approach for checking memory safety of C pointer programs possibly including ...
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. ...
Unlike testing, formal verification can not only prove the presence of errors, but their absence as ...
This paper introduces a methodology to perform formal verification of floating-point C programs. It ...
Compilers, and especially optimizing compilers, are complicated programs. Bugs in compilers happen, ...
Separation logic is the twenty-first-century variant of Hoare logic that permits verification of poi...
Systems code is almost universally written in the C programming language or a variant. C has a very ...
International audienceGiven the complexity and sophistication of code generation and optimization al...
The proliferation of software across all aspects of people's life means that software failure can br...
This paper presents our results in study of verifiaction of infinite state space systems. We deal mo...
This research describes a component-based approach to proving the correctness of programs involving ...
This dataset contains the data on the last set of pre-run benchmarks of the tool Theta on SV-COMP 20...
Low-level pointer-manipulating code is ubiquitous in operating systems, networking stacks, and brows...