Intrinsically-Typed Mechanized Semantics for Session Types

by   Peter Thiemann, et al.

Session types have emerged as a powerful paradigm for structuring communication-based programs. They guarantee type soundness and session fidelity for concurrent programs with sophisticated communication protocols. As type soundness proofs for languages with session types are tedious and technically involved, it is rare to see mechanized soundness proofs for these systems. We present an executable intrinsically typed small-step semantics for a realistic functional session type calculus. The calculus includes linearity, recursion, and recursive sessions with subtyping. Asynchronous communication is modeled with an encoding. The semantics is implemented in Agda as an intrinsically typed, interruptible CEK machine. This implementation proves type preservation and a particular notion of progress by construction.


page 1

page 2

page 3

page 4


Relating Functional and Imperative Session Types

Imperative session types provide an imperative interface to session-type...

Multiparty Dependent Session Types (Extended Abstract)

Programs are more distributed and concurrent today than ever before, and...

A Session Type System for Asynchronous Unreliable Broadcast Communication

Session types are formal specifications of communication protocols, allo...

Label-Dependent Session Types

Session types have emerged as a typing discipline for communication prot...

π with leftovers: a mechanisation in Agda

The π-calculus is a computational model for communication and concurrenc...

Session Coalgebras: A Coalgebraic View on Session Types and Communication Protocols

Compositional methods are central to the development and verification of...

Fault-Tolerant Multiparty Session Types (Technical Report)

Multiparty session types are designed to abstractly capture the structur...