paperbot · PL 论文追踪

全部论文 待读 收藏

P2 A Complementary Approach to Incorrectness Typing

一种基于补运算的错误性类型化方法
POPL 10(POPL)2026匹配度 3/10 · 论文属于类型系统与程序验证的形式化理论工作,涉及错误性验证但与 LLM/Agent、浮点程序分析或贝叶斯程序分析均无直接交叉;对用户当前 PL×AI 的核心方向仅有较弱的间接关联。引用 1 inbox
Celia Mengyue Li, Sophie Pull, Steven Ramsay
crossref: 2026-09-10

AI 速览

一句话:提出以正规形集合为类型语义、带补运算的双侧类型系统,可同时验证函数式程序的正确性与错误性。

论文研究如何对带原子和模式匹配的函数式程序进行错误性类型化,即静态证明程序会“出错”。其核心思想是让类型刻画正规形(normal form)集合而非值集合,从而在类型上定义补算子,并使其在类型公式中充当否定。借助该补算子,系统可导出多种反驳原则,包括类型论中 co-implication 的对应物,并用它们证明若干类 Erlang 风格程序会走向错误。作者给出通过子类型表达的补算子公理化,证明该子类型关系可判定,并证明整个类型系统对正规形既可靠又完备。

问题
如何用静态类型系统同时证明函数式程序的正确性和错误性,特别是在带原子与模式匹配的语言中,为反驳“程序会出错”提供类型论原则。
方法
引入双侧(two-sided)类型系统,类型语义取正规形集合而非值集合,并定义类型补算子作为类型公式的否定;通过子类型公理化补算子并导出 co-implication 等反驳原则。
评估
在 Erlang 风格程序上验证若干程序会出错;证明补算子的子类型公理化可判定,并证明系统对正规形可靠且完备。
原文摘要(Abstract)

We introduce a new two-sided type system for verifying the correctness and incorrectness of functional programs with atoms and pattern matching. A key idea in the work is that types should range over sets of normal forms, rather than sets of values, and this allows us to define a complement operator on types that acts as a negation on typing formulas. We show that the complement allows us to derive a wide range of refutation principles within the system, including the type-theoretic analogue of co-implication, and we use them to certify that a number of Erlang-like programs go wrong. An expressive axiomatisation of the complement operator via subtyping is shown decidable, and the type system as a whole is shown to be not only sound, but also complete for normal forms.

链接与引用

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

BibTeX
@article{abs-2510-13725,
  title = {A Complementary Approach to Incorrectness Typing},
  author = {Celia Mengyue Li and Sophie Pull and Steven Ramsay},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {10},
  number = {POPL},
  year = {2026},
  doi = {10.1145/3776724}
}