paperbot · PL 论文追踪

全部论文 待读 收藏

P2 A First-order Logic with Frames

带 Frame 的一阶逻辑
TOPLAS 45(2)2023匹配度 3/10 · 该论文属于程序验证与形式逻辑方向,提出 Frame Logic 用于堆程序的局部规范与 frame reasoning,与用户核心关注的 LLM/Agent 结合静态分析或形式化验证只有间接背景关联,且不涉及浮点程序分析或贝叶斯程序分析。引用 2 inbox
Adithya Murali, Lucas Peña, Christof Löding, P. Madhusudan
crossref: 2026-09-10

AI 速览

一句话:提出 Frame Logic,扩展一阶逻辑与递归定义,用支持集实现 frame reasoning,并用于堆程序局部规范。

Frame Logic (FL) 旨在解决底层模型或堆发生变化时,如何刻画公式意义所依赖的精确支持集并进行 frame reasoning 的问题。它扩展一阶逻辑与递归定义,引入 Sp(·) 构造来捕获公式的隐式支持,即其真值依赖的全域子集。基于支持,作者给出证明规则,使模型变化下的 frame 推理更优雅。文中还展示 FL 能表达多种数据结构,并给出从分离逻辑精确片段到 FL 的翻译;随后设计基于 FL 的程序逻辑,用于动态更新堆的程序,支持局部规范和 frame reasoning,包含局部化证明规则及推导最弱最紧前置条件的规则。

问题
在堆等底层模型动态更新时,如何精确捕捉公式意义依赖的支持集,从而支持局部推理和 frame reasoning。
方法
提出 Frame Logic,扩展一阶逻辑与递归定义并加入 Sp(·) 支持构造,给出证明规则,并将分离逻辑精确片段翻译到该逻辑,进而构建程序逻辑。
评估
通过表达多种数据结构、翻译分离逻辑精确片段,以及设计局部证明规则和推导最弱最紧前置条件的规则来展示逻辑与程序逻辑的表达力和适用性;摘要未报告实现或实验评估。
原文摘要(Abstract)

We propose a novel logic, Frame Logic (FL), that extends first-order logic and recursive definitions with a construct Sp (·) that captures the implicit supports of formulas—the precise subset of the universe upon which their meaning depends. Using such supports, we formulate proof rules that facilitate frame reasoning elegantly when the underlying model undergoes change. We show that the logic is expressive by capturing several data-structures and also exhibit a translation from a precise fragment of separation logic to frame logic. Finally, we design a program logic based on frame logic for reasoning with programs that dynamically update heaps that facilitates local specifications and frame reasoning. This program logic consists of both localized proof rules as well as rules that derive the weakest tightest preconditions in frame logic.

链接与引用

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

BibTeX
@article{paperbot2134,
  title = {A First-order Logic with Frames},
  author = {Adithya Murali and Lucas Peña and Christof Löding and P. Madhusudan},
  journal = {ACM Transactions on Programming Languages and Systems},
  volume = {45},
  number = {2},
  year = {2023},
  doi = {10.1145/3583057}
}