On the Monitorability of Session Types, in Theory and Practice (Extended Version)
Christian Batrolo Burl\`o, Adrian Francalanza, Alceste Scalas

TL;DR
This paper explores the theoretical foundations and practical implementation of session type monitoring in distributed systems, establishing new formal results and providing a Scala toolkit for runtime verification of communication protocols.
Contribution
It introduces a novel formal model for session-monitored processes and proves new results on monitorability, bridging static and runtime verification, and provides a practical Scala toolkit for monitor generation.
Findings
Formal model of session-monitored processes developed
Proved soundness and completeness of session type monitors
Scala toolkit successfully generates executable session monitors
Abstract
In concurrent and distributed systems, software components are expected to communicate according to predetermined protocols and APIs - and if a component does not observe them, the system's reliability is compromised. Furthermore, isolating and fixing protocol/API errors can be very difficult. Many methods have been proposed to check the correctness of communicating systems, ranging from compile-time to run-time verification; among such methods, session types have been applied for both static type-checking, and run-time monitoring. This work takes a fresh look at the run-time verification of communicating systems using session types, in theory and in practice. On the theoretical side, we develop a novel formal model of session-monitored processes; with it, we formulate and prove new results on the monitorability of session types, connecting their run-time and static verification - in…
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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSecurity and Verification in Computing · Logic, programming, and type systems · Advanced Software Engineering Methodologies
