Heap-manipulating programs (HMPs), which manipulate unbounded linked data structures via pointers, are a major frontier for formal verification of software. Formal verification is the process of proving (or disproving) the correctness of a system with respect to some kind of formal specification or property. The primary contributions of this thesis are the definition of a simple transitive closure logic tailored for formal verification of HMPs, and an efficient decision procedure for this logic. To assess the effectiveness of the proposed approach, we develop an HMP verification framework, which uses our fast implementation of the decision procedure to verify a number of HMP examples. Experimental examples (including three small container f...
Almost all modern imperative programming languages include operations for dynamically manipulating t...
AbstractWe present a novel abstraction framework for heap data structures that uses graph grammars, ...
This paper shows that it is possible to reason about the safety and termination of programs handling...
First order logic with transitive closure, and separation logic enable elegant interactive verificat...
Reliability is critical for system software, such as OS kernels, mobile browsers, embedded systems a...
Recent years have seen a surge in techniques and tools for automatic and semi-automatic static check...
We consider the problem of automatically verifying programs that manipulate a dynamic heap, maintain...
Reliability is critical for system software, such as OS kernels, mobile browsers, embedded systems a...
We present a strictly bottom-up, summary-based, and precise heap analysis targeted for program verif...
We present a strictly bottom-up, summary-based, and precise heap analysis targeted for program verif...
Automatically reasoning about programs is of significant interest to the program verification, compi...
We study three aspects of program verification with separation logic:1. Reasoning about quantitative...
Program properties that are automatically inferred by static analysis tools are generally not consid...
Abstract. We present a general framework for verifying programs with complex dynamic linked data str...
Abstract. This paper shows that it is possible to reason about the safety and termination of program...
Almost all modern imperative programming languages include operations for dynamically manipulating t...
AbstractWe present a novel abstraction framework for heap data structures that uses graph grammars, ...
This paper shows that it is possible to reason about the safety and termination of programs handling...
First order logic with transitive closure, and separation logic enable elegant interactive verificat...
Reliability is critical for system software, such as OS kernels, mobile browsers, embedded systems a...
Recent years have seen a surge in techniques and tools for automatic and semi-automatic static check...
We consider the problem of automatically verifying programs that manipulate a dynamic heap, maintain...
Reliability is critical for system software, such as OS kernels, mobile browsers, embedded systems a...
We present a strictly bottom-up, summary-based, and precise heap analysis targeted for program verif...
We present a strictly bottom-up, summary-based, and precise heap analysis targeted for program verif...
Automatically reasoning about programs is of significant interest to the program verification, compi...
We study three aspects of program verification with separation logic:1. Reasoning about quantitative...
Program properties that are automatically inferred by static analysis tools are generally not consid...
Abstract. We present a general framework for verifying programs with complex dynamic linked data str...
Abstract. This paper shows that it is possible to reason about the safety and termination of program...
Almost all modern imperative programming languages include operations for dynamically manipulating t...
AbstractWe present a novel abstraction framework for heap data structures that uses graph grammars, ...
This paper shows that it is possible to reason about the safety and termination of programs handling...