scispace - formally typeset
Search or ask a question

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


Book ChapterDOI
24 Jul 2017
TL;DR: This work considers the satisfiability problem for a fragment of separation logic including inductive predicates with shape and arithmetic properties and proposes a decision procedure based on a novel algorithm to infer a finite representation for each inductive predicate which precisely characterises its satisfiability.
Abstract: We consider the satisfiability problem for a fragment of separation logic including inductive predicates with shape and arithmetic properties. We show that the fragment is decidable if the arithmetic properties can be represented as semilinear sets. Our decision procedure is based on a novel algorithm to infer a finite representation for each inductive predicate which precisely characterises its satisfiability. Our analysis shows that the proposed algorithm runs in exponential time in the worst case. We have implemented our decision procedure and integrated it into an existing verification system. Our experiment on benchmarks shows that our procedure helps to verify the benchmarks effectively.

33 citations


Journal ArticleDOI
27 Dec 2017
TL;DR: Wang et al. as discussed by the authors proposed a lemma synthesis framework, which automatically discovers lemmas to serve as eureka steps in the proofs of program entailments, which can be used to automatically reason with complex inductive heap predicates.
Abstract: The symbolic-heap fragment of separation logic has been actively developed and advocated for verifying the memory-safety property of computer programs. At present, one of its biggest challenges is to effectively prove entailments containing inductive heap predicates. These entailments are usually proof obligations generated when verifying programs that manipulate complex data structures like linked lists, trees, or graphs. To assist in proving such entailments, this paper introduces a lemma synthesis framework, which automatically discovers lemmas to serve as eureka steps in the proofs. Mathematical induction and template-based constraint solving are two pillars of our framework. To derive the supporting lemmas for a given entailment, the framework firstly identifies possible lemma templates from the entailment's heap structure. It then sets up unknown relations among each template's variables and conducts structural induction proof to generate constraints about these relations. Finally, it solves the constraints to find out actual definitions of the unknown relations, thus discovers the lemmas. We have integrated this framework into a prototype prover and have experimented it on various entailment benchmarks. The experimental results show that our lemma-synthesis-assisted prover can prove many entailments that could not be handled by existing techniques. This new proposal opens up more opportunities to automatically reason with complex inductive heap predicates.

14 citations


Journal ArticleDOI
TL;DR: A novel abstraction method with a bi-abduction technique in the combined domain to discover pre-/post-conditions that could not be automatically inferred before and finds relationships between pure and shape domains towards full functional correctness of programs.

4 citations


Book ChapterDOI
22 Apr 2017
TL;DR: The verification approach and the structure of HipTNT+, the modular termination and non-termination analyzer for imperative programs, are introduced and how to set up and use the system is instructed.
Abstract: HipTNT+ is a modular termination and non-termination analyzer for imperative programs. For each given method, the analyzer first annotates it with an initial specification with second-order unknown predicates and then incrementally derives richer known specifications with case analysis. Subsequently, the final inference result indicates either conditional termination, non-termination, or unknown. During the proving process, new conditions for the case analysis are abductively inferred from the failure of both termination and non-termination proof, which aim to separate the terminating and non-terminating behaviors for each method. This paper introduces the verification approach and the structure of HipTNT+, and instructs how to set up and use the system.

4 citations


Book ChapterDOI
13 Nov 2017
TL;DR: A certified decision procedure for reasoning about systems of equations over the “tree share” fractional permission model of Dockins et al. is developed and improves previous work by correctly handling negative clauses and enjoys better performance.
Abstract: We develop a certified decision procedure for reasoning about systems of equations over the “tree share” fractional permission model of Dockins et al. Fractional permissions can reason about shared ownership of resources, e.g. in a concurrent program. We imported our certified procedure into the HIP/SLEEK verification system and found bugs in both the previous, uncertified, decision procedure and HIP/SLEEK itself. In addition to being certified, our new procedure improves previous work by correctly handling negative clauses and enjoys better performance.

3 citations


Posted Content
TL;DR: A lemma synthesis framework, which automatically discovers lemmas to serve as eureka steps in the proofs of entailments containing inductive heap predicates, and shows that the lemma-synthesis-assisted prover can prove many entailments that could be handled by existing techniques.
Abstract: The symbolic-heap fragment of separation logic has been actively developed and advocated for verifying the memory-safety property of computer programs. At present, one of its biggest challenges is to effectively prove entailments containing inductive heap predicates. These entailments are usually proof obligations generated when verifying programs that manipulate complex data structures like linked lists, trees, or graphs. To assist in proving such entailments, this paper introduces a lemma synthesis framework, which automatically discovers lemmas to serve as eureka steps in the proofs. Mathematical induction and template-based constraint solving are two pillars of our framework. To derive the supporting lemmas for a given entailment, the framework firstly identifies possible lemma templates from the entailment's heap structure. It then sets up unknown relations among each template's variables and conducts structural induction proof to generate constraints about these relations. Finally, it solves the constraints to find out actual definitions of the unknown relations, thus discovers the lemmas. We have integrated this framework into a prototype prover and have experimented it on various entailment benchmarks. The experimental results show that our lemma-synthesis-assisted prover can prove many entailments that could not be handled by existing techniques. This new proposal opens up more opportunities to automatically reason with complex inductive heap predicates.

1 citations