Replicate, Reuse, Repeat: Capturing Non-Linear Communication via Session Types and Graded Modal Types

@inproceedings{Marshall2022ReplicateRR,
  title={Replicate, Reuse, Repeat: Capturing Non-Linear Communication via Session Types and Graded Modal Types},
  author={Daniel Graham Marshall and Dominic A. Orchard},
  booktitle={PLACES@ETAPS},
  year={2022}
}
Session types provide guarantees about concurrent behaviour and can be understood through their correspondence with linear logic, with propositions as sessions and proofs as processes. However, a strictly linear setting is somewhat limiting, since there exist various useful patterns of communication that rely on non-linear behaviours. For example, shared channels provide a way to repeatedly spawn a process with binary communication along a fresh linear session-typed channel. Non-linearity can… 
1 Citations
How to Take the Inverse of a Type (Artifact)
In functional programming, regular types are a subset of algebraic data types formed from products and sums with their respective units. One can view regular types as forming a commutative semiring

References

SHOWING 1-10 OF 28 REFERENCES
Linear type theory for asynchronous session types
TLDR
A multithreaded functional language with session types is defined, which unifies, simplifies and extends previous work, and significantly simplifies session types in the functional setting, clarifies their essential features and provides a secure foundation for language developments such as polymorphism and object-orientation.
A Semantics for Propositions as Sessions
TLDR
A variant of Wadler’s session-typed core functional language, GV, is presented and a small-step operational semantics for GV is given, which defines two extensions of GV which preserve deadlock-freedom, determinism, and termination.
Linear Haskell: practical linearity in a higher-order polymorphic language
TLDR
This paper studied a linear type system designed with two crucial properties in mind: backwards-compatibility and code reuse across linear and non-linear users of a library, and implemented the type system in ghc, the leading Haskell compiler, and demonstrated two kinds of applications of linear types.
Session Types as Intuitionistic Linear Propositions
TLDR
This paper introduces a type system for the π-calculus that exactly corresponds to the standard sequent calculus proof system for dual intuitionistic linear logic, and provides the first purely logical account of all features of session types.
Depending on Session-Typed Processes
TLDR
The proposed framework enables us to specify and statically verify protocols where the choice of the next communication action can depend on specific values of received data, and the type theoretic nature of the framework endows us with the ability to internally describe and prove predicates on process behaviours.
Quantitative program reasoning with graded modal types
TLDR
This work proposes the umbrella notion of graded modal types, encompassing coeffect types and dual notions of type-based effect reasoning via graded monads, and demonstrates this approach via a type system embodied in a fully-fledged functional language called Granule.
π with leftovers: a mechanisation in Agda
TLDR
This work presents the first full mechanisation in Agda of a {\pi}-calculus with linear, graded and shared types, all under the same unified framework, and shows that the type system is stable under substitution and prove subject reduction.
How to Take the Inverse of a Type (Artifact)
In functional programming, regular types are a subset of algebraic data types formed from products and sums with their respective units. One can view regular types as forming a commutative semiring
Bounded Linear Types in a Resource Semiring
TLDR
This paper introduces a bounded linear typing discipline on a general notion of resource which can be modeled in a semiring, and provides both a general type-inference procedure and a coherent categorical semantics for this type system.
...
...