342 research outputs found
Linearly Typed Dyadic Group Sessions for Building Multiparty Sessions
Traditionally, each party in a (dyadic or multiparty) session implements
exactly one role specified in the type of the session. We refer to this kind of
session as an individual session (i-session). As a generalization of i-session,
a group session (g-session) is one in which each party may implement a group of
roles based on one channel. In particular, each of the two parties involved in
a dyadic g-session implements either a group of roles or its complement. In
this paper, we present a formalization of g-sessions in a multi-threaded
lambda-calculus (MTLC) equipped with a linear type system, establishing for the
MTLC both type preservation and global progress. As this formulated MTLC can be
readily embedded into ATS, a full-fledged language with a functional
programming core that supports both dependent types (of DML-style) and linear
types, we obtain a direct implementation of linearly typed g-sessions in ATS.
The primary contribution of the paper lies in both of the identification of
g-sessions as a fundamental building block for multiparty sessions and the
theoretical development in support of this identification.Comment: This paper can be seen as the pre-sequel to classical linear
multirole logic (CLML). arXiv admin note: substantial text overlap with
arXiv:1603.0372
Multirole Logic (Extended Abstract)
We identify multirole logic as a new form of logic in which
conjunction/disjunction is interpreted as an ultrafilter on the power set of
some underlying set (of roles) and the notion of negation is generalized to
endomorphisms on this underlying set. We formalize both multirole logic (MRL)
and linear multirole logic (LMRL) as natural generalizations of classical logic
(CL) and classical linear logic (CLL), respectively, and also present a
filter-based interpretation for intuitionism in multirole logic. Among various
meta-properties established for MRL and LMRL, we obtain one named multiparty
cut-elimination stating that every cut involving one or more sequents (as a
generalization of a (binary) cut involving exactly two sequents) can be
eliminated, thus extending the celebrated result of cut-elimination by Gentzen
Multirole logic and multiparty channels
We identify multirole logic as a new form of logic in which conjunction/disjunction is interpreted as an ultrafilter on the power set of some underlying set (of roles), and the notion of negation is generalized to endomorphisms on this underlying set. In this talk, we present linear multirole logic (LMRL) as a natural generalization of classical linear logic (CLL). Among various meta-properties established for LMRL, we obtain one named multiparty cut-elimination stating that every cut involving one or more sequents (as a generalization of a binary cut involving exactly two sequents) can be eliminated, thus extending the celebrated result of cut-elimination by Gentzen. An immediate application of LMRL can be found in a formulation of session types for channels that support multiparty communication in distributed programming. Guided by LMRL, we give an interesting interpretation to linear multiplicative conjunction/disjunction as session type constructors that encompasses certain seemingly contradictory ones found in the literature
Session types in practical programming
Programs are more distributed and concurrent today than ever before, and structural communications are at the core. Constructing and debugging such programs are hard due to the lack of formal specifications and verifications of concurrency. Recent advances in type systems allow us to specify the structures of communications as session types, thus enabling static type checking of the usages of communication channels against protocols. The soundness of session type systems implies communication fidelity and absence of deadlock. This work proposes to formalize multiparty dependent session types as an expressive and practical type discipline for enforcing communication protocols. The type system is formulated in the setting of multi-threaded λ-calculus with inspirations from multirole logic. It is sound, and it provides linearity and coherence guarantees entirely statically. The type system supports recursion and polymorphism. The formulation is particularly suitable for practical implementation, and this work provides such a runtime implementation
Session Types in a Linearly Typed Multi-Threaded Lambda-Calculus
We present a formalization of session types in a multi-threaded
lambda-calculus (MTLC) equipped with a linear type system, establishing for the
MTLC both type preservation and global progress. The latter (global progress)
implies that the evaluation of a well-typed program in the MTLC can never reach
a deadlock. As this formulated MTLC can be readily embedded into ATS, a
full-fledged language with a functional programming core that supports both
dependent types (of DML-style) and linear types, we obtain a direct
implementation of session types in ATS. In addition, we gain immediate support
for a form of dependent session types based on this embedding into ATS.
Compared to various existing formalizations of session types, we see the one
given in this paper is unique in its closeness to concrete implementation. In
particular, we report such an implementation ready for practical use that
generates Erlang code from well-typed ATS source (making use of session types),
thus taking great advantage of the infrastructural support for distributed
computing in Erlang.Comment: This is the original version of the paper on supporting programming
with dyadic session types in AT
Multirole Logic and Multiparty Channels
We identify multirole logic as a new form of logic in which
conjunction/disjunction is interpreted as an ultrafilter on some underlying set
of roles and the notion of negation is generalized to endomorphisms on this
set. We formulate both multirole logic (MRL) and linear multirole logic (LMRL)
as natural generalizations of classical logic (CL) and classical linear logic
(CLL), respectively. Among various meta-properties established for MRL and
LMRL, we obtain one named multiparty cut-elimination stating that every cut
involving one or more sequents (as a generalization of a binary cut involving
exactly two sequents) can be eliminated, thus extending the celebrated result
of cut-elimination by Gentzen. As a side note, we also give an
ultrafilter-based interpretation for intuitionism, formulating MRLJ as a
natural generalization of intuitionistic logic (IL). An immediate application
of LMRL can be found in a formulation of session types for channels that
support multiparty communication in distributed programming. We present a
multi-threaded lambda-calculus (MTLC) where threads communicate on linearly
typed multiparty channels that are directly rooted in LMRL, establishing for
MTLC both type preservation and global progress. The primary contribution of
the paper consists of both identifying multirole logic as a new form of logic
and establishing a theoretical foundation for it, and the secondary
contribution lies in applying multirole logic to the practical domain of
distributed programming.Comment: arXiv admin note: text overlap with arXiv:1604.0302
Multirole logic
We formulate multirole logic as a new form of logic and naturally generalize Gentzen's celebrated result of cut-elimination between two sequents into one between multiple sequents. While the first and foremost inspiration for multirole logic came to us during a study on multiparty session types in distributed programming, it seems natural in retrospective to introduce multirole logic by exploring the well-known duality between conjunction and disjunction in classical logic. Let R0 be a (possibly infinite) underlying set of integers, where each integer is referred to as a role. In multirole logic, each formula A can be annotated with a set R of roles to form the i-formula [A]_R. For each ultrafilter U on the power set of R0, there is a (binary) logical connective \land_U such that [A_1\land_U A_2]_R is interpreted as the conjunction (disjunction) of [A_1]_R and [A_2]_R if R is in U (R is not in U). Furthermore, the notion of negation is generalized to endomorphisms on R0. We formulate both multirole logic (MRL) and linear multirole logic (LMRL) as natural generalizations of classical logic (CL) and classical linear logic (CLL), respectively. Among various meta-properties established for MRL and LMRL, we obtain one named multiparty cut-elimination stating that every cut involving one or more sequents can be eliminated
- …