type-based communication correctness in multi …...type-based communication correctness in...

101
Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge A. Pérez Bernoulli Institute for Mathematics, Computer Science, and AI University of Groningen, The Netherlands www.jperez.nl 20th European Agent Systems Summer School (EASSS 2018) Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 1 / 71

Upload: others

Post on 27-Mar-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Type-based Communication Correctness inMulti-agent Systems

Part II: Type Systems for Concurrency and Logical Foundations

Jorge A. Pérez

Bernoulli Institute for Mathematics, Computer Science, and AIUniversity of Groningen, The Netherlands

www.jperez.nl

20th European Agent Systems Summer School (EASSS 2018)

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 1 / 71

Page 2: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Outline

Context

Type Systems for Concurrency

Binary Session Types

Multiparty Session Types

The Curry-Howard Isomorphism

Session Types and Linear LogicTyping Rules and Main PropertiesMultiparty Session Types Into Binary Sessions

Closing Remarks

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 2 / 71

Page 3: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Communication & Types: Here to Stay!

The Present: Languages Promoted by Industry

� Facebook’s Flow (gradual types for JavaScript)� Google’s Go (concurrency, message-passing communication)� Mozilla’s Rust (affine references/ownership types)� Erlang (actor-based concurrency)

The Future (According to Gartner)Communication and distribution at a (very) large-scale:� 2018: 6 billion connected ‘things’ requesting support� 2020: Autonomous agents part of 5% of all transactions� 2020: Smart agents facilitate 40% of mobile interactions

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 3 / 71

Page 4: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Communication & Types: Here to Stay!

The Present: Languages Promoted by Industry

� Facebook’s Flow (gradual types for JavaScript)� Google’s Go (concurrency, message-passing communication)� Mozilla’s Rust (affine references/ownership types)� Erlang (actor-based concurrency)

The Future (According to Gartner)Communication and distribution at a (very) large-scale:� 2018: 6 billion connected ‘things’ requesting support� 2020: Autonomous agents part of 5% of all transactions� 2020: Smart agents facilitate 40% of mobile interactions

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 3 / 71

Page 5: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Communication & Types: Here to Stay!

The Present: Languages Promoted by Industry

� Facebook’s Flow (gradual types for JavaScript)� Google’s Go (concurrency, message-passing communication)� Mozilla’s Rust (affine references/ownership types)� Erlang (actor-based concurrency)

The Future (According to Gartner)Communication and distribution at a (very) large-scale:� 2018: 6 billion connected ‘things’ requesting support� 2020: Autonomous agents part of 5% of all transactions� 2020: Smart agents facilitate 40% of mobile interactions

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 3 / 71

Page 6: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Large-scale Software Infrastructures

� Large collections of services: distributed software artifacts- Heterogeneous, dynamic, extensible, composable, long-running, ...

� Concurrent and communication-centered- Services expose behavioral interfaces- Complex interaction/coordination patterns among them

� Correctness is a combination of several issues, including:- Protocol compatibility- Resource usage- Security and trustworthiness

� Building correct communicating software is difficult!

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 4 / 71

Page 7: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Where Do Errors Come From?

Leesatapornwongsa et al. (ASPLOS’16):

A study of 104 distributed concurrency (DC) bugs fromwidely-deployed cloud-scale datacenter distributed systems.

From their summary of findings:

� DC bugs linger in concurrent executions of multiple protocols.Systems contain many background protocols beyond user-facingforeground protocols. Their concurrent interactions can be deadly.

� DC bugs triggered by a single untimely message delivery thatcommits order violation or atomicity violation, with regard toother messages or computation.

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 5 / 71

Page 8: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Where Do Errors Come From?

Leesatapornwongsa et al. (ASPLOS’16):

A study of 104 distributed concurrency (DC) bugs fromwidely-deployed cloud-scale datacenter distributed systems.

From their summary of findings:

� DC bugs linger in concurrent executions of multiple protocols.Systems contain many background protocols beyond user-facingforeground protocols. Their concurrent interactions can be deadly.

� DC bugs triggered by a single untimely message delivery thatcommits order violation or atomicity violation, with regard toother messages or computation.

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 5 / 71

Page 9: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Type Systems: Two Slogans

Robin MilnerACM Turing Winner, 1991

� Types are the leaven of computerprogramming: they make it digestible.

� Well-typed programs can’t go wrong

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 6 / 71

Page 10: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Type Systems

Traditional data types (e.g., int, bool, string) classify values,and are an effective basis for validating sequential programs

To reason about services, behavioral types classify interactions� High-level representations of communication structures� Compositional ways of (statically) checking service behavior� Tied to programming abstractions that promote communication as

a first-class concern

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 7 / 71

Page 11: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Type Systems

Traditional data types (e.g., int, bool, string) classify values,and are an effective basis for validating sequential programs

To reason about services, behavioral types classify interactions� High-level representations of communication structures� Compositional ways of (statically) checking service behavior� Tied to programming abstractions that promote communication as

a first-class concern

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 7 / 71

Page 12: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Outline

Context

Type Systems for Concurrency

Binary Session Types

Multiparty Session Types

The Curry-Howard Isomorphism

Session Types and Linear LogicTyping Rules and Main PropertiesMultiparty Session Types Into Binary Sessions

Closing Remarks

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 8 / 71

Page 13: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Type Systems for Concurrency

The development of process languages with type-based techniqueshas received much attention

Type systems have revealed a rich landscape of concurrent modelswith disciplined communication

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 9 / 71

Page 14: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Behavioral Type Systems

� In contrast to usual data types, behavioral types representcausality, alternatives, repetition.

� Given a communication device (say, a channel), a behavioral typedefines- the series of actions realized through that device along time- its resource-usage policy

� Often developed on top of process calculi, such as the �-calculus.

� General verification techniques that may be tailored to differentactual languages:- Object-oriented: Java, Scala- Functional: Haskell, OCaML- Protocol languages: Scribble

� A notable class of behavioral types: session types

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 10 / 71

Page 15: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Behavioral Types: An Incomplete Timeline

1990

2017

