English

Session Types with Arithmetic Refinements

Programming Languages 2020-05-14 v1 Logic in Computer Science

Abstract

Session types statically prescribe bidirectional communication protocols for message-passing processes. However, simple session types cannot specify properties beyond the type of exchanged messages. In this paper we extend the type system by using index refinements from linear arithmetic capturing intrinsic attributes of data structures and algorithms. We show that, despite the decidability of Presburger arithmetic, type equality and therefore also subtyping and type checking are now undecidable, which stands in contrast to analogous dependent refinement type systems from functional languages. We also present a practical, but incomplete algorithm for type equality, which we have used in our implementation of Rast, a concurrent session-typed language with arithmetic index refinements as well as ergometric and temporal types. Moreover, if necessary, the programmer can propose additional type bisimulations that are smoothly integrated into the type equality algorithm.

Keywords

Cite

@article{arxiv.2005.05970,
  title  = {Session Types with Arithmetic Refinements},
  author = {Ankush Das and Frank Pfenning},
  journal= {arXiv preprint arXiv:2005.05970},
  year   = {2020}
}

Comments

14 pages. arXiv admin note: text overlap with arXiv:2001.04439