behavioral types and logical frameworks an introduction

54
Behavioral Types and Logical Frameworks An Introduction Carsten Sch¨ urmann IT University of Copenhagen [email protected] October 7, 2016 October 7, 2016 1 / 43

Upload: others

Post on 26-Apr-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Behavioral Types and Logical Frameworks An Introduction

Behavioral Types and Logical Frameworks

An Introduction

Carsten SchurmannIT University of Copenhagen

[email protected]

October 7, 2016

October 7, 2016 1 / 43

Page 2: Behavioral Types and Logical Frameworks An Introduction

Motivation

BuzzwordsI Concurrency

I Linear Logic

I Delegation

I Services

I Security

October 7, 2016 2 / 43

Page 3: Behavioral Types and Logical Frameworks An Introduction

Motivating Example

On a laptop not far from here ...You want to buy a book form and online store, but only if theprice is right.

Observations:

I More than one agent involved

I It is difficult to capture the invariant of such a system

I The “type” needs to capture the protocol of howmessages are exchanged.

October 7, 2016 3 / 43

Page 4: Behavioral Types and Logical Frameworks An Introduction

Motivating Example

On a laptop not far from here ...You want to buy a book form and online store, but only if theprice is right.

Observations:

I More than one agent involved

I It is difficult to capture the invariant of such a system

I The “type” needs to capture the protocol of howmessages are exchanged.

October 7, 2016 3 / 43

Page 5: Behavioral Types and Logical Frameworks An Introduction

Buyer

B

Seller

S

Select book

title

Lookup price

price

Sorry

msc No!

October 7, 2016 4 / 43

Page 6: Behavioral Types and Logical Frameworks An Introduction

Buyer

B

Seller

S

Select book

title

Lookup price

price

Choose address

address

msc Yes!

October 7, 2016 5 / 43

Page 7: Behavioral Types and Logical Frameworks An Introduction

ActivitiesI BETTY Cost Action

I Session at POPL 2016

I Programming Language DesignI SILLI Jolie

IngredientsI Concurrency Theory

[Caires, Carbone, Gay, Honda, Yoshida]

I Logic [Pfenning, CS, Toninho, Wadler]

I Programming Languages [Pfenning, Montesi, Toninho]

October 7, 2016 6 / 43

Page 8: Behavioral Types and Logical Frameworks An Introduction

Functional Programming Semantics?

Observation 1The protocol can be implemented in a functional language

fun lookup "Harry_Potter" = 45

fun buyerNo S =

S (fn S’ => fn price => S’ (NONE))

"Harry_Potter"

and buyerYes S =

S (fn S’ => fn price => S’ (SOME "Berlin"))

"Harry_Potter"

and seller B =

fn title => B (fn NONE => ()

| SOME address => ()) (lookup title)

October 7, 2016 7 / 43

Page 9: Behavioral Types and Logical Frameworks An Introduction

Logical FrameworksThe program satisfies the following types:

type B = (((’a option -> unit) -> int -> ’b)

-> string -> ’d) -> ’d

type S = ((’a option -> unit) -> int -> ’b)

-> string -> ’b

Observation 2I Judgments-as-types?

I Adequacy?

I Every message passing increases the order of the type

I Subtypes is duplicated multiple times

I Not even dependent types help, I suspect

I Conclusion: This is unwieldy

October 7, 2016 8 / 43

Page 10: Behavioral Types and Logical Frameworks An Introduction

Alternative: Substructural Logical Frameworks

“25 + 5 = 3× 10”

SSOS [Cervesato et al. ’02]SSOS [Pfenning, Simmons ’13]Celf [Schack-Nielsen, CS’11]

