The VACID-0 benchmarks is a set of small programs which pose challenges for formal verification of their functional behavior. This paper reports on the formal verification of one of these challenges: binary heaps. The solution given here is performed using the Why3 environment for program verification. The expected behavior of the program is specified in Why3 logic, structured using the constructs for building hierarchies of theories provided by Why3. The proofs are achieved by a significant amount of automation, using SMT solvers for a large majority of the verification conditions generated, whereas the remaining verification conditions are discharged by interactive constructions of proof scripts using the Coq proof assistant. The general ...
Reliability is critical for system software, such as OS kernels, mobile browsers, embedded systems a...
Heap-manipulating programs (HMPs), which manipulate unbounded linked data structures via pointers, a...
In a computer program, basic functionalities may be implemented using bit-wise operations. This can ...
The VACID-0 benchmarks is a set of small programs which pose challenges for formal verification of t...
This thesis is set in the field of formal methods, more precisely in the domain of deductive program...
International audienceWhy3 is the next generation of the Why software verification platform. Why3 cl...
International audienceWe present solutions to the three challenges of the VerifyThis competition hel...
International audienceWe present Why3, a tool for deductive program verification, and WhyML, its pro...
We consider the problem of automatically verifying programs that manipulate a dynamic heap, maintain...
This thesis is set in the domain of deductive verification of programs, which consists of transformi...
This thesis takes part in the formal verification of parallel programs. The aim of formal verificati...
Arbitrary-precision integer arithmetic algorithms are used in contexts where both their performance ...
The Why3 IDE and verification system facilitates the use of a wide range of Satisfiability Modulo Th...
We propose natural proofs for reasoning with programs that ma-nipulate data-structures against speci...
Reliability is critical for system software, such as OS kernels, mobile browsers, embedded systems a...
Reliability is critical for system software, such as OS kernels, mobile browsers, embedded systems a...
Heap-manipulating programs (HMPs), which manipulate unbounded linked data structures via pointers, a...
In a computer program, basic functionalities may be implemented using bit-wise operations. This can ...
The VACID-0 benchmarks is a set of small programs which pose challenges for formal verification of t...
This thesis is set in the field of formal methods, more precisely in the domain of deductive program...
International audienceWhy3 is the next generation of the Why software verification platform. Why3 cl...
International audienceWe present solutions to the three challenges of the VerifyThis competition hel...
International audienceWe present Why3, a tool for deductive program verification, and WhyML, its pro...
We consider the problem of automatically verifying programs that manipulate a dynamic heap, maintain...
This thesis is set in the domain of deductive verification of programs, which consists of transformi...
This thesis takes part in the formal verification of parallel programs. The aim of formal verificati...
Arbitrary-precision integer arithmetic algorithms are used in contexts where both their performance ...
The Why3 IDE and verification system facilitates the use of a wide range of Satisfiability Modulo Th...
We propose natural proofs for reasoning with programs that ma-nipulate data-structures against speci...
Reliability is critical for system software, such as OS kernels, mobile browsers, embedded systems a...
Reliability is critical for system software, such as OS kernels, mobile browsers, embedded systems a...
Heap-manipulating programs (HMPs), which manipulate unbounded linked data structures via pointers, a...
In a computer program, basic functionalities may be implemented using bit-wise operations. This can ...