Sortings for the �-calculus [Milner]1991 Type & Effect System for CML [Nielson & Nielson]1993 Types for Dyadic Interaction [Honda]1993

A Typed Interaction-based Language [Takeuchi et al.]1994

Linear Types for � [Kobayashi et al.]1996

Types for Deadlock-freedom in � [Kobayashi]1997

Binary Session Types [Honda et al.]

1998

Types for Non-Uniform Objects [Ravara & Vasconcelos]2000

Generic Process Types [Igarashi & Kobayashi]

2001

Multipoint Session Types [Bonelli & Compagnoni]

2007Multiparty Session Types [Honda et al.]

2008 Conversation Types [Caires & Vieira]2009 Parameterized Multiparty Session Types [Yoshida et al.]2010

Linear Session Types, Revisited [Giunti & Vasconcelos]2010

Session Types as Linear Logic [Caires & Pfenning]

2010

Dynamic Multirole Session Types [Deniélou & Yoshida]

2011

Choreographic Programming [Carbone & Montesi]

2013

Behavioral Separation Types [Caires & Seco]

2013

Page 16: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Behavioral Types: An Incomplete Timeline

1990

2017

Sortings for the �-calculus [Milner]1991 Type & Effect System for CML [Nielson & Nielson]1993 Types for Dyadic Interaction [Honda]1993

A Typed Interaction-based Language [Takeuchi et al.]1994

Linear Types for � [Kobayashi et al.]1996

Types for Deadlock-freedom in � [Kobayashi]1997

Binary Session Types [Honda et al.]

1998

Types for Non-Uniform Objects [Ravara & Vasconcelos]2000

Generic Process Types [Igarashi & Kobayashi]

2001

Multipoint Session Types [Bonelli & Compagnoni]

2007Multiparty Session Types [Honda et al.]

2008 Conversation Types [Caires & Vieira]2009 Parameterized Multiparty Session Types [Yoshida et al.]2010

Linear Session Types, Revisited [Giunti & Vasconcelos]2010

Session Types as Linear Logic [Caires & Pfenning]

2010

Dynamic Multirole Session Types [Deniélou & Yoshida]

2011

Choreographic Programming [Carbone & Montesi]

2013

Behavioral Separation Types [Caires & Seco]

2013

Page 17: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Outline

Context

Type Systems for Concurrency

Binary Session Types

Multiparty Session Types

The Curry-Howard Isomorphism

Session Types and Linear LogicTyping Rules and Main PropertiesMultiparty Session Types Into Binary Sessions

Closing Remarks

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 12 / 71

Page 18: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Session-Based Concurrency

Conceptually, two phases:1. Services advertise their session protocols along channel names.

Agreements are realized by their point-to-point interaction, in anunrestricted and non-deterministic way.

2. After agreement, compatible services establish a unique sessionalong (fresh, private) session names.Intra-session interactions follow the intended protocol in a linearand deterministic way.

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 13 / 71

Page 19: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

The Language of Session Types

Session types describe protocols in terms of� communication actions (input and output)� labeled choices (offers and selections)� sequential composition� recursion

Session protocols are associated to communication devices:� �-calculus names� service endpoints� TCP-IP sockets� � � �

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 14 / 71

Page 20: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

The Syntax of Binary Session Types

S ::= !U :S output value of type U , continue as S

j ?U :S input value of type U , continue as S

j Nfli : Sigi2I offer a selection between S1; : : : ;Sn

labels l1; : : : ; ln are pairwise differentj �fli : Sigi2I select between S1; : : : ;Sn

labels l1; : : : ; ln are pairwise differentj �t :S j t recursionj end terminated protocol

Notice:� The syntax of U refers to “basic values” (e.g. int;bool; : : :) but it

may also could contain S — aka session delegation� Sequential communication patterns (no built-in concurrency)Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 15 / 71

Page 21: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Example: A Two-Buyer Protocol

Alice and Bob cooperate in buying a book from Seller.1. Alice sends a book title to Seller, who sends a quote back.

2. Alice checks with Bob whether he can contribute in buying thebook.

3. Alice uses the answer from Bob to interact with Seller, eithera) completing the payment and arranging delivery detailsb) canceling the transaction

4. In case 3(a) Alice contacts Bob to get his address, and forwards itto Seller.

4’. In case 3(b) Alice is in charge of gracefully concluding theconversation.

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 16 / 71

Page 22: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Example: A Two-Buyer Protocol

Desiderata for the implementations of Alice, Bob, and Seller:

� Fidelity – they follow the intended protocol. For instance:- Alice doesn’t continue the transaction if Bob can’t contribute- Alice chooses among the options provided by Seller

� Safety – they don’t feature communication errors.For instance: Seller always returns an integer when asked byAlice to provide a quote

� Progress/Deadlock-Freedom – they do not “get stuck” whilerunning the protocol.For instance: Alice eventually receives an answer from Bob on hiscontribution to the transaction.

� Termination – they do not engage in infinite behavior (that mayprevent them from completing the protocol)

Correctness follows from their interplay. This is hard to enforce,especially if actions are “scattered around” in source programs.

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 17 / 71

Page 23: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Example: A Two-Buyer Protocol

Desiderata for the implementations of Alice, Bob, and Seller:

� Fidelity – they follow the intended protocol. For instance:- Alice doesn’t continue the transaction if Bob can’t contribute- Alice chooses among the options provided by Seller

� Safety – they don’t feature communication errors.For instance: Seller always returns an integer when asked byAlice to provide a quote

� Progress/Deadlock-Freedom – they do not “get stuck” whilerunning the protocol.For instance: Alice eventually receives an answer from Bob on hiscontribution to the transaction.

� Termination – they do not engage in infinite behavior (that mayprevent them from completing the protocol)

Correctness follows from their interplay. This is hard to enforce,especially if actions are “scattered around” in source programs.Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 17 / 71

Page 24: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Example: A Two-Buyer Protocol

We may define two separate protocols, with Alice “leading” theinteractions (later on we will consider a simpler solution):

� A session type for Seller (in its interaction with Alice):

