paperbot · PL 论文追踪

全部论文 待读 收藏

P1 Incorrectness logic

不正确性逻辑
POPL 4(POPL)2019匹配度 6/10 · 不正确性逻辑是程序验证与静态分析中缺陷推理的基础理论,与用户关注的静态分析/形式化验证方向有较强关联。但它不涉及 LLM/Agent、浮点程序分析或贝叶斯程序分析,也不是 AI 与 PL 的交叉工作。引用 121 inbox
Peter W. O'Hearn
crossref: 2026-09-10

AI 速览

一句话:提出与 Hoare 正确性逻辑对偶的“不正确性逻辑”,用于形式化程序错误与缺陷推理。

程序正确性与不正确性如同一枚硬币的两面。即使开发者追求正确性,也常需花费大量时间推理代码为何出错,包括阅读代码时的非形式推理,以及自动化测试和静态分析工具提供的推理。本文提出一种简单的“不正确性逻辑”,用于程序不正确性推理,并在概念上把它刻画为 Hoare 正确性逻辑的另一面。该逻辑面向缺陷发现而非证明所有行为正确,为理解和组织测试与静态分析中的错误推理提供形式化基础。摘要未报告具体实验评估,主要通过概念论述与逻辑对照阐明其与 Hoare 逻辑的对偶关系。

问题
如何为程序不正确性(缺陷/错误)提供类似 Hoare 逻辑的形式化推理基础,以支持开发者非形式推理、测试与静态分析中的错误推理。
方法
提出一种简单的 incorrectness logic,将其定位为 Hoare 正确性逻辑的对偶,用于从缺陷/不正确性角度组织程序推理。
评估
摘要以概念性论述和逻辑对照为主,说明该逻辑与 Hoare 逻辑的关系;未给出实验评估。
原文摘要(Abstract)

Program correctness and incorrectness are two sides of the same coin. As a programmer, even if you would like to have correctness, you might find yourself spending most of your time reasoning about incorrectness. This includes informal reasoning that people do while looking at or thinking about their code, as well as that supported by automated testing and static analysis tools. This paper describes a simple logic for program incorrectness which is, in a sense, the other side of the coin to Hoare's logic of correctness.

链接与引用

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

BibTeX
@article{paperbot534,
  title = {Incorrectness logic},
  author = {Peter W. O'Hearn},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {4},
  number = {POPL},
  year = {2019},
  doi = {10.1145/3371078}
}