paperbot · PL 论文追踪

全部论文 待读 收藏

P2 The Duality of λ-Abstraction

λ-抽象的对偶性
POPL 9(POPL)2025匹配度 1/10 · 该论文是纯 PL 理论工作,研究 λ-抽象的对偶、共指数、控制效应与经典控制算子,未涉及静态分析、LLM/Agent、浮点程序分析或贝叶斯程序分析。引用 2 inbox
Vikraman Choudhury, Simon J. Gay
crossref: 2026-09-10

AI 速览

一句话:通过共指数与共抽象为 λ-抽象建立对偶,统一控制效应语义并导出经典控制算子。

论文从“高阶函数给出指数,高阶续延给出共指数”的观点出发,研究 λ-抽象的对偶。作者在按值调用的简单类型 λ-演算上引入共值、共抽象与共应用,构造同时包含指数与共指数的语言;利用续延的公理结构建立语义与等式理论,给出控制效应的完备公理化。该语言可通过推测执行与回溯获得计算解释,由此导出经典控制算子和经典逻辑的计算解释,并编码常见控制流模式。作者还通过对偶化函数完备性,用共指数刻画一阶箭头语言的对偶,并讨论该对偶作为控制算子的实现与应用。

问题
如何为 λ-抽象建立指数—共指数对偶,并用统一语言刻画高阶函数、高阶续延及控制效应?
方法
在按值调用的简单类型 λ-演算上扩展共值、共抽象与共应用,借助续延的公理结构建立语义与等式理论。
评估
以理论结果证明等式理论完备公理化控制效应,导出经典控制算子与经典逻辑的计算解释,并通过对偶化函数完备性讨论实现与应用。
原文摘要(Abstract)

In this paper, we develop and study the following perspective - just as higher-order functions give exponentials, higher-order continuations give coexponentials. From this, we design a language that combines exponentials and coexponentials, producing a duality of lambda abstraction. We formalise this language by giving an extension of a call-by-value simply-typed lambda-calculus with covalues, coabstraction, and coapplication. We develop the semantics of this language using the axiomatic structure of continuations, which we use to produce an equational theory, that gives a complete axiomatisation of control effects. We give a computational interpretation to this language using speculative execution and backtracking, and use this to derive the classical control operators and computational interpretation of classical logic, and encode common patterns of control flow using continuations. By dualising functional completeness, we further develop duals of first-order arrow languages using coexponentials. Finally, we discuss the implementation of this duality as control operators in programming, and develop some applications.

链接与引用

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

BibTeX
@article{paperbot3230,
  title = {The Duality of λ-Abstraction},
  author = {Vikraman Choudhury and Simon J. Gay},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {9},
  number = {POPL},
  year = {2025},
  doi = {10.1145/3704848}
}