Affiliation:
1. University of Freiburg, Germany
2. University of Lisbon, Portugal
Abstract
Session types have emerged as a typing discipline for communication protocols. Existing calculi with session types come equipped with many different primitives that combine communication with the introduction or elimination of the transmitted value.
We present a foundational session type calculus with a lightweight operational semantics. It fully decouples communication from the introduction and elimination of data and thus features a single communication reduction, which acts as a rendezvous between senders and receivers. We achieve this decoupling by introducing label-dependent session types, a minimalist value-dependent session type system with subtyping. The system is sufficiently powerful to simulate existing functional session type systems. Compared to such systems, label-dependent session types place fewer restrictions on the code. We further introduce primitive recursion over natural numbers at the type level, thus allowing to describe protocols whose behaviour depends on numbers exchanged in messages. An algorithmic type checking system is introduced and proved equivalent to its declarative counterpart. The new calculus showcases a novel lightweight integration of dependent types and linear typing, with has uses beyond session type systems.
Funder
FCT through the LASIGE Research Unit
EU Cost Action
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Cited by
20 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Message-Observing Sessions;Proceedings of the ACM on Programming Languages;2024-04-29
2. Choreographic Automata: A Case Study in Healthcare Management;Lecture Notes in Computer Science;2024
3. Dependent Session Protocols in Separation Logic from First Principles (Functional Pearl);Proceedings of the ACM on Programming Languages;2023-08-30
4. Intrinsically Typed Sessions with Callbacks (Functional Pearl);Proceedings of the ACM on Programming Languages;2023-08-30
5. Separating Sessions Smoothly;Logical Methods in Computer Science;2023-07-12