paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Thunks and Debits in Separation Logic with Time Credits

带时间信用的分离逻辑中的 thunk 与 debit
POPL 8(POPL)2024匹配度 3/10 · 该论文属于分离逻辑、时间信用与摊还复杂度验证的形式化验证工作,与用户核心关注的 LLM/Agent 同静态分析或形式化验证的交叉、浮点程序分析、贝叶斯程序分析均无直接关联。仅可作为形式化验证与证明工程背景的边缘参考。引用 44 inbox
François Pottier, Armaël Guéneau, Jacques-Henri Jourdan, Glen Mével
crossref: 2026-09-10

AI 速览

一句话:在 Iris 时间信用分离逻辑中机器化重建 Okasaki 的 thunk/debit 摊还推理规则,并验证流与多种队列。

Thunk 是一种可变记忆化数据结构,存储挂起计算或其结果;Okasaki 用 debit 为每个 thunk 标注摊还成本,debit 可分期支付,还可关联尚未分配的未来 thunk,并在未来 thunk 之间转移。本文在 Iris$(带时间信用的丰富分离逻辑)中完整机器化重建了 Okasaki 的 thunk/debit 推理规则,使其可用于形式验证摊还时间复杂度。作者用该规则验证若干 stream 操作,以及 Okasaki 的 physicist's queue、implicit queues 和 banker's queue 等数据结构,表明这些规则足以处理真实摊还分析案例。

问题
如何为 Okasaki 基于 thunk 与 debit 的摊还复杂度分析提供可机器化检查的推理规则,尤其是处理未来 thunk 及其 debit 转移。
方法
在 Iris$ 时间信用分离逻辑中完整重建 Okasaki 的 thunk/debit 推理规则,并进行机器化证明。
评估
在 Iris$ 中验证若干 stream 操作以及 physicist's queue、implicit queues、banker's queue 等数据结构。
原文摘要(Abstract)

A thunk is a mutable data structure that offers a simple memoization service: it stores either a suspended computation or the result of this computation. Okasaki [1999] presents many data structures that exploit thunks to achieve good amortized time complexity. He analyzes their complexity by associating a debit with every thunk. A debit can be paid off in several increments; a thunk whose debit has been fully paid off can be forced. Quite strikingly, a debit is associated also with future thunks, which do not yet exist in memory. Some of the debit of a faraway future thunk can be transferred to a nearer future thunk. We present a complete machine-checked reconstruction of Okasaki’s reasoning rules in Iris $ , a rich separation logic with time credits. We demonstrate the applicability of the rules by verifying a few operations on streams as well as several of Okasaki’s data structures, namely the physicist’s queue, implicit queues, and the banker’s queue.

链接与引用

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

BibTeX
@article{paperbot2651,
  title = {Thunks and Debits in Separation Logic with Time Credits},
  author = {François Pottier and Armaël Guéneau and Jacques-Henri Jourdan and Glen Mével},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {8},
  number = {POPL},
  year = {2024},
  doi = {10.1145/3632892}
}