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
POST COMMENT

Comments

There are no comments yet.

Authors

page 1

page 2

page 3

page 4

07/22/2021

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

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

Session Types with Arithmetic Refinements

Session types statically prescribe bidirectional communication protocols...
11/02/2019

Label-Dependent Session Types

Session types have emerged as a typing discipline for communication prot...
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...
09/28/2020

Ferrite: A Judgmental Embedding of Session Types in Rust

This article introduces Ferrite, a shallow embedding of session types in...
01/20/2022

The Different Shades of Infinite Session Types

Many type systems include infinite types. In session type systems, which...
05/31/2019

A Role for Dependent Types in Haskell (Extended version)

Modern Haskell supports zero-cost coercions, a mechanism where types tha...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.