paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Modelling Recursion and Probabilistic Choice in Guarded Type Theory

在守卫类型论中建模递归与概率选择
POPL 9(POPL)2025匹配度 3/10 · 该论文属于概率程序语言的形式语义与守卫类型论,与用户核心关注的静态分析、LLM/Agent 交叉、浮点程序分析或贝叶斯程序分析没有直接交集;仅可能在概率编程语言语义基础上提供间接参考,但未涉及 LLM 或程序分析工具。引用 1 inbox
Philipp Stassen, Rasmus Ejlers Møgelberg, Maaike Annebet Zwart, Alejandro Aguirre, Lars Birkedal
crossref: 2026-09-10

AI 速览

一句话:在守卫类型论中为带概率选择与递归类型的 FPC⊕ 建立操作与指称语义,并支持充分性与上下文等价推理。

构造性类型论将逻辑与编程统一,便于在类型论内推理程序,但递归与概率选择等计算效应难以直接表示,限制了其适用性。本文在守卫类型论中定义并推理 FPC⊕:一个带概率选择与递归类型的编程语言。作者用高阶归纳类型表示有限分布,用守卫递归建模递归,分别给出 FPC⊕ 的操作语义与指称语义,并建立二者之间的关系。该关系可用于证明充分性(adequacy),还可用于在上下文等价意义下推理程序。结果表明,守卫类型论能为含递归与概率效应的语言提供统一的语义与推理框架。

问题
构造性类型论难以直接表示和推理带递归与概率选择等计算效应的语言,如何在其内部给出此类语言的语义并建立推理原则是关键问题。
方法
在守卫类型论中使用高阶归纳类型表示有限分布、守卫递归建模递归,定义 FPC⊕ 的操作语义与指称语义及二者关系。
评估
通过证明该关系可用于充分性(adequacy),并展示其在上下文等价下推理程序的应用来评估。
原文摘要(Abstract)

Constructive type theory combines logic and programming in one language. This is useful both for reasoning about programs written in type theory, as well as for reasoning about other programming languages inside type theory. It is well-known that it is challenging to extend these applications to languages with recursion and computational effects such as probabilistic choice, because these features are not easily represented in constructive type theory. We show how to define and reason about FPC ⊕ , a programming language with probabilistic choice and recursive types, in guarded type theory. We use higher inductive types to represent finite distributions and guarded recursion to model recursion. We define both operational and denotational semantics of FPC ⊕ , as well as a relation between the two. The relation can be used to prove adequacy, but we also show how to use it to reason about programs up to contextual equivalence.

链接与引用

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

BibTeX
@article{paperbot3243,
  title = {Modelling Recursion and Probabilistic Choice in Guarded Type Theory},
  author = {Philipp Stassen and Rasmus Ejlers Møgelberg and Maaike Annebet Zwart and Alejandro Aguirre and Lars Birkedal},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {9},
  number = {POPL},
  year = {2025},
  doi = {10.1145/3704884}
}