Affiliation:
1. University of Lyon - ENS Lyon - UCBL - CNRS - Inria - LIP, France
2. University of Pennsylvania, USA
Abstract
This paper introduces ctrees, a monad for modeling nondeterministic, recursive, and impure programs in Coq. Inspired by Xia et al.'s itrees, this novel data structure embeds computations into coinductive trees with three kind of nodes: external events, and two variants of nondeterministic branching. This apparent redundancy allows us to provide shallow embedding of denotational models with internal choice in the style of CCS, while recovering an inductive LTS view of the computation. ctrees inherit a vast collection of bisimulation and refinement tools, with respect to which we establish a rich equational theory.
We connect ctrees to the itree infrastructure by showing how a monad morphism embedding the former into the latter permits to use 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.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Cited by
6 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A HAT Trick: Automatically Verifying Representation Invariants using Symbolic Finite Automata;Proceedings of the ACM on Programming Languages;2024-06-20
2. Locally Abstract, Globally Concrete Semantics of Concurrent Programming Languages;ACM Transactions on Programming Languages and Systems;2024-03-29
3. Memory Simulations, Security and Optimization in a Verified Compiler;Proceedings of the 13th ACM SIGPLAN International Conference on Certified Programs and Proofs;2024-01-09
4. Fully Composable and Adequate Verified Compilation with Direct Refinements between Open Modules;Proceedings of the ACM on Programming Languages;2024-01-05
5. Stuttering for Free;Proceedings of the ACM on Programming Languages;2023-10-16