scispace - formally typeset
Search or ask a question

Showing papers by "Wei-Ngan Chin published in 2007"


Book ChapterDOI
14 Jan 2007
TL;DR: An automated verification system that is concise, precise and expressive for ensuring the safety of pointer-based programs, and uses user-definable shape predicates to allow programmers to describe a wide range of data structures with their associated size properties.
Abstract: Despite their popularity and importance, pointer-based programs remain a major challenge for program verification. In this paper, we propose an automated verification system that is concise, precise and expressive for ensuring the safety of pointer-based programs. Our approach uses user-definable shape predicates to allow programmers to describe a wide range of data structures with their associated size properties. To support automatic verification, we design a new entailment checking procedure that can handle well-founded inductive predicates using unfold/fold reasoning. We have proven the soundness and termination of our verification system, and have built a prototype system.

149 citations


Proceedings ArticleDOI
11 Jul 2007
TL;DR: A prover that can automatically handle user-defined predicates is proposed that provides support for a new type of constraints, namely bag (multi-set) constraints, and is able to prove properties about the actual values stored inside a data structure.
Abstract: In recent years, separation logic has emerged as a contender for formal reasoning of heap-manipulating imperative programs. Recent works have focused on specialised provers that are mostly based on fixed sets of predicates. To improve expressivity, we have proposed a prover that can automatically handle user-defined predicates. These shape predicates allow programmers to describe a wide range of data structures with their associated size properties. In the current work, we shall enhance this prover by providing support for a new type of constraints, namely bag (multi-set) constraints. With this extension, we can capture the reachable nodes (or values) inside a heap predicate as a bag constraint. Consequently, we are able to prove properties about the actual values stored inside a data structure.

110 citations


Proceedings ArticleDOI
14 Nov 2007
TL;DR: This paper advocates for multiple pairs of pre/post conditions to be associated with each method which provides a way for such specification to be used in more scenarios, and a methodology to capture them via set of states during proof search.
Abstract: Automated verification plays an important role for high assurance software. This typically uses a pair of pre/post conditions as a formal (but possibly partial) specification of each method before it is systematically verified. In this paper, we advocate for multiple pairs of pre/post conditions to be associated with each method which provides a way for such specification to be used in more scenarios. Multiple pre/post specifications are important for heap-manipulating programs where they can be precisely expressed using separation logic. This work highlights the importance of multiple pre/post specifications, and a methodology to capture them via set of states during proof search.

7 citations