Reliability is critical for system software, such as OS kernels, mobile browsers, embedded systems and cloud systems. The correctness of these programs, especially for security, is highly desirable, as they should provide a trustwor-thy platform for higher-level applications and the end-users. Unfortunately, due to its inherent complexity, the verification process of these programs is typically manual/semi-automatic, tedious, and painful. Automating the reasoning behind these verification tasks and decreasing the dependence on manual help is one of the greatest challenges in software verification. This dissertation presents two logic-based automatic software verification systems, namely Strand and Dryad, that help in the task of verificatio...
The ultimate goal of program verification is not the theory behind the tools or the tools themselves...
Software is vital for modern society. It is used in manysafety- or security-critical applications, w...
Developing a verifying compiler---a compiler that proves that components are correct with respect to...
Reliability is critical for system software, such as OS kernels, mobile browsers, embedded systems a...
We consider the problem of automatically verifying programs that manipulate a dynamic heap, maintain...
Recent years have seen a renewed interest in the area of deductive program verification, with focus ...
We propose natural proofs for reasoning with programs that ma-nipulate data-structures against speci...
Software has become an integral part of our everyday lives, and so is our reliance on his correct fu...
Heap-manipulating programs (HMPs), which manipulate unbounded linked data structures via pointers, a...
If software code is developed by humans, can we as users rely on its absolute correctness? Today's s...
Because every aspect of our lives is now inexorably dependent on software, it is crucial that the so...
If software code is developed by humans, can we as users rely on its absolute correctness?\ud \ud To...
We study three aspects of program verification with separation logic:1. Reasoning about quantitative...
Automated verification of heap-manipulating programs is a challenging task due to the complexity of ...
Computer science literature abounds with descriptions of program verifiers, systems which analyse a ...
The ultimate goal of program verification is not the theory behind the tools or the tools themselves...
Software is vital for modern society. It is used in manysafety- or security-critical applications, w...
Developing a verifying compiler---a compiler that proves that components are correct with respect to...
Reliability is critical for system software, such as OS kernels, mobile browsers, embedded systems a...
We consider the problem of automatically verifying programs that manipulate a dynamic heap, maintain...
Recent years have seen a renewed interest in the area of deductive program verification, with focus ...
We propose natural proofs for reasoning with programs that ma-nipulate data-structures against speci...
Software has become an integral part of our everyday lives, and so is our reliance on his correct fu...
Heap-manipulating programs (HMPs), which manipulate unbounded linked data structures via pointers, a...
If software code is developed by humans, can we as users rely on its absolute correctness? Today's s...
Because every aspect of our lives is now inexorably dependent on software, it is crucial that the so...
If software code is developed by humans, can we as users rely on its absolute correctness?\ud \ud To...
We study three aspects of program verification with separation logic:1. Reasoning about quantitative...
Automated verification of heap-manipulating programs is a challenging task due to the complexity of ...
Computer science literature abounds with descriptions of program verifiers, systems which analyse a ...
The ultimate goal of program verification is not the theory behind the tools or the tools themselves...
Software is vital for modern society. It is used in manysafety- or security-critical applications, w...
Developing a verifying compiler---a compiler that proves that components are correct with respect to...