paperbot · PL 论文追踪

全部论文 待读 收藏

P0 Memory-Safety Verification of Open Programs with Angelic Assumptions

带天使式假设的开放程序内存安全验证
OOPSLA 9(OOPSLA2)2025匹配度 8/10 · 论文将 LLM 用于挖掘惯用模式,并结合形式化合成生成天使式假设,以提升开放程序内存安全验证中误报与真实缺陷的区分能力,属于“AI→PL:利用 LLM/Agent 改进静态分析/形式化验证”的核心方向。虽不直接涉及浮点程序分析、贝叶斯程序分析或 Agentic 程序,但兼具形式化与工程实现,且是问题驱动的高价值交叉工作。引用 1 inbox
Gourav Takhar, Baldip Bijlani, Prantik Chatterjee, Akash Lal, Subhajit Roy
crossref: 2026-09-10

AI 速览

一句话:提出 Seeker,用 LLM 挖掘惯用模式并实例化为天使式假设来补全缺失代码,以高精度区分开放程序内存安全误报与真实缺陷。

现实中的程序验证常面对“开放程序”,即源码不完整、存在未知代码。传统验证工具对未约束行为采取最坏假设,导致开放程序产生海量虚假告警;而人工构建 mock 模型既耗时又易出错,模型不准还会带来错误的验证结论。本文提出一种能高精度区分潜在内存安全违规中误报与真实缺陷的技术,其核心是对缺失代码做出“天使式假设”。为此,作者先用大语言模型挖掘缓冲区操作程序中的惯用模式,再辅以形式化合成策略,通过属性导向的推理来选取、适配并将这些惯用模式实例化为目标程序上的天使式假设。系统 Seeker 保证:只有当程序能在一组明确定义的“可信”惯用模式下被验证通过时,才判定其正确。在从流行开源软件整理的基准上实验,Seeker 能以零假阴性识别出 79% 的误报。

问题
开放程序(源码不完整)的验证中,工具对缺失代码的未约束行为作最坏假设,会生成大量虚假内存安全告警;人工编写 mock 模型耗时、易错,且其不准确会导致错误的验证结果。
方法
先借助大语言模型挖掘缓冲区操作程序中的惯用模式,再用属性导向的形式化合成策略选取、适配并实例化这些模式,将其转化为对缺失代码的天使式假设,从而仅在明确定义的“可信”惯用模式下判定程序正确。
评估
在从流行开源软件中整理的基准集上进行实验,Seeker 能够识别出 79% 的假阳性,且假阴性为零。
原文摘要(Abstract)

An open program is one for which the complete source code is not available, which is a reality for real-world program verification. Software verification tools tend to assume the worst about any unconstrained behavior and this can yield an enormous number of spurious warnings for open programs. For any serious verification effort, the engineer must invest time up-front in building a suitable model (or mock) of any missing code, which is time-consuming and error-prone. Inaccuracies in the mocks can lead to incorrect verification results. In this paper, we demonstrate a technique that is capable of distinguishing between false positives and actual bugs from potential memory-safety violations in an open program with high accuracy. Central to the technique is the ability of making angelic assumptions about missing code. To accomplish this, we first mine a set of idiomatic patterns in buffer-manipulating programs using a large language model (LLM). This is complemented by a formal synthesis strategy that performs property-directed reasoning to select, adapt and instantiate these idiomatic patterns into angelic assumptions on the target program. Overall, our system, Seeker, guarantees that a program is deemed correct only if it can be verified under a well-defined set of “trusted” idiomatic patterns. In our experiments over a set of benchmarks curated from popular open-source software, our tool Seeker is able to identify 79% of the false positives with zero false negatives.

链接与引用

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

BibTeX
@article{paperbot2913,
  title = {Memory-Safety Verification of Open Programs with Angelic Assumptions},
  author = {Gourav Takhar and Baldip Bijlani and Prantik Chatterjee and Akash Lal and Subhajit Roy},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {9},
  number = {OOPSLA2},
  year = {2025},
  doi = {10.1145/3763090}
}