paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Deductive verification with ghost monitors

基于幽灵监视器的演绎验证
POPL 4(POPL)2019匹配度 2/10 · 该论文属于演绎程序验证与定理证明方法,虽与形式化验证相关,但未涉及 LLM/Agent、机器学习系统静态分析、浮点程序分析或贝叶斯程序分析等用户核心方向。其价值更偏向通用程序验证方法,与当前研究画像的交叉点很弱。引用 12 inbox
Martin Clochard, Claude Marché, Andrei Paskevich
crossref: 2026-09-10

AI 速览

一句话:提出幽灵监视器辅助程序,将目标程序验证归约为监视器验证,并支持无穷行为。

当目标程序语法结构不利于验证时(如递归算法以迭代实现),传统演绎验证困难。本文提出幽灵监视器:实现、规约并验证一个辅助程序来监视目标程序执行,使监视器正确性蕴含目标程序正确性;监视器维护必要数据与不变式,可用任意合适框架实现,也不限于目标语言。该技术还可验证不同语言、不同结构程序间的关系性质,并刻画目标程序无穷行为等细粒度性质。为此作者设计专用幽灵监视器语言,含处理发散执行的原创构造,并用一种超限博弈证明底层程序逻辑的可靠性。该语言及其可靠性已被形式化并机器检查。

问题
目标程序语法结构与验证需求不匹配时,传统演绎验证难以直接进行;同时难以便捷验证跨语言程序的关系性质及无穷行为。
方法
引入幽灵监视器作为辅助程序,为目标程序维护数据与不变式,并设计带发散处理构造的专用语言;其正确性蕴含目标程序正确性。
评估
用超限博弈证明底层程序逻辑可靠性,并将该语言及其可靠性形式化、机器检查。
原文摘要(Abstract)

We present a new approach to deductive program verification based on auxiliary programs called ghost monitors . This technique is useful when the syntactic structure of the target program is not well suited for verification, for example, when an essentially recursive algorithm is implemented in an iterative fashion. Our approach consists in implementing, specifying, and verifying an auxiliary program that monitors the execution of the target program, in such a way that the correctness of the monitor entails the correctness of the target. The ghost monitor maintains the necessary data and invariants to facilitate the proof. It can be implemented and verified in any suitable framework, which does not have to be related to the language of the target programs. This technique is also applicable when we want to establish relational properties between two target programs written in different languages and having different syntactic structure. We then show how ghost monitors can be used to specify and prove fine-grained properties about the infinite behaviors of target programs. Since this cannot be easily done using existing verification frameworks, we introduce a dedicated language for ghost monitors, with an original construction to catch and handle divergent executions. The soundness of the underlying program logic is established using a particular flavor of transfinite games. This language and its soundness are formalized and mechanically checked.

链接与引用

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

BibTeX
@article{paperbot562,
  title = {Deductive verification with ghost monitors},
  author = {Martin Clochard and Claude Marché and Andrei Paskevich},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {4},
  number = {POPL},
  year = {2019},
  doi = {10.1145/3371070}
}