S1 = ?book: !quote: N(

buy : ?paym: ?address: !ok:endcancel : ?thanks: !bye:end

� A session type for Alice (in its interaction with Bob):

S2 = !cost: N(

share : ?address: !ok:endclose : !bye:end

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 18 / 71

Page 25: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Example: A Two-Buyer Protocol

Implementations for Alice, Bob, Seller should be compatible.

� Using session types, compatibility follows from type duality,which relates types with opposite behaviors. Intuitively:- the dual of input is output (and vice versa)- branching is the dual of selection (and vice versa)

� This way, e.g., the implementation of Bob should conform to thedual of S2, denoted S2:

S2 = !cost:N(

share : ?address: !ok:endclose : !bye:end

S2 = ?cost:�

(share : !address: ?ok:endclose : ?bye:end

� Also, Alice’s implementation should conform to both S1 and S2.

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 19 / 71

Page 26: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Example: A Two-Buyer Protocol

Implementations for Alice, Bob, Seller should be compatible.

� Using session types, compatibility follows from type duality,which relates types with opposite behaviors. Intuitively:- the dual of input is output (and vice versa)- branching is the dual of selection (and vice versa)

� This way, e.g., the implementation of Bob should conform to thedual of S2, denoted S2:

S2 = !cost:N(

share : ?address: !ok:endclose : !bye:end

S2 = ?cost:�

(share : !address: ?ok:endclose : ?bye:end

� Also, Alice’s implementation should conform to both S1 and S2.

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 19 / 71

Page 27: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Example: A Two-Buyer Protocol

Implementations for Alice, Bob, Seller should be compatible.

� Using session types, compatibility follows from type duality,which relates types with opposite behaviors. Intuitively:- the dual of input is output (and vice versa)- branching is the dual of selection (and vice versa)

� This way, e.g., the implementation of Bob should conform to thedual of S2, denoted S2:

S2 = !cost:N(

share : ?address: !ok:endclose : !bye:end

S2 = ?cost:�

(share : !address: ?ok:endclose : ?bye:end

� Also, Alice’s implementation should conform to both S1 and S2.

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 19 / 71

Page 28: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Session Type Duality, Formally

Given a (finite) session type S , its dual type S is inductively definedas follows:

!U :S = ?U :S

?U :S = !U :S

Nfli : Sigi2I = �fli : Sigi2I

�fli : Sigi2I = Nfli : Sigi2I

end = end

Notice:� Duality for recursive session types is defined coinductively rather

than inductively (i.e., the dual of �t :S is not just �t :S )

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 20 / 71

Page 29: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Enhancing Compatibility via Subtyping

Consider a “mathematical server” and two candidate clients.� The session type for the server:

S = N(

add : ?Real: ?Real: !Real:endeq : ?Real: ?Real: !Bool:end

� The session types for each of the clients:

Integer client T1 = �

(add : !Real: !Real: ?Real:endeq : !Int: !Int: ?Bool:end

Minimal client T2 = �n

add : !Real: !Real: ?Real:end

� The types are incompatible: S and T1 consider messages ofdifferent base types, and the options of S and T2 do not match.

� Still, the types are “morally” compatible...

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 21 / 71

Page 30: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Enhancing Compatibility via Subtyping

Consider a “mathematical server” and two candidate clients.� The session type for the server:

S = N(

add : ?Real: ?Real: !Real:endeq : ?Real: ?Real: !Bool:end

� The session types for each of the clients:

Integer client T1 = �

(add : !Real: !Real: ?Real:endeq : !Int: !Int: ?Bool:end

Minimal client T2 = �n

add : !Real: !Real: ?Real:end

� The types are incompatible: S and T1 consider messages ofdifferent base types, and the options of S and T2 do not match.

� Still, the types are “morally” compatible...

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 21 / 71

Page 31: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Enhancing Compatibility via Subtyping

We may relate S with T1 and T2, using a subtyping relation.

� Notation: S1 � S2 (read: S1 is a subtype of S2)

� Intuitively, if S1 � S2 then a name of type S1 can safely be usedwhere a name of type S2 is expected (safe sustitutability)

� Consider the session types (dual to the client types T1;T2):

S1 = N(

add : ?Real: ?Real: !Real:endeq : ?Int: ?Int: !Bool:end

S2 = Nn

add : ?Real: ?Real: !Real:end

� We have that:S1 � S : it is safe to receive integers if reals are supportedS2 � S : it is safe to deal with clients that don’t know all options

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 22 / 71

Page 32: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Enhancing Compatibility via Subtyping

We may relate S with T1 and T2, using a subtyping relation.

� Notation: S1 � S2 (read: S1 is a subtype of S2)

� Intuitively, if S1 � S2 then a name of type S1 can safely be usedwhere a name of type S2 is expected (safe sustitutability)

� Consider the session types (dual to the client types T1;T2):

S1 = N(

add : ?Real: ?Real: !Real:endeq : ?Int: ?Int: !Bool:end

S2 = Nn

add : ?Real: ?Real: !Real:end

� We have that:S1 � S : it is safe to receive integers if reals are supportedS2 � S : it is safe to deal with clients that don’t know all options

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 22 / 71

Page 33: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Enhancing Compatibility via Subtyping

We may relate S with T1 and T2, using a subtyping relation.

� Notation: S1 � S2 (read: S1 is a subtype of S2)

� Intuitively, if S1 � S2 then a name of type S1 can safely be usedwhere a name of type S2 is expected (safe sustitutability)

� Consider the session types (dual to the client types T1;T2):

S1 = N(

add : ?Real: ?Real: !Real:endeq : ?Int: ?Int: !Bool:end

S2 = Nn

add : ?Real: ?Real: !Real:end

� We have that:S1 � S : it is safe to receive integers if reals are supportedS2 � S : it is safe to deal with clients that don’t know all options

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 22 / 71

Page 34: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Subtyping, Formally

For finite session types we may inductively define:

end � endU1 � U2 S1 � S2

!U2:S1 � !U1:S2

U1 � U2 S1 � S2

?U1:S1 � ?U2:S2

I � J 8i 2 I :Si � Ti

Nfli : Sigi2I � Nflj : Tj gj2J

J � I 8j 2 J :Sj � Tj

�flj : Sj gj2J � �fli : Tigi2I

In our examples:� Nfadd : S1g � Nfadd : T1;eq : T2g, provided S1 � T1.� ?Int: ?Int: !Bool:end � ?Real: ?Real: !Bool:end,

provided Int � Real.

Notice� � concerns substitutability of names implementing protocols.

Safe substitutability of processes (programs) is also possible.

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 23 / 71

Page 35: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Outline

Context

Type Systems for Concurrency

Binary Session Types

Multiparty Session Types

The Curry-Howard Isomorphism

Session Types and Linear LogicTyping Rules and Main PropertiesMultiparty Session Types Into Binary Sessions

Closing Remarks

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 24 / 71

Page 36: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

From Binary to Multiparty Protocols

� Binary session types organize interactions between exactly twopartners. Multiple participants follow disjoint protocols.

� In many scenarios, however, three or more partners must interactalong the same session protocol.

� Decomposing such multiparty protocols into binary sessions isnot always possible — crucial sequencing information may be lost.

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 25 / 71

Page 37: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

The Need for Sequencing Information

� A two-buyer protocol, similar to the one discussed earlier:

� A decomposition as binary protocols may appear plausible...

� ... but misses key sequencing between unrelated partners.

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 26 / 71

Page 38: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

The Need for Sequencing Information

� A two-buyer protocol, similar to the one discussed earlier:

� A decomposition as binary protocols may appear plausible...

� ... but misses key sequencing between unrelated partners.

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 26 / 71

Page 39: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

The Need for Sequencing Information

� A two-buyer protocol, similar to the one discussed earlier:

� A decomposition as binary protocols may appear plausible...

� ... but misses key sequencing between unrelated partners.

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 26 / 71

Page 40: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Multiparty Session Types (MPSTs)

A methodology for decentralized specification, development, andvalidation of protocols between multiple participants:

� A global type: overall description of the multiparty protocol� A series of local types, one for each participant, obtained from

the global type using a projection function� End-point implementations can be developed using local types

as a reference for (local) validation (e.g. type-checking)

G

TbobTalice Tcarol Tdave

PbobPalice Pcarol Pdave

Projection

TypeChecking

Global type

Local types

Programs

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 27 / 71

Page 41: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Multiparty Session Types (MPSTs)

A methodology for decentralized specification, development, andvalidation of protocols between multiple participants:� A global type: overall description of the multiparty protocol� A series of local types, one for each participant, obtained from

the global type using a projection function� End-point implementations can be developed using local types

as a reference for (local) validation (e.g. type-checking)

G

TbobTalice Tcarol Tdave

PbobPalice Pcarol Pdave

Projection

TypeChecking

Global type

Local types

Programs

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 27 / 71

Page 42: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

The Syntax of Multiparty Session Types

Let U denote the type for transmittable values.

� Global types:

G ::= p! q : hU i:G Value exchangej p! q : fli : Gigi2I Branchingj �t :G j t Recursionj end Terminated global protocol

� Local types:

T ::= !hp;U i:T Send value to p

j ?hp;U i:T Receive value from p

j �hp; fli : Tigi2I i Select from options offered by pj Nhp; fli : Tigi2I i Offer labeled options to p

j �t :T j t j end Recursion / Terminated Protocol

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 28 / 71

Page 43: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Projection

The projection of global type G onto participant r, denoted G�r:

� (p! q : hU i:G 0)�r =

8>><>>:!hq;U i:(G 0�r) if r = p

?hp;U i:(G 0�r) if r = q

G 0�r otherwise

� (p! q : fli : Gigi2I )�r =8>>>>><>>>>>:

�hq; fli : (Gi�r)gi2I i if r = p

Nhp; fli : (Gi�r)gi2I i if r = q

Gj�r if r 6= p;r 6= q; j 2 I andGk�r = Gl�r, for all k ; l 2 I

� (�t :G 0)�r =

(�t :(G 0�r) if G 0�r 6= tend otherwise

t�r = t

� end�r = end

This is a bit too rigid - why?Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 29 / 71

Page 44: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

The Two-Buyer Protocol, Revisited (1/3)

Alice and Bob cooperate in buying a book from Seller.1. Alice sends a book title to Seller, who sends a quote back.

2. Alice checks with Bob whether he can contribute in buying thebook.

3. Alice uses the answer from Bob to interact with Seller, eithera) completing the payment and arranging delivery detailsb) canceling the transaction

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 30 / 71

Page 45: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

The Two-Buyer Protocol, Revisited (2/3)

A single global protocol G between Alice, Bob, and Seller:

G = Alice ! Seller : hbooki:Seller ! Alice : hquotei:

Alice ! Bob : hcosti:Bob ! Alice : f share : Alice ! Bob : hoki:

Alice ! Seller : hpaymi:end

close : Alice ! Bob : hbyei:Alice ! Seller : hbyei:end

g

where book, quote, cost, ok, paym, bye, and close are all basetypes. Also, for simplicity, we assume that paym = close = str.

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 31 / 71

Page 46: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

The Two-Buyer Protocol, Revisited (3/3)

The projections of G onto Alice, Bob, and Seller:

G�Alice = !hSeller;booki:?hSeller;quotei:!hBob;costi:NhBob; fshare : !hBob;oki:

!hSeller;paymi:endclose : !hBob;byei:endg i

G�Bob = ?hAlice;costi:�hAlice; fshare : ?hAlice;oki:end

close : ?hAlice;byei:endg i

G�Seller = ?hAlice;booki:!hAlice;quotei:?hAlice;paym=closei:end

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 32 / 71

Page 47: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Taking Stock (1/2)

Binary session types� Describe protocols between exactly two partners� A session type describes the (possibly infinite) sequence of

actions that a given participant performs� Compatibility defined in terms of session type duality� Enhancements of compatibility via subtyping

Multiparty session types� Describe protocols between more than two partners� A global type describes the overall interaction scenario.

Local types: binary session types + participant identities.� Global type projection into local types enforces compatibility.

Not all global types are well-formed (i.e., implementable).� Enhancements via subtyping extend to local types

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 33 / 71

Page 48: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Outline

Context

Type Systems for Concurrency

Binary Session Types

Multiparty Session Types

The Curry-Howard Isomorphism

Session Types and Linear LogicTyping Rules and Main PropertiesMultiparty Session Types Into Binary Sessions

Closing Remarks

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 34 / 71

Page 49: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Are They Related?

Programmer Logician

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 35 / 71

Page 50: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Yes, They Are!

Haskell Curry William Howard

The Curry-Howard isomorphism: an intimate and tight relationbetween logic and computation:

Propositions as TypesProofs as Programs

Simplification of Proofs as Program Evaluation

A remarkable correspondence!Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 36 / 71

Page 51: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Curry-Howard: Significance

Haskell Curry William Howard

Viewing “propositions as types, proofs as programs” has importantconsequences:� Some aspects of everyday programming are absolute� Understand computation through logic (and vice versa!)

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 37 / 71

Page 52: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Curry-Howard Today

Luís Caires Frank Pfenning

� Until recently, the CH isomorphism was limited to sequentialprograms in the functional paradigm

� In 2010, Luís Caires and Frank Pfenning showed that CH can beextended to concurrent, message-passing programs:

Propositions in Linear Logic as Session TypesProofs as �-calculus processes

Simplification of Proofs as Process Reduction

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 38 / 71

Page 53: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Linear Logic, Informally (1/3)1

� Proposed by Jean-Yves Girard (1987)� Classical logic deals with stable truths:

if A and A ) B then B , but A still holds

� Example:- A = ‘Tomorrow is June 22nd’- B = ‘John will swim’- A ) B = ‘If tomorrow is June 22nd, then John will swim’

� So, if tomorrow is June 22nd, then John will swim.This doesn’t change the fact that tomorrow will be June 22nd.

1Based on slides by Beniamino Accattoli.

Page 54: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Linear Logic, Informally (2/3)

� However, with consumable resources (money, food, etc), classicalimplications are wrong.

� Example:- A = ‘John has (only) 5 Euros’- B = ‘John has a pack of cigarettes’- A ) B = ‘For his 5 Euros, John gets a pack of cigarettes’

� In the classical world, if John buys the cigarettes then he will stillhave the 5 Euros!

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 40 / 71

Page 55: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Linear Logic, Informally (3/3)

In Linear Logic:� Implication consumes hypothesis to produce conclusions� Linear implications are actions� Not a new kind of logic, but a refinement of classic logic� Two conjunctions ( and N), two disjunctions (O and �), and two

modalities for duplicating and discarding resources (! and ?)� Connectives are multiplicative ( and O) and additive (N and �)� Intuition: multiplicatives denote simultaneous occurrence of

resources, whereas additives denote alternative occurrence

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 41 / 71

Page 56: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Outline

Context

Type Systems for Concurrency

Binary Session Types

Multiparty Session Types

The Curry-Howard Isomorphism

Session Types and Linear LogicTyping Rules and Main PropertiesMultiparty Session Types Into Binary Sessions

Closing Remarks

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 42 / 71

Page 57: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Logic Foundations for Session Types

Linear Logic for Concurrency [Caires&Pfenning’10]

Based on dual intuitionistic linear logic (DILL) [cf. Barber&Plotkin]

propositions $ session typessequent proofs $ �-calculus processescut elimination $ process communication

Main Features

� Clear account of resource usage policies in concurrency� Session fidelity, runtime safety, global progress “for free”� Excellent basis for generalizations and extensions

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 43 / 71

Page 58: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

A Synchronous �-calculus (2-ary)

P ;Q ::= x z :P send z on x , proceed as Pj x (y):P receive z on x , proceed as Pfz=ygj !x (y):P replicated server at xj x :case(P ;Q) branching: offers a choice at xj x :inl;P select left at x , continue as Pj x :inr;P select right at x , continue as Pj [x$y ] forwarder: fuses x and yj P | Q parallel compositionj (νy)P name restrictionj 0 inaction

Notation: We write x (y) to stand for the bound output (νy)x y .

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 44 / 71

Page 59: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

A Synchronous �-calculus (n-ary)

P ;Q ::= x z :P send z on x , proceed as Pj x (y):P receive z on x , proceed as Pfz=ygj !x (y):P replicated server at xj x .fl1:P1; : : : ;ln :Png branching: offers a choice at xj x /lj ;P select label lj at x , continue as Pj [x$y ] forwarder: fuses x and yj P | Q parallel compositionj (νy)P name restrictionj 0 inaction

Notation: We write x (y) to stand for the bound output (νy)x y .

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 44 / 71

Page 60: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Operational Semantics

� Reduction gives the behavior of a process on its own:

x y :Q | x (z ):P �! Q | Pfy=zgx y :Q | !x (z ):P �! Q | Pfy=zg | !x (z ):P

x :inr;P | x :case(Q ;R) �! P | Rx :inl;P | x :case(Q ;R) �! P | Q

(νx )([x$y ] | P) �! Pfy=xgQ �! Q 0 ) P | Q �! P | Q 0

P �! Q ) (νy)P �! (νy)Q

Closed under structural congruence, noted �.� A standard LTS with labels for selection/choice constructs:

� ::= � j x (y) j x /l j x y j x (y) j x /l

Strong transitions ��! and weak transitions �

=).

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 45 / 71

Page 61: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Session Types as Linear Logic Props

The type syntax coincides with dual intuitionistic linear logic.Propositions/types (A;B ;C ;T ) are assigned to names:

x : AB Output an A along x , behave as B on x

x : A( B Input an A along x , behave as B on x

x : !A Persistently offer A along x

x : A N B Offer both A and B along x

x : A�B Select either A or B along x

x : 1 Terminated interaction on x

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 46 / 71

Page 62: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Session Types as Linear Logic Props

The type syntax coincides with dual intuitionistic linear logic.Propositions/types (A;B ;C ;T ) are assigned to names:

x : AB Output an A along x , behave as B on x

x : A( B Input an A along x , behave as B on x

x : !A Persistently offer A along x

x : Nfl1:A1; : : : ;ln :Ang Offer A1; : : : ;An along x

x : �fl1:A1; : : : ;ln :Ang Select one of A1; : : : ;An along x

x : 1 Terminated interaction on x

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 46 / 71

Page 63: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Type Judgments: Intuitions

P :: z : C

Process P offers behavior C at name z

when composed withprocesses offering A1 at x1, � � � , An at xn

Examples� ` P :: z : 1 P offers nothing relying on behaviors �� ` Q :: z : !A Q is an autonomous replicated server

x : AB ` R :: z : C R requires A;B on x to offer z : C

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 47 / 71

Page 64: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Type Judgments: Intuitions

x1 : A1; : : : ; xn : An ` P :: z : C

Process P offers behavior C at name zwhen composed with

processes offering A1 at x1, � � � , An at xn

Examples� ` P :: z : 1 P offers nothing relying on behaviors �� ` Q :: z : !A Q is an autonomous replicated server

x : AB ` R :: z : C R requires A;B on x to offer z : C

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 47 / 71

Page 65: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Type Judgments: Intuitions

x1 : A1; : : : ; xn : An ` P :: z : C

Process P offers behavior C at name zwhen composed with

processes offering A1 at x1, � � � , An at xn

Examples� ` P :: z : 1 P offers nothing relying on behaviors �� ` Q :: z : !A Q is an autonomous replicated server

x : AB ` R :: z : C R requires A;B on x to offer z : C

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 47 / 71

Page 66: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Type Judgments, Actually

Dependencies as two sets of type assignments, � and �:

u1 : A1; : : : ;un : An| {z }�

; x1 : B1; : : : ; xk : Bk| {z }�

` P :: z : C

� � specifies shared services Ai along ui

� � specifies linear services Bj along xj [no weakening, contraction]

(Names ui ; xj ; z pairwise distinct.)

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 48 / 71

Page 67: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Example: PDF Conversion Service

Receive a file and then either return its PDF version OR quit:

Converter , file(�(PDF 1) N 1

�� A process which offers a linear conversion service:

Server , x (f ):x .fconv : x (y):C(f ;y) ; quit : Qg

� A user which depends on the server:

User , x (txt):x /conv; x (pdf ):R

� Next, we will see how server and user can be composed:

� ` Server :: x : Converter x : Converter ` User :: z : A� ` (νx )(Server | User) :: z : A

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 49 / 71

Page 68: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Typing Rules

The logic correspondence induces right and left typing rules:� Right rules detail how a process can implement the behavior

described by the given connective� Left rules explain how a process may use a session of a given type

Cut rules in sequent calculus read as well-typed processcomposition, based on restriction and parallel composition.

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 50 / 71

Page 69: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Some Typing Rules

�; x : A ` [x$z ] :: z : A

�;� ` P :: y : A �;�0 ` Q :: x : B�;�;�0 ` x (y):(P | Q) :: x : AB

�;�; y : A; x : B ` P :: T�;�; x : AB ` x (y):P :: T

�;� ` P :: x : A �;� ` Q :: x : B�;� ` x :case(P ;Q) :: x : A N B

�;�; x : A ` P :: T�;�; x : A N B ` x :inl;P :: T

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 51 / 71

Page 70: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Some Typing Rules

�; x : A ` [x$z ] :: z : A

�;� ` P :: y : A �;�0 ` Q :: x : B�;�;�0 ` x (y):(P | Q) :: x : AB

�;�; y : A; x : B ` P :: T�;�; x : AB ` x (y):P :: T

�;� ` P :: x : A �;� ` Q :: x : B�;� ` x :case(P ;Q) :: x : A N B

�;�; x : A ` P :: T�;�; x : A N B ` x :inl;P :: T

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 51 / 71

Page 71: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Some Typing Rules

�; x : A ` [x$z ] :: z : A

�;� ` P :: y : A �;�0 ` Q :: x : B�;�;�0 ` x (y):(P | Q) :: x : AB

�;�; y : A; x : B ` P :: T�;�; x : AB ` x (y):P :: T

�;� ` P :: x : A �;� ` Q :: x : B�;� ` x :case(P ;Q) :: x : A N B

�;�; x : A ` P :: T�;�; x : A N B ` x :inl;P :: T

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 51 / 71

Page 72: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Some Typing Rules

�; x : A ` [x$z ] :: z : A

�;� ` P :: y : A �;�0 ` Q :: x : B�;�;�0 ` x (y):(P | Q) :: x : AB

�;�; y : A; x : B ` P :: T�;�; x : AB ` x (y):P :: T

�;� ` P :: x : A �;� ` Q :: x : B�;� ` x :case(P ;Q) :: x : A N B

�;�; x : A ` P :: T�;�; x : A N B ` x :inl;P :: T

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 51 / 71

Page 73: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Some Typing Rules

�; x : A ` [x$z ] :: z : A

�;� ` P :: y : A �;�0 ` Q :: x : B�;�;�0 ` x (y):(P | Q) :: x : AB

�;�; y : A; x : B ` P :: T�;�; x : AB ` x (y):P :: T

�;� ` P :: x : A �;� ` Q :: x : B�;� ` x :case(P ;Q) :: x : A N B

�;�; x : A ` P :: T�;�; x : A N B ` x :inl;P :: T

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 51 / 71

Page 74: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Typing Composition

Linear CompositionCut as composition principle for linear services:

�;� ` P :: x : A �;�0; x : A ` Q :: T

�;�;�0 ` (νx )(P | Q) :: T

Shared CompositionCut! as composition principle for shared services:

�; � ` P :: y : A �;u : A; � ` Q :: z : C�;� ` (νu)(!u(y):P | Q) :: z : C

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 52 / 71

Page 75: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Linear Cut as Process Reduction

�1 ` P1 :: y :A �2 ` P2 :: x :B�1;�2 ` x (y):(P1 | P2) :: x :AB

�3; y :A; x :B ` Q :: T�3; x :AB ` x (y):Q :: T

�1;�2;�3 ` (νx )(x (y):(P1 | P2) | x (y):Q) :: T

�!

�2 ` P2 :: x :B�1 ` P1 :: y :A �3; y :A; x :B ` Q :: T

�1;�3; x :B ` (νy)(P1 | Q) :: T�1;�2;�3 ` (νx )(P2 | (νy)(P1 | Q)) :: T

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 53 / 71

Page 76: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Shared Cut as Process Reduction

�; � ` P :: x :A�;u :A; �; x :A ` Q :: T�;u :A; � ` u(x ):Q :: T

copy

�;� ` (νu)(!u(x ):P | u(x ):Q) :: T cut!

�!

�; � ` P :: x :A�; � ` P :: x :A �;u :A; �; x :A ` Q :: T

�;�; x :A ` (νu)(!u(x ):P | Q) :: T cut!

�;� ` (νx )(P | (νu)(!u(x ):P | Q)) :: T cut

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 54 / 71

Page 77: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Properties of the Type System

Theorem (Type Preservation)If �;� ` P :: z : A and P �! Q then �;� ` Q :: z : A.

� Process reductions map to principal cut reductions� Derived properties: communication safety and session fidelity.

For any P , define live(P) iff P � (νn)(�:Q | R) for some �:Q ;R;nwhere �:Q is a non-replicated guarded process.

Theorem (Global Progress / Deadlock Avoidance)If �; � ` P :: z : 1 and live(P) then exists a Q such that P �! Q .

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 55 / 71

Page 78: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Properties of the Type System

Theorem (Type Preservation)If �;� ` P :: z : A and P �! Q then �;� ` Q :: z : A.

� Process reductions map to principal cut reductions� Derived properties: communication safety and session fidelity.

For any P , define live(P) iff P � (νn)(�:Q | R) for some �:Q ;R;nwhere �:Q is a non-replicated guarded process.

Theorem (Global Progress / Deadlock Avoidance)If �; � ` P :: z : 1 and live(P) then exists a Q such that P �! Q .

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 55 / 71

Page 79: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Multiparty STs Within Binary STs

First analysis of multiparty sessions within binary session types� Based on linear logic foundations [Caires&Pfenning’10]

� Relates standard formulations [Honda,Yoshida,Carbone’08]

� Simple and extensible (polymorphism, recursion, asynchrony)

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 56 / 71

Page 80: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Binary Session Types (BSTs)- Exactly two partners- Correctness relies on action compatibility- Well-understood theory and analysis techniques

Foundational significance:Curry-Howard correspondence with linear logic [Caires&Pfenning’10;Wadler’12]

Multiparty Session Types (MPSTs)

- More than two partners- Global and local types, related by projection- Subtle underlying theory; analysis techniques hard to obtainFoundational significance:Characterization via communicating automata (CFSMs)[Deniélou&Yoshida’12,13; Lange,Tuosto,Yoshida’15]

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 57 / 71

Page 81: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Binary Session Types (BSTs)- Exactly two partners- Correctness relies on action compatibility- Well-understood theory and analysis techniques

Foundational significance:Curry-Howard correspondence with linear logic [Caires&Pfenning’10;Wadler’12]

Multiparty Session Types (MPSTs)- More than two partners- Global and local types, related by projection- Subtle underlying theory; analysis techniques hard to obtain

Foundational significance:Characterization via communicating automata (CFSMs)[Deniélou&Yoshida’12,13; Lange,Tuosto,Yoshida’15]

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 57 / 71

Page 82: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Binary Session Types (BSTs)- Exactly two partners- Correctness relies on action compatibility- Well-understood theory and analysis techniques

Foundational significance:Curry-Howard correspondence with linear logic [Caires&Pfenning’10;Wadler’12]

Multiparty Session Types (MPSTs)- More than two partners- Global and local types, related by projection- Subtle underlying theory; analysis techniques hard to obtain

Foundational significance:Characterization via communicating automata (CFSMs)[Deniélou&Yoshida’12,13; Lange,Tuosto,Yoshida’15]

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 57 / 71

Page 83: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Binary Session Types (BSTs)- Exactly two partners- Correctness relies on action compatibility- Well-understood theory and analysis techniques

Foundational significance:Curry-Howard correspondence with linear logic [Caires&Pfenning’10;Wadler’12]

Multiparty Session Types (MPSTs)- More than two partners- Global and local types, related by projection- Subtle underlying theory; analysis techniques hard to obtainFoundational significance:Characterization via communicating automata (CFSMs)[Deniélou&Yoshida’12,13; Lange,Tuosto,Yoshida’15]

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 57 / 71

Page 84: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

An Open Problem

Can MPSTs Be Reduced Into BSTs?

� A reduction would be insightful and practically useful

� Practice suggests MPSTs are more expressive than BSTs

� Challenge: Decompose global specs into binary pieces- preserving sequencing information- avoiding communication errors- retaining significance of standard models

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 58 / 71

Page 85: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

A Positive Answer

In a recent work (FORTE’16), we have presented a two-waycorrespondence between� Standard MPSTs with communication & composition, following

[Honda,Yoshida,Carbone’08; Deniélou & Yoshida’13]

� BSTs based on linear logic, following [Caires & Pfenning’10]:fidelity, safety, termination, (dead)lock-freedom by typing

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 59 / 71

Page 86: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Our Approach: Medium Processes

G

TbobTalice Tcarol Tdave

PbobPalice Pcarol Pdave

Projection

TypeChecking

Global type

Local types

Programs

� The medium process MJGK- Intermediate party in all exchanges in G- Captures sequencing information in G by decoupling interactions

� Local implementations need not know about MJGK

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 60 / 71

Page 87: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Our Approach: Medium Processes

G

TbobTalice Tcarol Tdave

PbobPalice Pcarol Pdave MJGK

Projection

Medium

� The medium process MJGK- Intermediate party in all exchanges in G- Captures sequencing information in G by decoupling interactions

� Local implementations need not know about MJGK

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 60 / 71

Page 88: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Our Approach: Medium Processes

G

TbobTalice Tcarol Tdave

PbobPalice Pcarol Pdave MJGK

Projection

Binary TypeChecking

Medium

� The medium process MJGK- Intermediate party in all exchanges in G- Captures sequencing information in G by decoupling interactions

� Local implementations need not know about MJGK

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 60 / 71

Page 89: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Medium Process of a Global Type

� MJp! q : hU i:G K = cp(u):cq(v):([u$v ] | MJGK)� MJp! q : fli : Gigi2I K = cp .

nli : cq /li ;MJGiK

oi2I

� MJp�q:flihUii:Gigi2I K =

cp .

nli : cp(u):cq /li ; cq(v):([u$v ] | MJGiK)

oi2I

� MJendK = 0

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 61 / 71

Page 90: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Medium Process of a Global Type

� MJp! q : hU i:G K = cp(u):cq(v):([u$v ] | MJGK)� MJp! q : fli : Gigi2I K = cp .

nli : cq /li ;MJGiK

oi2I

� MJp�q:flihUii:Gigi2I K =

cp .

nli : cp(u):cq /li ; cq(v):([u$v ] | MJGiK)

oi2I

� MJendK = 0

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 61 / 71

Page 91: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Different Worlds, Linked by Mediums

� MPSTs explained from different angles� Logic justifications for MPSTs notions:

- projection, type well-formedness- semantics of global types- behavioral equivalences (global swapping)

� Connects standard MPSTs to processimplementations

� Supports name passing, delegation,composition, infinite behavior/sharing

� Techniques for BSTs applied to MPSTs- deadlock freedom- typed behavioral equivalences- parametric polymorphism

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 62 / 71

Page 92: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Outline

Context

Type Systems for Concurrency

Binary Session Types

Multiparty Session Types

The Curry-Howard Isomorphism

Session Types and Linear LogicTyping Rules and Main PropertiesMultiparty Session Types Into Binary Sessions

Closing Remarks

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 63 / 71

Page 93: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Taking Stock (2/2)

A concurrent interpretation of linear logic that

� Clarifies the logical foundations of binary session types, in thespirit of the Curry-Howard isomorphism

� Identifies a class of �-calculus processes which enjoy fidelity,safety, and progress

� Offers a canonical perspective also for multiparty session types

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 64 / 71

Page 94: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Further Topics

Research on session types has long addressed several topics notmentioned here, including:

� Integration into programming languages (object-oriented,functional, and imperative)

� Connections with automata theory

� Synchronous / asynchronous communication disciplines

� Security properties (secure information flow, access control)

� Different forms of liveness properties (progress,deadlock-freedom, and lock-freedom)

� Connections with models of exceptions, reversibility, run-timemonitoring and adaptation

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 65 / 71

Page 95: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Session Types for Runtime Verification

� The original (and most studied) use of session types is as a staticverification technique for message-passing programs

� Problem: many components cannot be type-checked.� Session types can be also used to enforce runtime verification.� Idea: Use each local type as a monitor to ensure that the (local)

protocol is correctly followed, and to react in case of problems.

G

TbobTalice Tcarol Tdave

PbobPalice Pcarol Pdave

Projection

Static TypeChecking

Global type

Local types

Programs

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 66 / 71

Page 96: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Session Types for Runtime Verification

� The original (and most studied) use of session types is as a staticverification technique for message-passing programs

� Problem: many components cannot be type-checked.� Session types can be also used to enforce runtime verification.� Idea: Use each local type as a monitor to ensure that the (local)

protocol is correctly followed, and to react in case of problems.

G

TbobTalice Tcarol Tdave

PbobPalice Pcarol Pdave

Projection

RuntimeChecking

Global type

Programs

Local typesMonitors

(See works by Ancona et al. on dynamic protocol checking for MAS.)Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 66 / 71

Page 97: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

A Pressing Research Challenge

� Many different frameworks of behavioral type systems exist� Their precision and features vary ostensibly� There are as many notions of correctness as there are behavioral

type systems!

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 67 / 71

Page 98: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Addressing The Challenge

A recently awarded research grant (NWO VIDI):� Goal: A unified theory of correctness for message-passing

concurrency� Approach: Use the Curry-Howard correspondence for

Concurrency as objective yardstick in (formal) comparisons,given as results of relative expressiveness

� Initial results promising!� Impact: Interoperable tools for communicating programs

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 68 / 71

Page 99: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Essential References

� Kohei Honda, Vasco Thudichum Vasconcelos, Makoto Kubo:Language Primitives and Type Discipline for StructuredCommunication-Based Programming. ESOP 1998.

� Kohei Honda, Nobuko Yoshida, Marco Carbone:Multiparty asynchronous session types. POPL 2008.Also: Journal of the ACM, Volume 63(1): 9 (2016)

� Mario Coppo, Mariangiola Dezani-Ciancaglini, Luca Padovani,Nobuko Yoshida:A Gentle Introduction to Multiparty Asynchronous SessionTypes. SFM 2015.

� Luís Caires, Frank Pfenning, Bernardo Toninho:Linear logic propositions as session types.Math. Structures in Comp. Science 26(3): 367-423 (2016)(Extended version of a CONCUR 2010 paper.)

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 69 / 71

Page 100: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Further (Recent) References

� Hans Hüttel et al:Foundations of Session Types and Behavioural Contracts.ACM Comput. Surv. 49(1): 3 (2016)

� Davide Ancona et al:Behavioral Types in Programming Languages. Foundationsand Trends in Programming Languages 3(2-3): 95-230 (2016)

� Luís Caires and Jorge A. Pérez:Multiparty Session Types Within a Canonical Binary Theory,and Beyond. FORTE 2016.

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 70 / 71

Page 101: Type-based Communication Correctness in Multi …...Type-based Communication Correctness in Multi-agent Systems Part II: Type Systems for Concurrency and Logical Foundations Jorge

Type-based Communication Correctness inMulti-agent Systems

Part II: Type Systems for Concurrency and Logical Foundations

Jorge A. Pérez

Bernoulli Institute for Mathematics, Computer Science, and AIUniversity of Groningen, The Netherlands

www.jperez.nl

20th European Agent Systems Summer School (EASSS 2018)

Jorge A. Pérez (Univ. of Groningen) Types for Communication Correctness in Multi-agent Systems (Part II) 71 / 71