Nested Session Types
Ankush Das, Henry DeYoung, Andreia Mordido, Frank Pfenning

TL;DR
This paper extends session types with prenex polymorphism and nested recursive datatypes, providing a decidable type equality, an efficient algorithm, and practical implementation in the Rast language.
Contribution
It introduces the first formal metatheory for session types with prenex polymorphism and nested recursive datatypes, including a novel type equality algorithm and implementation.
Findings
Type equality is decidable via trace equivalence reduction.
The proposed algorithm is efficient and practically sufficient.
Extended Rast with nested session types demonstrates increased expressivity.
Abstract
Session types statically describe communication protocols between concurrent message-passing processes. Unfortunately, parametric polymorphism even in its restricted prenex form is not fully understood in the context of session types. In this paper, we present the metatheory of session types extended with prenex polymorphism and, as a result, nested recursive datatypes. Remarkably, we prove that type equality is decidable by exhibiting a reduction to trace equivalence of deterministic first-order grammars. Recognizing the high theoretical complexity of the latter, we also propose a novel type equality algorithm and prove its soundness. We observe that the algorithm is surprisingly efficient and, despite its incompleteness, sufficient for all our examples. We have implemented our ideas by extending the Rast programming language with nested session types. We conclude with several examples…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Formal Methods in Verification · Distributed systems and fault tolerance
