paperbot · PL 论文追踪

全部论文 待读 收藏

P2 The Logical Essence of Well-Bracketed Control Flow

良括号控制流的逻辑本质
POPL 8(POPL)2024匹配度 3/10 · 该论文属于分离逻辑与程序验证的形式化工作,与用户核心关注的 LLM/Agent 静态分析、浮点程序分析、贝叶斯程序分析均无直接关系;仅因涉及形式化验证/Coq 机械化而与“AI→PL”方向有非常间接的关联。引用 5 inbox
Amin Timany, Armaël Guéneau, Lars Birkedal
crossref: 2026-09-10

AI 速览

一句话:提出首个基于分离逻辑的 Hoare 式程序逻辑,用于推理良括号控制流,并在 Coq/Iris 中机械化。

良括号控制流要求被调用函数必须在调用者恢复执行前返回,这一性质在安全与正确性推理中很重要。已有工作主要在完全抽象博弈模型中将其刻画为策略条件,或使用复杂的关系模型与显式状态迁移系统来验证依赖良括号性的程序。本文提出首个基于分离逻辑的 Hoare 式程序逻辑,用于直接推理良括号控制流,并展示如何用该逻辑证明良括号程序的正确性;进一步基于该程序逻辑定义一元与二元逻辑关系模型。所有结果均在 Iris 框架之上形式化,并在 Coq 证明助手中机械化。

问题
如何以组合式程序逻辑而非复杂关系模型来推理良括号控制流以及依赖该性质的程序正确性。
方法
提出基于分离逻辑的 Hoare 式程序逻辑,并由此定义一元与二元逻辑关系模型。
评估
所有结果均在 Iris 框架之上形式化,并在 Coq 证明助手中机械化验证。
原文摘要(Abstract)

A program is said to be well-bracketed if every called function must return before its caller can resume execution. This is often the case. Well-bracketedness has been captured semantically as a condition on strategies in fully abstract games models and multiple prior works have studied well-bracketedness by showing correctness/security properties of programs where such properties depend on the well-bracketed nature of control flow. The latter category of prior works have all used involved relational models with explicit state-transition systems capturing the relevant parts of the control flow of the program. In this paper we present the first Hoare-style program logic based on separation logic for reasoning about well-bracketedness and use it to show correctness of well-bracketed programs both directly and also through defining unary and binary logical relations models based on this program logic. All results presented in this paper are formalized on top of the Iris framework and mechanized in the Coq proof assistant.

链接与引用

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

BibTeX
@article{paperbot2610,
  title = {The Logical Essence of Well-Bracketed Control Flow},
  author = {Amin Timany and Armaël Guéneau and Lars Birkedal},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {8},
  number = {POPL},
  year = {2024},
  doi = {10.1145/3632862}
}