Dependent Types for Invariants in Session Types
Wiebe van Geest
Date: Fri, December 14, 2018
Room: Snijderszaal LB.01.010 (building 36)
Note: This is a MSc thesis defense
Session types are a formal method to describe communication protocols between two or more actors. Protocols that type check are guaranteed to respect communication safety, linearity, progress, and session fidelity. Basic session types, however, do not in general guarantee anything about the contents of messages, while real-life applications of structured communication, such as money transfers at the ING bank, could benefit greatly from content safety. In this work, we show how to state, verify, and run session-typed protocols with dependent variables in Idris, using Idris’ ST library.We also present an extension to the protocol description language Scribble. Scribble is a language for defining high-level global protocols between multiple actors and comes with a tool that automatically generates type signatures of local protocols for each actor in Java, in a way that these type signatures ensure that local actors follow the global protocol specification. We describe a new variant of the Scribble language which adds support for dependent variables, and a new tool for automatically generating Idris type signatures of local protocols for actors in a way that enforces dependent invariants.
| Dependent Types for Invariants in Session Types
Next: Paolo Giarrusso | Towards Semantic Type Soundness for Dependent Object Types and Scala with Logical Relations in Iris