paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Focusing on Refinement Typing

聚焦精化类型
TOPLAS 45(4)2023匹配度 2/10 · 该论文属于精化类型系统与聚焦证明论的纯 PL 理论研究,虽涉及 SMT 约束生成和形式化可靠性,但与用户关注的 LLM/Agent 交叉、ML 系统静态分析、浮点程序分析或贝叶斯程序分析均无直接关联。其形式化风格有一定参考价值,但整体研究方向偏离核心画像。引用 3 inbox
Dimitrios J. Economou, Neel Krishnaswami, Jana Dunfield
crossref: 2026-09-10

AI 速览

一句话:用聚焦证明论方法为精化类型系统建立可判定、可靠且完备的 SMT 约束生成基础。

精化类型系统常依赖 SMT 约束生成,但缺乏逻辑上原则化的统一基础,且难以适配任意计算效应与求值顺序。本文提出一种逻辑原则化的基础:将 call-by-push-value 的聚焦变体、双向类型检查与新的“值决定索引”技术结合,构造出不含存在(合一)变量的可解 SMT 约束生成算法;同时设计极化子类型关系,证明该聚焦类型算法可靠、完备且可判定。作者用基本域论指称语义证明声明式系统的类型可靠性,并由此相对简单地推出系统的总体正确性与逻辑一致性。算法与语义结果之所以能较容易获得,根源在于聚焦这一证明论技术。

问题
精化类型系统中的 SMT 约束生成缺乏逻辑上原则化的统一基础,且难以泛化到任意计算效应与求值顺序。
方法
结合 call-by-push-value 的聚焦变体、双向类型检查与“值决定索引”技术,设计极化子类型关系,构造不含存在变量的 SMT 约束生成算法,并以域论指称语义给出声明式系统的类型可靠性证明。
评估
通过证明论与语义论证进行评估:证明聚焦类型算法的可靠性、完备性与可判定性,并证明类型可靠性、总体正确性与逻辑一致性;未报告实现或实验。
原文摘要(Abstract)

We present a logically principled foundation for systematizing, in a way that works with any computational effect and evaluation order, SMT constraint generation seen in refinement type systems for functional programming languages. By carefully combining a focalized variant of call-by-push-value, bidirectional typing, and our novel technique of value-determined indexes, our system generates solvable SMT constraints without existential (unification) variables. We design a polarized subtyping relation allowing us to prove our logically focused typing algorithm is sound, complete, and decidable. We prove type soundness of our declarative system with respect to an elementary domain-theoretic denotational semantics. Type soundness implies, relatively simply, the total correctness and logical consistency of our system. The relative ease with which we obtain both algorithmic and semantic results ultimately stems from the proof-theoretic technique of focalization.

链接与引用

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

BibTeX
@article{paperbot2121,
  title = {Focusing on Refinement Typing},
  author = {Dimitrios J. Economou and Neel Krishnaswami and Jana Dunfield},
  journal = {ACM Transactions on Programming Languages and Systems},
  volume = {45},
  number = {4},
  year = {2023},
  doi = {10.1145/3610408}
}