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 条
  • [41] Automated Synthesis of Symbolic Instruction Encodings from I/O Samples
    Godefroid, Patrice
    Taly, Ankur
    ACM SIGPLAN NOTICES, 2012, 47 (06) : 441 - 451
  • [42] Proof-Directed Parallelization Synthesis by Separation Logic
    Botincan, Matko
    Dodds, Mike
    Jagannathan, Suresh
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2013, 35 (02):
  • [43] Zonotope-Based Symbolic Controller Synthesis for Linear Temporal Logic Specifications
    Ren, Wei
    Jungers, Raphael M.
    Dimarogonas, Dimos V.
    IEEE TRANSACTIONS ON AUTOMATIC CONTROL, 2024, 69 (11) : 7630 - 7645
  • [44] Symbolic algorithms for layout-oriented synthesis of pass transistor logic circuits
    Ferrandi, F
    Macii, A
    Macii, E
    Poncino, M
    Scarsi, R
    Somenzi, F
    1998 IEEE/ACM INTERNATIONAL CONFERENCE ON COMPUTER-AIDED DESIGN: DIGEST OF TECHNICAL PAPERS, 1998, : 235 - 241
  • [45] Automated bias shift in a constrained space for logic program synthesis
    Chowdhury, Mofizur Rahman
    Numao, Masayuki
    Transactions of the Japanese Society for Artificial Intelligence, 2001, 16 (06) : 548 - 556
  • [46] Automated Formation Control Synthesis from Temporal Logic Specifications
    Qi, Shuhao
    Zhang, Zengjie
    Haesaert, Sofie
    Sun, Zhiyong
    2023 62ND IEEE CONFERENCE ON DECISION AND CONTROL, CDC, 2023, : 5165 - 5170
  • [47] Efficient Reinforcement Learning Framework for Automated Logic Synthesis Exploration
    Qian, Yu
    Zhou, Xuegong
    Zhou, Hao
    Wang, Lingli
    2022 21ST INTERNATIONAL CONFERENCE ON FIELD-PROGRAMMABLE TECHNOLOGY (ICFPT 2022), 2022, : 221 - 226
  • [48] Automated logic synthesis for electro-optic logic-based integrated optical computing
    Ying, Zhoufeng
    Zhao, Zheng
    Feng, Chenghao
    Mital, Rohan
    Dhar, Shounak
    Pan, David Z.
    Soref, Richard
    Chen, Ray T.
    OPTICS EXPRESS, 2018, 26 (21): : 28002 - 28012
  • [49] Mostly-Automated Verification of Low-Level Programs in Computational Separation Logic
    Chlipala, Adam
    ACM SIGPLAN NOTICES, 2011, 46 (06) : 234 - 245
  • [50] Mostly-Automated Verification of Low-Level Programs in Computational Separation Logic
    Chlipala, Adam
    PLDI 11: PROCEEDINGS OF THE 2011 ACM CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2011, : 234 - 245