paperbot · PL 论文追踪

全部论文 待读 收藏

P2 <i>Necessity</i> specifications for robustness

面向健壮性的必要性规约
OOPSLA 6(OOPSLA2)2022匹配度 3/10 · 论文属于程序验证与定理证明的形式化方法,与用户关注的静态分析/形式化验证有领域交集,但未涉及 LLM/Agent、浮点程序分析或贝叶斯程序分析等核心交叉方向,更偏纯 PL/逻辑基础。引用 5 inbox
Julian Mackay, Susan Eisenbach, James Noble, Sophia Drossopoulou
crossref: 2026-09-10

AI 速览

一句话:提出 Necessity 语言,用必要性算子刻画时序蕴含,从功能规约推导健壮性规约并在 Coq 中机械化验证可靠性。

健壮模块需在存在不可信恶意客户端时仍只做其应做之事,且不仅要考虑单个方法的直接行为,还要考虑多方法调用组合所涌现的行为。现有功能规约无法表达此类性质。本文提出 Necessity 规约语言,其核心是刻画时序蕴含的新型必要性算子,并给出一个证明逻辑,可从功能规约自动导出显式的健壮性规约。可靠性(soundness)与一个示例证明已在 Coq 中机械化验证。

问题
如何为模块指定健壮性:保证在不可信恶意客户端存在时模块不产生非预期行为,且需覆盖多个方法调用组合所涌现的行为,而功能规约不足以表达这一点。
方法
提出 Necessity 规约语言,其必要性算子刻画时序蕴含,并提供证明逻辑从功能规约推导出显式的健壮性规约。
评估
在 Coq 中机械化证明了该证明逻辑的可靠性,并机器验证了一个示例证明。
原文摘要(Abstract)

Robust modules guarantee to do only what they are supposed to do – even in the presence of untrusted malicious clients, and considering not just the direct behaviour of individual methods, but also the emergent behaviour from calls to more than one method. Necessity is a language for specifying robustness, based on novel necessity operators capturing temporal implication, and a proof logic that derives explicit robustness specifications from functional specifications. Soundness and an exemplar proof are mechanised in Coq.

链接与引用

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

BibTeX
@article{paperbot1458,
  title = {<i>Necessity</i>
            specifications for robustness},
  author = {Julian Mackay and Susan Eisenbach and James Noble and Sophia Drossopoulou},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {6},
  number = {OOPSLA2},
  year = {2022},
  doi = {10.1145/3563317}
}