Automated Lemma Synthesis in Symbolic-Heap Separation Logic

被引:16
|
作者
Ta, Quang-Trung [1 ]
Le, Ton Chanh [1 ]
Khoo, Siau-Cheng [1 ]
Chin, Wei-Ngan [1 ]
机构
[1] Natl Univ Singapore, Sch Comp, Singapore, Singapore
关键词
Separation logic; entailment proving; mathematical induction; structural induction; lemma synthesis; proof theory; automated reasoning;
D O I
10.1145/3158097
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页数:29
相关论文
共 50 条
  • [11] Heap Memory Requirements Analysis via Separation Logic
    He, Guanhua
    Luo, Chenguang
    THIRD INTERNATIONAL SYMPOSIUM ON THEORETICAL ASPECTS OF SOFTWARE ENGINEERING, PROCEEDINGS, 2009, : 321 - 322
  • [12] SYMBOLIC VARIABLES IN LOGIC SYNTHESIS
    STIEHL, W
    HIGH PERFORMANCE SYSTEMS-THE MAGAZINE FOR TECHNOLOGY CHAMPIONS, 1989, 10 (03): : 76 - 81
  • [13] Separation Logic plus Superposition Calculus = Heap Theorem Prover
    Perez, Juan Antonio Navarro
    Rybalchenko, Andrey
    ACM SIGPLAN NOTICES, 2011, 46 (06) : 556 - 566
  • [14] Separation Logic plus Superposition Calculus = Heap Theorem Prover
    Perez, Juan Antonio Navarro
    Rybalchenko, Andrey
    PLDI 11: PROCEEDINGS OF THE 2011 ACM CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2011, : 556 - 566
  • [15] A Heap Model for Java']Java Bytecode to Support Separation Logic
    Luo, Chenguang
    He, Guanhua
    Qin, Shengchao
    APSEC 2008:15TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS, 2008, : 127 - 134
  • [16] AUTOMATED LOGIC SYNTHESIS
    DARRINGER, JA
    LECTURE NOTES IN COMPUTER SCIENCE, 1984, 163 : 177 - 186
  • [17] Formal verification of the heap manager of an operating system using separation logic
    Marti, Nicolas
    Affeldt, Reynald
    Yonezawa, Akinori
    FORMAL METHODS AND SOFTWARE ENGINEERING, PROCEEDINGS, 2006, 4260 : 400 - +
  • [18] Formal verification of the heap manager of an operating system using separation logic
    Marti, Nicolas
    Affeldt, Reynald
    Yonezawa, Akinori
    Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2006, 4260 LNCS : 400 - 419
  • [19] A High-Level Separation Logic for Heap Space under Garbage Collection
    Moine, Alexandre
    Chargueraud, Arthur
    Pottier, Francois
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2023, 7 (POPL): : 718 - 747
  • [20] AUTOMATED LOGIC SYNTHESIS.
    Darringer, John A.
    Lecture Notes in Computer Science, 1984, : 177 - 186