Automated Lemma Synthesis in Symbolic-Heap Separation Logic

10/26/2017
by   Quang-Trung Ta, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/17/2017

Enhancing Inductive Entailment Proofs in Separation Logic with Lemma Synthesis

This paper presents an approach to lemma synthesis to support advanced i...
research
04/16/2020

Entailment Checking in Separation Logic with Inductive Definitions is 2-EXPTIME hard

The entailment between separation logic formulae with inductive predicat...
research
10/02/2022

An Efficient Cyclic Entailment Procedure in a Fragment of Separation Logic

An efficient entailment proof system is essential to compositional verif...
research
07/18/2018

Structuring the Synthesis of Heap-Manipulating Programs

This paper describes a deductive approach to synthesizing imperative pro...
research
07/18/2018

Structuring the Synthesis of Heap-Manipulating Programs - Extended Version

This paper describes a deductive approach to synthesizing imperative pro...
research
11/20/2022

Template-Based Conjecturing for Automated Induction in Isabelle/HOL

Proof by induction plays a central role in formal verification. However,...
research
02/05/2018

Verifying Asymptotic Time Complexity of Imperative Programs in Isabelle

We present a framework in Isabelle for verifying asymptotic time complex...

Please sign up or login with your details

Forgot password? Click here to reset