paperbot · PL 论文追踪

RSS

Choice trees: Representing and reasoning about nondeterministic, recursive, and impure programs in Rocq

JFP vol.352025
NICOLAS CHAPPE, PAUL HE, LUDOVIC HENRIO, ELEFTHERIOS IOANNIDIS, YANNICK ZAKOWSKI, STEVE ZDANCEWIC

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

原文摘要(Abstract)

Abstract This paper introduces Choice Trees (CTrees), a monad for modeling nondeterministic, recursive, and impure programs in Rocq . Inspired by Xia et al .’s ((2019) Proc. ACM Program. Lang. 4 (POPL)) ITrees, this novel data structure embeds computations into coinductive trees with three kinds of nodes: external events, internal steps, and delayed branching. This structure allows us to provide shallow embedding of denotational models with nondeterministic choice in the style of ccs , while recovering an inductive LTS view of the computation. CTrees leverage a vast collection of bisimulation and refinement tools well-studied on LTSs, with respect to which we establish a rich equational theory. We connect CTrees to the ITrees infrastructure by showing how a monad morphism embedding the former into the latter permits using CTrees to implement nondeterministic effects. We demonstrate the utility of CTrees by using them to model concurrency semantics in two case studies: ccs and cooperative multithreading.

链接与引用

DOI 原文 ·

BibTeX
@article{paperbot3323,
  title = {Choice trees: Representing and reasoning about nondeterministic, recursive, and impure programs in Rocq},
  author = {NICOLAS CHAPPE and PAUL HE and LUDOVIC HENRIO and ELEFTHERIOS IOANNIDIS and YANNICK ZAKOWSKI and STEVE ZDANCEWIC},
  journal = {Journal of Functional Programming},
  volume = {35},
  year = {2025},
  doi = {10.1017/s0956796825100105}
}