R1 : q ( {d ⊗ d ⊗ n}.R2 : n ( n ( {d}.

Observation 3I Multi-formula premisses

I Multi-formula conclusions

I Multi-set rewriting

October 7, 2016 9 / 43

Page 11: Behavioral Types and Logical Frameworks An Introduction

Alternative: Substructural Logical Frameworks

“25 + 5 = 3× 10”

SSOS [Cervesato et al. ’02]SSOS [Pfenning, Simmons ’13]Celf [Schack-Nielsen, CS’11]

R1 : q ( {d ⊗ d ⊗ n}.R2 : n ( n ( {d}.

Observation 3I Multi-formula premisses

I Multi-formula conclusions

I Multi-set rewriting

October 7, 2016 9 / 43

Page 12: Behavioral Types and Logical Frameworks An Introduction

Alternative: Substructural Logical Frameworks

“25 + 5 = 3× 10”

SSOS [Cervesato et al. ’02]SSOS [Pfenning, Simmons ’13]Celf [Schack-Nielsen, CS’11]

R1 : q ( {d ⊗ d ⊗ n}.R2 : n ( n ( {d}.

Observation 3I Multi-formula premisses

I Multi-formula conclusions

I Multi-set rewriting

October 7, 2016 9 / 43

Page 13: Behavioral Types and Logical Frameworks An Introduction

Alternative: Substructural Logical Frameworks

“25 + 5 = 3× 10”

SSOS [Cervesato et al. ’02]SSOS [Pfenning, Simmons ’13]Celf [Schack-Nielsen, CS’11]

R1 : q ( {d ⊗ d ⊗ n}.R2 : n ( n ( {d}.

Observation 3I Multi-formula premisses

I Multi-formula conclusions

I Multi-set rewriting

October 7, 2016 9 / 43

Page 14: Behavioral Types and Logical Frameworks An Introduction

Alternative: Substructural Logical Frameworks

“25 + 5 = 3× 10”

SSOS [Cervesato et al. ’02]SSOS [Pfenning, Simmons ’13]Celf [Schack-Nielsen, CS’11]

R1 : q ( {d ⊗ d ⊗ n}.R2 : n ( n ( {d}.

Observation 3I Multi-formula premisses

I Multi-formula conclusions

I Multi-set rewriting

October 7, 2016 9 / 43

Page 15: Behavioral Types and Logical Frameworks An Introduction

The Concurrent World is Substructural

Substructural Logical FrameworkDependently typed language for multi-set rewriting rules

⊗ Connective to group facts

( Connective to express rewrite rules

∃ To create new evidence of facts

Π To quantify over evidence of facts

Substructural Operational SemanticsMulti-set rewriting semantics

I Forward-Chaining Search

I Runs until quiescence

I All truth is ephemeral

October 7, 2016 10 / 43

Page 16: Behavioral Types and Logical Frameworks An Introduction

Motivation

The Central Questions of this TalkWhat happens if we shift from a process algebra view ofconcurrency/session types to a purely logical view?And how to do this shift?

October 7, 2016 11 / 43

Page 17: Behavioral Types and Logical Frameworks An Introduction

1 Linear Logic

2 Session Types -as- Judgments

3 Adding Choice

4 Substructual Logical Framework CLF

5 Programming with Session Types

6 Demo

7 Conclusion and Future Work

October 7, 2016 12 / 43

Page 18: Behavioral Types and Logical Frameworks An Introduction

Linear Logic

Linear Logic October 7, 2016 13 / 43

Page 19: Behavioral Types and Logical Frameworks An Introduction

Judgmental reconstruction

Intuitionistic Logic

Logic of truth.

(Logic of facts)

.

Linear Logic

Logic of ephemeral resources.

(Logic of food)

.

∆ ` A

Important Properties:

I Cut-Elimination guarantees proof normalization

I Focusing, limits proofs but not provability

I Normal forms exist

Linear Logic October 7, 2016 14 / 43

Page 20: Behavioral Types and Logical Frameworks An Introduction

Judgmental reconstruction

Intuitionistic Logic

Logic of truth. (Logic of facts).

Linear Logic

Logic of ephemeral resources. (Logic of food).

∆ ` A

Important Properties:

I Cut-Elimination guarantees proof normalization

I Focusing, limits proofs but not provability

I Normal forms exist

Linear Logic October 7, 2016 14 / 43

Page 21: Behavioral Types and Logical Frameworks An Introduction

Judgmental reconstruction

Intuitionistic Logic

Logic of truth. (Logic of facts).

Linear Logic

Logic of ephemeral resources. (Logic of food).

∆ ` A

Important Properties:

I Cut-Elimination guarantees proof normalization

I Focusing, limits proofs but not provability

I Normal forms exist

Linear Logic October 7, 2016 14 / 43

Page 22: Behavioral Types and Logical Frameworks An Introduction

Linear Logic – The Rules

· ` 11R

∆ ` C∆, 1 ` C

1L

∆1 ` A ∆2 ` B∆1,∆2 ` A⊗ B

⊗R∆,A,B ` C

∆,A⊗ B ` C⊗L

∆,A ` B∆ ` A( B

(R∆1 ` A ∆2,B ` C∆1,∆2,A( B ` C

(L

A ` Ainit

∆1 ` A ∆2,A ` C∆1,∆2 ` C

cut

Linear Logic October 7, 2016 15 / 43

Page 23: Behavioral Types and Logical Frameworks An Introduction

Linear Logic — Theorems

Goes back to ... [Girard ’89]

Theorem (Admissibility of init)

For any formula A: A ` A.

Theorem (Admissibility of cut)

If ∆1 ` A and ∆2,A ` C then ∆1,∆2 ` C .

Linear Logic October 7, 2016 16 / 43

Page 24: Behavioral Types and Logical Frameworks An Introduction

Session Types -as- Judgments

Session Types -as- Judgments October 7, 2016 17 / 43

Page 25: Behavioral Types and Logical Frameworks An Introduction

Linear Logic - Primitive Types

I Making Linear Logic practical

I τ ranges over strings, integers, ...

Γ `

M :

τ inhabited Γ; ∆ `

T :

BΓ; ∆ `

send 〈M〉;T :

τ ∧ B∧R

Γ,

x :

τ ; ∆,

u :

B `

T :

C

Γ; ∆,

u :

τ ∧ B `

receive (x) [u];T :

C∧L

Γ,

x :

τ ; ∆ `

T :

B

Γ; ∆ `

receive (x);T :

τ ⊃ B⊃ R

Γ `

M :

τ inhabited Γ; ∆,

u :

B `

T :

C

Γ; ∆,

u :

τ ⊃ B `

send 〈M〉 [u];T :

C⊃ L

Session Types -as- Judgments October 7, 2016 18 / 43

Page 26: Behavioral Types and Logical Frameworks An Introduction

Linear Logic - Primitive Types

I Making Linear Logic practical

I τ ranges over strings, integers, ...

Γ ` M : τ inhabited Γ; ∆ ` T : BΓ; ∆ ` send 〈M〉;T : τ ∧ B

∧R

Γ, x : τ ; ∆, u : B ` T : C

Γ; ∆, u : τ ∧ B ` receive (x) [u];T : C∧L

Γ, x : τ ; ∆ ` T : B

Γ; ∆ ` receive (x);T : τ ⊃ B⊃ R

Γ ` M : τ inhabited Γ; ∆, u : B ` T : C

Γ; ∆, u : τ ⊃ B ` send 〈M〉 [u];T : C⊃ L

Session Types -as- Judgments October 7, 2016 18 / 43

Page 27: Behavioral Types and Logical Frameworks An Introduction

Encoding in a Substructural Logical Framework

[Pfenning and Griffith ’15]Terms T

1R end

1L wait [u];T

∧R send 〈M〉;T∧L receive (x) [u];T

⊃R receive (x);T

⊃L send 〈M〉 [u];T

⊗R, ⊗L ...

(R,(L ...

Alternative: Use π-calculus to describe these processes.[Caires & Pfenning ’10, Wadler ’12]

Related: Classical version of linear logic [Wadler’12]

Session Types -as- Judgments October 7, 2016 19 / 43

Page 28: Behavioral Types and Logical Frameworks An Introduction

Session Typing our Buyer Seller Example

B` string ∧ (nat ⊃ 1)

S(string ∧ (nat ⊃ 1)) ( 1 ` 1

CommentsI B aka buyer

I S aka seller

I Denote the derivation of the judgment

Session Types -as- Judgments October 7, 2016 20 / 43

Page 29: Behavioral Types and Logical Frameworks An Introduction

Buyer and Seller Example

B` string ∧ (nat ⊃ 1)

Su:(string ∧ (nat ⊃ 1)) ( 1 ` 1

Buyer B = send 〈”Harry potter”〉;receive (price);end

Seller S [u] = receive (title) [u];send 〈$45〉 [u];wait [u];end

System C = cut B (S [u]).

Session Types -as- Judgments October 7, 2016 21 / 43

Page 30: Behavioral Types and Logical Frameworks An Introduction

Adding Choice

Adding Choice October 7, 2016 22 / 43

Page 31: Behavioral Types and Logical Frameworks An Introduction

Linear Logic – The Additives

∆ `

T1 :

A1 ∆ `

T2 :

A2

∆ `

offer (left⇒ T1, right⇒ T2) :

A1&A2&R

∆,

u :

A1 `

T :

C

∆,

u :

A1&A2 `

left [u];T :

C&L1

∆,

u :

A2 `

T :

C

∆,

u :

A1&A2 `

right [u];T :

C&L2

∆ `

T :

A1

∆ `

left;T :

A1 ⊕ A2⊕R1

∆ `

T :

A2

∆ `

right;T :

A1 ⊕ A2⊕R2

∆,

v :

A1 `

T1 :

C ∆,

w :

A2 `

T2 :

C

∆,

u :

A1 ⊕ A2 `

offer [u] (left⇒ [v ];T1, right⇒ [w ];T2) :

C⊕L

Adding Choice October 7, 2016 23 / 43

Page 32: Behavioral Types and Logical Frameworks An Introduction

Linear Logic – The Additives

∆ ` T1 : A1 ∆ ` T2 : A2

∆ ` offer (left⇒ T1, right⇒ T2) : A1&A2&R

∆, u : A1 ` T : C

∆, u : A1&A2 ` left [u];T : C&L1

∆, u : A2 ` T : C

∆, u : A1&A2 ` right [u];T : C&L2

∆ ` T : A1

∆ ` left;T : A1 ⊕ A2⊕R1

∆ ` T : A2

∆ ` right;T : A1 ⊕ A2⊕R2

∆, v : A1 ` T1 : C ∆,w : A2 ` T2 : C

∆, u : A1 ⊕ A2 ` offer [u] (left⇒ [v ];T1, right⇒ [w ];T2) : C⊕L

Adding Choice October 7, 2016 23 / 43

Page 33: Behavioral Types and Logical Frameworks An Introduction

Buyer

B

Seller

S

Select book

title

Lookup price

price

Choose address

address

msc Yes!

B = send 〈”Harry Potter”〉;receive (price);left;send (”Berlin”);end

S = receive (title) [u];send 〈$45〉 [u];offer[u](left⇒

receive (address) [u];wait [u];end

right⇒wait [u];end)

Adding Choice October 7, 2016 24 / 43

Page 34: Behavioral Types and Logical Frameworks An Introduction

Substructual Logical Framework CLF

Substructual Logical Framework CLF October 7, 2016 25 / 43

Page 35: Behavioral Types and Logical Frameworks An Introduction

Substructural Logics

Lambek Logic

Linear Logic

Affine Logic Relevant Logic

Intuitionistic Logic

Substructual Logical Framework CLF October 7, 2016 26 / 43

Page 36: Behavioral Types and Logical Frameworks An Introduction

Substructural Logical Frameworks

OLF

LLF/CLF

LF

Substructual Logical Framework CLF October 7, 2016 27 / 43

Page 37: Behavioral Types and Logical Frameworks An Introduction

Substructural Logics

A1, . . . ,Am

B1, . . . ,Bnname

I In LLF order matters [Girard ’89, Cervesato et al ’96]

name : A1 ⊗ · · · ⊗ Am ( B1 ⊗ · · · ⊗ Bn

I In CLF order does not matter [Cervesato et al ’02]

name : A1 ⊗ · · · ⊗ Am ( {B1 ⊗ · · · ⊗ Bn}

Substructual Logical Framework CLF October 7, 2016 28 / 43

Page 38: Behavioral Types and Logical Frameworks An Introduction

Execution as Proof Search

I Proof searchA...B

corresponds to inhabitation of types.

A ( {B}

I All terms are equal modulo interleavings

I No leftovers in the multi-set allowed

I Lollimon [Lopez et al. ’05]

I Focusing [Andreoli ’92, Chaudhuri ’06, Miller ’05]

Substructual Logical Framework CLF October 7, 2016 29 / 43

Page 39: Behavioral Types and Logical Frameworks An Introduction

Logical Framework CLF

I Focused version of Linear Logic [Andreoli ’92]

I Conservative Extension of LF[Honsell, Harper, Plotkin ’93]

I Types:

A ::= P | S ( A | Πx : S . A | A1 & A2 | {S}P ::= a | P N

S ::= 1 | S1 ⊗ S2 |!A | @A | A | ∃x : S1. S2

I Kinds:K ::= type | Πx : A. K

We write A→ B for Πx : A. B if x does not occur in B .

Substructual Logical Framework CLF October 7, 2016 30 / 43

Page 40: Behavioral Types and Logical Frameworks An Introduction

CLF — TermsTerm syntax:

N ::= λp. N | 〈N1,N2〉 | 〈〉 | {E} |c | x | N1 N2 | π1 N | π2 N Objects

E ::= let {p} = N in E | M Expressions

M ::= M1 ⊗M2 | 1 | N |!N | @N | [N ,M] Monadic objects

p ::= p1 ⊗ p2 | 1 | x |!x | @x | [x , p] Patterns

JudgmentLet Γ unrestricted, Φ affine and ∆ linear context.

Γ; Φ; ∆ ` N : A

Equational Theory: α, β, η + let-floating

Substructual Logical Framework CLF October 7, 2016 31 / 43

Page 41: Behavioral Types and Logical Frameworks An Introduction

Judgments-as-types

pP

A1, . . . ,An ` C q

=

·; u1 : hyp pA1q, . . . un : hyp pAnq ` pMq : conc pAq

Logical Framework Representationo : type. (Formulas)

conc : o -> type (Conclusions)

hyp : o -> type ( Hypotheses)

Substructual Logical Framework CLF October 7, 2016 32 / 43

Page 42: Behavioral Types and Logical Frameworks An Introduction

Example

buyer : conc (and string (imp nat one))

= send "Harry Potter" (

receive λ!price.end).

seller : hyp (and string (imp nat one)) -o conc one

= λu. receive (λ!title. λv.send $45 (λw.wait end w) v) u.

Substructual Logical Framework CLF October 7, 2016 33 / 43

Page 43: Behavioral Types and Logical Frameworks An Introduction

Programming with Session Types

Programming with Session Types October 7, 2016 34 / 43

Page 44: Behavioral Types and Logical Frameworks An Introduction

Cut-Elimination

P∆,A ` B

∆ ` A( B(R

Q1

∆1 ` AQ2

∆2,B ` C

∆1,∆2,A( B ` C(L

∆,∆1,∆2 ` Ccut

reduces to

Q1

∆1 ` AP

∆,A ` B

∆,∆1 ` Bcut

Q2

∆2,B ` C

∆,∆1,∆2 ` Ccut

Programming with Session Types October 7, 2016 35 / 43

Page 45: Behavioral Types and Logical Frameworks An Introduction

Cut-Elimination

P∆,A ` B

∆ ` A( B(R

Q1

∆1 ` AQ2

∆2,B ` C

∆1,∆2,A( B ` C(L

∆,∆1,∆2 ` Ccut

reduces to

Q1

∆1 ` AP

∆,A ` B

∆,∆1 ` Bcut

Q2

∆2,B ` C

∆,∆1,∆2 ` Ccut

Programming with Session Types October 7, 2016 35 / 43

Page 46: Behavioral Types and Logical Frameworks An Introduction

Cut-Elimination

P∆,A ` B

∆ ` A( B(R

Q1

∆1 ` AQ2

∆2,B ` C

∆1,∆2,A( B ` C(L

∆,∆1,∆2 ` Ccut

reduces to

Q1

∆1 ` AP

∆,A ` B

∆,∆1 ` Bcut

Q2

∆2,B ` C

∆,∆1,∆2 ` Ccut

Programming with Session Types October 7, 2016 35 / 43

Page 47: Behavioral Types and Logical Frameworks An Introduction

Multi-Set Reduction

P∆,A ` B ,

Q1

∆1 ` A ,Q2

∆2,B ` C

=⇒

...

∗=⇒ Q· ` 1

Programming with Session Types October 7, 2016 36 / 43

Page 48: Behavioral Types and Logical Frameworks An Introduction

Processes: always on, always connected!

Q1

∆1 ` A ,P

∆, u : A ` B

=⇒

R∆1,∆ ` B

Representation in CLFproc : conc A -> hyp C -> type.

Related: Modality •A [Carbone, Montesi, CS ’14]

Programming with Session Types October 7, 2016 37 / 43

Page 49: Behavioral Types and Logical Frameworks An Introduction

Example

Cutting buyer and seller∆ = u: hyp one,

p: proc (cut buyer λv. seller v) u,

After resolving the cut∆′ = u : hyp one,

a : hyp (and string (imp nat one)),

p1: proc buyer a,

p2: proc (seller a) u

red/cut : proc (cut P (λv. Q v)) C ({ ∃a. proc P a ⊗

proc (Q a) C

}.

Programming with Session Types October 7, 2016 38 / 43

Page 50: Behavioral Types and Logical Frameworks An Introduction

Implementing Admissibility of Cut

red/lolli : proc (lolliR (λu. P u)) C (proc (lolliL Q1 (λv. Q2 v) C) C’’ ({ ∃a. proc Q1 a ⊗∃b. proc (P a) b ⊗proc (Q2 b) C’’}.

red/one : proc end C (proc (wait T C) C’’ ({ proc T C’’}.

red/and : proc (send M P) C (proc (receive (λ!x. λu. Q !x u) C) C’’ ({ ∃a. proc P a ⊗

proc (Q !M a) C’’}.

Programming with Session Types October 7, 2016 39 / 43

Page 51: Behavioral Types and Logical Frameworks An Introduction

Demo

Demo October 7, 2016 40 / 43

Page 52: Behavioral Types and Logical Frameworks An Introduction

Session types -as- Judgments -as- Types

Theorem (Adequacy)

The representation in the Logical Framework is adequate,meaning that there exists a bijection between “processes” andobjects.

Theorem (Reduction)

A “process” reduces to normal form iff the forward-chainingsemantics reduces the encoded processes. The normal formscorrespond.

Theorem (Concurrency)

Concurrent interleavings are truthfully represented in theframework.

Demo October 7, 2016 41 / 43

Page 53: Behavioral Types and Logical Frameworks An Introduction

Conclusion and Future Work

Conclusion and Future Work October 7, 2016 42 / 43

Page 54: Behavioral Types and Logical Frameworks An Introduction

Conclusion and Future Work

I The logical framework community has developed toolsuseful for understanding session typing.

I Equational theory of the logical framework hidescommutative cuts, when programming.

I We are currently working on extensions to multi-partysession types. Preliminary results, see our papers inConcur ’15 and ’16.

Conclusion and Future Work October 7, 2016 43 / 43