Proceedings of the 22nd International Symposium on Principles and Practice of Declarative Programming 2020
DOI: 10.1145/3414080.3414087
|View full text |Cite
|
Sign up to set email alerts
|

Verified Linear Session-Typed Concurrent Programming

Abstract: We present a system of linear session types that integrates several features aimed at verification of different properties of concurrent programs, specifically types indexed with arithmetic expressions, linear constraints and quantification. We prove the standard type safety properties of session fidelity and deadlock freedom. In order to control the verbosity of programs we introduce implicit syntax and an algorithm for reconstruction, which is complete under some mild assumptions on the structure of types. W… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
4
1

Citation Types

0
19
0

Year Published

2021
2021
2023
2023

Publication Types

Select...
3
2
1

Relationship

2
4

Authors

Journals

citations
Cited by 11 publications
(19 citation statements)
references
References 32 publications
0
19
0
Order By: Relevance
“…In this section, we present the program constructs we have designed to realize nested polymorphism which have also been integrated with the Rast language [17,18,19] to support general-purpose programming. The underlying base system of session types is derived from a Curry-Howard interpretation [7,8] of intuitionistic linear logic [25].…”
Section: Formal Language Descriptionmentioning
confidence: 99%
See 1 more Smart Citation
“…In this section, we present the program constructs we have designed to realize nested polymorphism which have also been integrated with the Rast language [17,18,19] to support general-purpose programming. The underlying base system of session types is derived from a Curry-Howard interpretation [7,8] of intuitionistic linear logic [25].…”
Section: Formal Language Descriptionmentioning
confidence: 99%
“…We have implemented nested session types and integrated them with the Rast language that is based on session types [17,18,19]. We have evaluated our prototype on several examples such as the Dyck language [21], an expression server [45] and serializing binary trees, and standard polymorphic data structures such as lists, stacks and queues.…”
Section: Introductionmentioning
confidence: 99%
“…It furthermore supports arithmetic type refinements as well as ergometric and temporal types to measure the total work and span of Rast programs. The theory underlying Rast has been developed in several papers, including the Curry-Howard interpretation of linear logic as session-typed processes [CP10,CPT16], the treatment of general equirecursive types and type equality [GH05], asynchronous communication [GV10,DCPT12], ergometric types [DHP18b], temporal types [DHP18a], indexed types [GG13,DP20c], indexed type equality [DP20b], and nested polymorphism [DDMP21].…”
Section: Introductionmentioning
confidence: 99%
“…However, the simple session type does not express the conditions under which the none and some branches must be chosen, which requires tracking the length of the queue. Rast extends session types with arithmetic refinements [DP20b,DP20c] which can be used to express the length of a queue. The more precise type uses the index refinement n to indicate the number of elements in the queue.…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation