paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Inductive Synthesis of Inductive Heap Predicates

归纳堆谓词的归纳合成
OOPSLA 9(OOPSLA1)2025匹配度 3/10 · 该论文属于形式验证/程序合成中的分离逻辑堆谓词归纳学习,使用ILP而非LLM/Agent,且不涉及ML系统/Agentic程序、浮点程序分析或贝叶斯程序分析,因此与画像中AI↔PL的具体交叉方向只有较弱的“AI用于形式化验证”关联。引用 0 inbox
Ziyi Yang, Ilya Sergey
crossref: 2026-09-10

AI 速览

一句话:提出仅用正例的ILP算法,从内存图合成含数据性质(如有序性)的递归分离逻辑堆谓词。

本文研究如何从具体数据结构实例自动合成分离逻辑(SL)中的递归堆谓词。现有归纳逻辑编程(ILP)方法依赖负例,而堆结构负例难以自动构造;同时合成结果不仅要概括堆形状,还要刻画所存数据的性质。作者提出一种新的谓词学习算法,仅使用正例进行 ILP 学习,并基于具体内存图合成性质丰富的 SL 谓词;还提供从程序生成正例堆的内存图生成器。实验表明,该方法能高效、正确地合成现有工具难以处理的谓词,包括带非平凡负载约束的二叉搜索树和嵌套递归的 n 叉树,并可用于演绎验证与构造即正确的代码合成。

问题
如何从具体堆实例自动合成递归分离逻辑谓词,且不依赖难以构造的负例,并同时概括堆形状与存储数据的性质。
方法
提出仅使用正例的归纳逻辑编程学习算法,从具体内存图合成性质丰富的分离逻辑谓词,并用内存图生成器从程序产生正例堆。
评估
在二叉搜索树、n 叉树等非平凡负载约束与嵌套递归结构上,验证了方法能高效正确地合成现有工具无法处理的 SL 谓词,并支持演绎验证与构造即正确的代码合成。
原文摘要(Abstract)

We present an approach to automatically synthesise recursive predicates in Separation Logic (SL) from concrete data structure instances using Inductive Logic Programming (ILP) techniques. The main challenges to make such synthesis effective are (1) making it work without negative examples that are required in ILP but are difficult to construct for heap-based structures in an automated fashion, and (2) to be capable of summarising not just the shape of a heap (e.g., it is a linked list), but also the properties of the data it stores (e.g., it is a sorted linked list). We tackle these challenges with a new predicate learning algorithm. The key contributions of our work are (a) the formulation of ILP-based learning only using positive examples and (b) an algorithm that synthesises property-rich SL predicates from concrete memory graphs based on the positive-only learning. We show that our framework can efficiently and correctly synthesise SL predicates for structures that were beyond the reach of the state-of-the-art tools, including those featuring non-trivial payload constraints (e.g., binary search trees) and nested recursion (e.g., n-ary trees). We further extend the usability of our approach by a memory graph generator that produces positive heap examples from programs. Finally, we show how our approach facilitates deductive verification and synthesis of correct-by-construction code.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot3181,
  title = {Inductive Synthesis of Inductive Heap Predicates},
  author = {Ziyi Yang and Ilya Sergey},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {9},
  number = {OOPSLA1},
  year = {2025},
  doi = {10.1145/3720420}
}