paperbot · PL 论文追踪

RSS

Thunks and Debits in Separation Logic with Time Credits

POPL 8(POPL)2024
François Pottier, Armaël Guéneau, Jacques-Henri Jourdan, Glen Mével

尚未生成 AI 速览(可能缺少 API key 或等待下次运行补跑)。

原文摘要(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 原文 ·

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}
}