Value-Dependent Session Design in a Dependently Typed Language

04/02/2019
by   Jan de Muijnck-Hughes, et al.
0

Session Types offer a typing discipline that allows protocol specifications to be used during type-checking, ensuring that implementations adhere to a given specification. When looking to realise global session types in a dependently typed language care must be taken that values introduced in the description are used by roles that know about the value. We present Sessions, a Resource Dependent EDSL for describing global session descriptions in the dependently typed language Idris. As we construct session descriptions the values parameterising the EDSLs' type keeps track of roles and messages they have encountered. We can use this knowledge to ensure that message values are only used by those who know the value. Sessions supports protocol descriptions that are computable, composable, higher-order, and value-dependent. We demonstrate Sessions expressiveness by describing the TCP Handshake, a multi-modal server providing echo and basic arithmetic operations, and a Higher-Order protocol that supports an authentication interaction step.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/22/2021

Minimal Session Types for the π-calculus (Extended Version)

Session types enable the static verification of message-passing programs...
research
05/12/2020

Session Types with Arithmetic Refinements

Session types statically prescribe bidirectional communication protocols...
research
03/02/2023

Intrinsically Typed Sessions With Callbacks

All formalizations of session types rely on linear types for soundness a...
research
11/02/2019

Label-Dependent Session Types

Session types have emerged as a typing discipline for communication prot...
research
03/24/2022

Higher-order Context-free Session Types in System F

We present an extension of System F with higher-order context-free sessi...
research
01/20/2022

The Different Shades of Infinite Session Types

Many type systems include infinite types. In session type systems, which...
research
04/02/2019

Multiparty Session Type-safe Web Development with Static Linearity

Modern web applications can now offer desktop-like experiences from with...

Please sign up or login with your details

Forgot password? Click here to reset