paperbot · PL 论文追踪

全部论文 待读 收藏

P2 TypeDis: A Type System for Disentanglement

TypeDis:一个面向 disentanglement 的类型系统
POPL 10(POPL)2026匹配度 2/10 · 论文提出类型系统用于并行程序 disentanglement 的静态验证,属于形式化方法与类型系统,但未涉及 LLM/Agent、浮点程序分析或贝叶斯程序分析。与用户研究画像中 PL 与 AI 交叉的核心方向不匹配,仅可作为 PL/形式化验证背景存档。引用 1 inbox
Alexandre Moine, Stephanie Balzer, Alex Xu, Sam Westrick
crossref: 2026-09-10

AI 速览

一句话:提出类型系统 TypeDis,用带时间戳的区域类型自动验证并行程序的 disentanglement,免去手工逻辑证明。

Disentanglement 是并行程序的一种运行时性质:并行任务互不感知彼此的内存分配,MaPLe 编译器和运行时借此实现任务本地、无需同步的自动内存管理。但该性质层次低、难以推理,此前唯一的静态验证手段是 Iris 风格的分离逻辑 DisLog,需在 Rocq 中逐程序手工证明。本文提出 TypeDis:受区域类型启发,为每个类型标注标识分配任务的时间戳,支持 iso-recursive 类型以及对类型和时间戳的多态,并允许时间戳在类型检查中于 join 点或通过称为 subtiming 的子类型关系改变。论文以一系列示例展示这些特性,并基于改进版 DisLog2 在 Rocq 中机器化验证了 TypeDis 的 soundness 与全部示例。

问题
disentanglement 是保证并行任务对彼此内存分配互不感知的运行时性质,可支撑任务本地 GC 等免同步内存管理,但作为低级性质难以推理;此前唯一静态验证途径是需大量专家手工证明的分离逻辑 DisLog。
方法
设计 TypeDis 类型系统:为每个类型标注时间戳以标识分配该值的任务,支持 iso-recursive 类型和类型/时间戳多态,并允许时间戳在 join 点及 subtiming 子类型下变化,从而实现 disentanglement 的自动验证。
评估
在一系列示例上展示 TypeDis 的表达能力,并在 Rocq 证明助手中基于改进的 DisLog2 机器化证明其 soundness 及示例。
原文摘要(Abstract)

Disentanglement is a runtime property of parallel programs guaranteeing that parallel tasks remain oblivious to each other’s allocations. As demonstrated in the MaPLe compiler and run-time system, disentanglement can be exploited for fast automatic memory management, especially task-local garbage collection with no synchronization between parallel tasks. However, as a low-level property, disentanglement can be difficult to reason about for programmers. The only means of statically verifying disentanglement so far has been DisLog, an Iris-fueled variant of separation logic, mechanized in the Rocq proof assistant. DisLog is a fully-featured program logic, allowing for proof of functional correctness as well as verification of disentanglement. Yet its employment requires significant expertise and per-program proof effort. This paper explores the route of automatic verification via a type system, ensuring that any well-typed program is disentangled and lifting the burden of carrying out manual proofs from the programmer. It contributes TypeDis, a type system inspired by region types, where each type is annotated with a timestamp, identifying the task that allocated it. TypeDis supports iso-recursive types as well as polymorphism over both types and timestamps. Crucially, timestamps are allowed to change during type-checking, at join points as well as via a form of subtyping, dubbed subtiming . The paper illustrates TypeDis and its features on a range of examples. The soundness of TypeDis and the examples are mechanized in the Rocq proof assistant, using an improved version of DisLog, dubbed DisLog2.

链接与引用

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

BibTeX
@article{abs-2511-23358,
  title = {TypeDis: A Type System for Disentanglement},
  author = {Alexandre Moine and Stephanie Balzer and Alex Xu and Sam Westrick},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {10},
  number = {POPL},
  year = {2026},
  doi = {10.1145/3776655}
}