Towards Concurrent Type Theory

Size: px
Start display at page:

Download "Towards Concurrent Type Theory"

Transcription

1 Towards Concurrent Type Theory Luís Caires 1, Frank Pfenning 2, Bernardo Toninho 1,2 1 Universidade Nova de Lisboa 2 Carnegie Mellon University Workshop on Types in Language Design and Implementation (TLDI) January 28, / 1

2 Proofs and programs In intuitionistic logic: Propositions are simple types Proofs are functional programs Proof reduction is computation 2 / 1

3 Proofs and programs In intuitionistic logic: Propositions are simple types Proofs are functional programs Proof reduction is computation Curry (1934) Axiomatic proofs are combinators Proof reduction is combinatory reduction Howard (1969) Natural deductions are λ-terms Proof reduction is functional computation 2 / 1

4 Proofs and programs In intuitionistic logic: Propositions are simple types Proofs are functional programs Proof reduction is computation Curry (1934) Axiomatic proofs are combinators Proof reduction is combinatory reduction Howard (1969) Natural deductions are λ-terms Proof reduction is functional computation These are isomorphisms! 2 / 1

5 Other instances Capture computational phenomena logically Modal logic (JS4) and staged computation (Davies & Pf. 1996) Temporal logic and partial evaluation (Davies 1996) Lax logic and effects (Benton et al. 1998) Modal logic (JT) and proof irrelevance (Pf. 2008)... (but not as easy as it looks) 3 / 1

6 Other instances Capture computational phenomena logically Modal logic (JS4) and staged computation (Davies & Pf. 1996) Temporal logic and partial evaluation (Davies 1996) Lax logic and effects (Benton et al. 1998) Modal logic (JT) and proof irrelevance (Pf. 2008)... (but not as easy as it looks) This talk: Linear propositions as session types Sequent proofs as π-calculus processes Cut reduction as communication 3 / 1

7 Type theory Type theory (Martin-Löf 1980) Generalizes intuitionistic logic Types depend on programs Full integration of reasoning and programming 4 / 1

8 Type theory Type theory (Martin-Löf 1980) Generalizes intuitionistic logic Types depend on programs Full integration of reasoning and programming Co-design of language and reasoning principles! 4 / 1

9 Type theory Type theory (Martin-Löf 1980) Generalizes intuitionistic logic Types depend on programs Full integration of reasoning and programming Co-design of language and reasoning principles! This talk: Session types depend on functional values Communicate channels and values (= proofs) 4 / 1

10 Type theory Type theory (Martin-Löf 1980) Generalizes intuitionistic logic Types depend on programs Full integration of reasoning and programming Co-design of language and reasoning principles! This talk: Session types depend on functional values Communicate channels and values (= proofs) Not yet: Types do not depend on channels or processes Processes are not communicated 4 / 1

11 Outline 1 Session types for π-calculus 2 Dependent session types 3 Proof irrelevance 4 Some results 5 Conclusion 5 / 1

12 Judgment forms Judgment P :: x : A Process P offers service A along channel x Linear sequent A 1,..., A }{{} n A Cut as composition A, A C, C Identity as forwarding cut A A A id A 6 / 1

13 Judgment forms Judgment P :: x : A Process P offers service A along channel x Linear sequent P uses x i :A i and offers x:a. Cut as composition x 1 :A 1,..., x n :A }{{} n P :: x : A A Identity as forwarding, A C, C cut A A A id A 6 / 1

14 Judgment forms Judgment P :: x : A Process P offers service A along channel x Linear sequent P uses x i :A i and offers x:a. Cut as composition x 1 :A 1,..., x n :A }{{} n P :: x : A x : A, x:a z : C, z : C cut A Identity as forwarding A A id A 6 / 1

15 Judgment forms Judgment P :: x : A Process P offers service A along channel x Linear sequent P uses x i :A i and offers x:a. Cut as composition P :: x : A x 1 :A 1,..., x n :A }{{} n P :: x : A, x:a Q :: z : C, (νx)(p Q) :: z : C cut A Identity as forwarding A A id A 6 / 1

16 Judgment forms Judgment P :: x : A Process P offers service A along channel x Linear sequent x 1 :A 1,..., x n :A }{{} n P :: x : A P uses x i :A i and offers x:a. Cut as composition P :: x : A Identity as forwarding, x:a Q :: z : C, (νx)(p Q) :: z : C cut A x:a z : A id A 6 / 1

17 Judgment forms Judgment P :: x : A Process P offers service A along channel x Linear sequent x 1 :A 1,..., x n :A }{{} n P :: x : A P uses x i :A i and offers x:a. Cut as composition P :: x : A Identity as forwarding, x:a Q :: z : C, (νx)(p Q) :: z : C cut A x:a [x z] :: z : A id A 6 / 1

18 Offering input (A B) P :: x : A B P inputs an A along x and then behaves as B Right rule: offer of service, A B A B R Left rule: matching use of service A, B C,, A B C L 7 / 1

19 Offering input (A B) P :: x : A B P inputs an A along x and then behaves as B Right rule: offer of service, A B A B R Left rule: matching use of service A, B C,, A B C L 7 / 1

20 Offering input (A B) P :: x : A B P inputs an A along x and then behaves as B Right rule: offer of service, y:a x : B x : A B R Left rule: matching use of service A, B C,, A B C L 7 / 1

21 Offering input (A B) P :: x : A B P inputs an A along x and then behaves as B Right rule: offer of service, y:a P :: x : B x(y).p :: x : A B R Can reuse x, due to linearity! Left rule: matching use of service A, B C,, A B C L 7 / 1

22 Offering input (A B) P :: x : A B P inputs an A along x and then behaves as B Right rule: offer of service, y:a P :: x : B x(y).p :: x : A B R Can reuse x, due to linearity! Left rule: matching use of service A, B C,, A B C L 7 / 1

23 Offering input (A B) P :: x : A B P inputs an A along x and then behaves as B Right rule: offer of service, y:a P :: x : B x(y).p :: x : A B R Can reuse x, due to linearity! Left rule: matching use of service y : A, x:b z : C,, x:a B z : C L 7 / 1

24 Offering input (A B) P :: x : A B P inputs an A along x and then behaves as B Right rule: offer of service, y:a P :: x : B x(y).p :: x : A B R Can reuse x, due to linearity! Left rule: matching use of service P :: y : A, x:b Q :: z : C,, x:a B (νy)x y.(p Q) :: z : C L Can reuse x, due to linearity Channel y must be new (bound output) 7 / 1

25 Proof and process reduction Proof reduction, A B A B R 1 A 2, B C 1, 2, A B C 1 A, 1, 2 C, A B, 1 B cut A, 1, 2 C Corresponding process reduction 2, B C L cut A B cut B, 1, 2 (νx)(x(y).p 1 (νw)(x w.(p 2 Q))) :: z : C, 1, 2 (νx)((νw)(p 2 P 1 {w/y}) Q) :: z : C 8 / 1

26 Process reduction Corresponding process reduction (νx)(x(y).p 1 (νw)(x w.(p 2 Q))) (νx)((νw)(p 2 P 1 {w/y}) Q) Instance of (modulo structural congruence) (x(y).p x w.q) (P{w/y} Q) Synchronous π-calculus Typing modulo structural congruence 9 / 1

27 Preview Linear propositions as session types P :: x : A B P :: x : A B P :: x : 1 P :: x : A & B P :: x : A B P :: x :!A Input a y:a along x and behave as B Output new y:a along x and behave as B Terminate session on x Offer choice between A and B along x Offer either A or B along x Offer A persistently along x Sequent proofs as process expressions Proof reduction as process reduction 10 / 1

28 Offering output (A B) P :: x : A B P outputs a fresh y:a along x and then behaves as B Right rule: offer output A B, A B R Left rule: perform matching input, A, B C, A B C L 11 / 1

29 Offering output (A B) P :: x : A B P outputs a fresh y:a along x and then behaves as B Right rule: offer output A B, A B R Left rule: perform matching input, A, B C, A B C L 11 / 1

30 Offering output (A B) P :: x : A B P outputs a fresh y:a along x and then behaves as B Right rule: offer output y : A x : B, x : A B R Left rule: perform matching input, A, B C, A B C L 11 / 1

31 Offering output (A B) P :: x : A B P outputs a fresh y:a along x and then behaves as B Right rule: offer output P :: y : A Q :: x : B, (νy)x y.(p Q) :: x : A B R Left rule: perform matching input, A, B C, A B C L 11 / 1

32 Offering output (A B) P :: x : A B P outputs a fresh y:a along x and then behaves as B Right rule: offer output P :: y : A Q :: x : B, (νy)x y.(p Q) :: x : A B R Left rule: perform matching input, A, B C, A B C L 11 / 1

33 Offering output (A B) P :: x : A B P outputs a fresh y:a along x and then behaves as B Right rule: offer output P :: y : A Q :: x : B, (νy)x y.(p Q) :: x : A B R Left rule: perform matching input, y:a, x:b z : C, x:a B z : C L 11 / 1

34 Offering output (A B) P :: x : A B P outputs a fresh y:a along x and then behaves as B Right rule: offer output P :: y : A Q :: x : B, (νy)x y.(p Q) :: x : A B R Left rule: perform matching input, y:a, x:b P :: z : C, x:a B x(y).p :: z : C L 11 / 1

35 Offering output (A B) Proof reduction again corresponds to process reduction No new rules required Apparent asymmetry, but A B B A: x:a B x(y).(νw)z w.([x w] [y z]) :: z : B A 12 / 1

36 Termination (1) P :: x : 1 P terminates session on x Right rule: offer of termination (unit of ) Left rule: accept termination Reduction 1 1R C, 1 C 1L 13 / 1

37 Termination (1) P :: x : 1 P terminates session on x Right rule: offer of termination (unit of ) Left rule: accept termination Reduction 1 1R C, 1 C 1L 13 / 1

38 Termination (1) P :: x : 1 P terminates session on x Right rule: offer of termination (unit of ) Left rule: accept termination Reduction x : 1 1R C, 1 C 1L 13 / 1

39 Termination (1) P :: x : 1 P terminates session on x Right rule: offer of termination (unit of ) Left rule: accept termination Reduction x.0 :: x : 1 1R C, 1 C 1L 13 / 1

40 Termination (1) P :: x : 1 P terminates session on x Right rule: offer of termination (unit of ) Left rule: accept termination Reduction x.0 :: x : 1 1R C, 1 C 1L 13 / 1

41 Termination (1) P :: x : 1 P terminates session on x Right rule: offer of termination (unit of ) Left rule: accept termination Reduction x.0 :: x : 1 1R z : C, x:1 z : C 1L 13 / 1

42 Termination (1) P :: x : 1 P terminates session on x Right rule: offer of termination (unit of ) Left rule: accept termination Reduction x.0 :: x : 1 1R P :: z : C, x:1 x().p :: z : C 1L 13 / 1

43 Termination (1) P :: x : 1 P terminates session on x Right rule: offer of termination (unit of ) Left rule: accept termination x.0 :: x : 1 1R P :: z : C, x:1 x().p :: z : C 1L Reduction (x.0 x().p) P 13 / 1

44 Termination (1) This faithful process assignment models synchronous termination We can also model asynchronous termination Use a different process assignment (Caires & Pf. 2010) Contracting proofs to processes Some proof reductions are process identities 14 / 1

45 Example: PDF indexing Abstract away communicated values for now index 1 file (file 1) Shape of a server srv x(f ).(νy)x y.(p x.0) :: x : index 1 Shape of a client client (νpdf )x pdf.x(idx).x().q Composition of server and client srv :: x : index 1 x : index 1 client :: z : 1 (νx)(srv client) :: z : 1 cut 15 / 1

46 Taking stock I At this point we have Types A, B, C ::= A B input A B output 1 termination Processes P, Q ::= [x z] forwarding (P Q) parallel composition (νx)p name restriction x(y).p input (νy)x y.p bound output x().p (wait) x.0 (termination) 16 / 1

47 Offering external choice (A & B) P :: x : A & B P offers the choice between A and B along x Right rule: offering choice between A and B A B A & B &R Left rules: making a choice between A and B, A C, A & B C &L 1, B C, A & B C &L 2 17 / 1

48 Offering external choice (A & B) P :: x : A & B P offers the choice between A and B along x Right rule: offering choice between A and B A B A & B &R Left rules: making a choice between A and B, A C, A & B C &L 1, B C, A & B C &L 2 17 / 1

49 Offering external choice (A & B) P :: x : A & B P offers the choice between A and B along x Right rule: offering choice between A and B x : A x : B x : A & B &R Left rules: making a choice between A and B, A C, A & B C &L 1, B C, A & B C &L 2 17 / 1

50 Offering external choice (A & B) P :: x : A & B P offers the choice between A and B along x Right rule: offering choice between A and B P :: x : A Q :: x : B x.case(p, Q) :: x : A & B &R Left rules: making a choice between A and B, A C, A & B C &L 1, B C, A & B C &L 2 17 / 1

51 Offering external choice (A & B) P :: x : A & B P offers the choice between A and B along x Right rule: offering choice between A and B P :: x : A Q :: x : B x.case(p, Q) :: x : A & B &R Left rules: making a choice between A and B, A C, A & B C &L 1, B C, A & B C &L 2 17 / 1

52 Offering external choice (A & B) P :: x : A & B P offers the choice between A and B along x Right rule: offering choice between A and B P :: x : A Q :: x : B x.case(p, Q) :: x : A & B &R Left rules: making a choice between A and B, x:a z : C, x:a & B z : C &L 1, x:b z : C, x:a & B z : C &L 2 17 / 1

53 Offering external choice (A & B) P :: x : A & B P offers the choice between A and B along x Right rule: offering choice between A and B P :: x : A Q :: x : B x.case(p, Q) :: x : A & B &R Left rules: making a choice between A and B, x:a Q :: z : C, x:a & B x.inl; Q :: z : C &L 1, x:b Q :: z : C, x:a & B x.inr; Q :: z : C &L 2 17 / 1

54 Offering external choice (A & B) Need binary guarded choice construct New reductions (x.case(p, Q) x.inl; R) (P R) (x.case(p, Q) x.inr; R) (Q R) 18 / 1

55 Example: PDF compression Extend previous example Offer to index or compress the PDF server 1 (file (file 1)) & (file (file 1)) Different protocol: decision is made later server 2 file ((file & file) 1) In practice, should use labeled products & i {l i : A i } 19 / 1

56 Offering internal choice (A B) P :: x : A B P offers either A or B along x Offering either A or B: A A B R 1 B A B R 2 Accounting for either A or B:, A C, B C, A B C L No new reductions 20 / 1

57 Offering internal choice (A B) P :: x : A B P offers either A or B along x Offering either A or B: A A B R 1 B A B R 2 Accounting for either A or B:, A C, B C, A B C L No new reductions 20 / 1

58 Offering internal choice (A B) P :: x : A B P offers either A or B along x Offering either A or B: x : A x : A B R 1 x : B x : A B R 2 Accounting for either A or B:, A C, B C, A B C L No new reductions 20 / 1

59 Offering internal choice (A B) P :: x : A B P offers either A or B along x Offering either A or B: P :: x : A x.inl; P :: x : A B R 1 P :: x : B x.inr; P :: x : A B R 2 Accounting for either A or B:, A C, B C, A B C L No new reductions 20 / 1

60 Offering internal choice (A B) P :: x : A B P offers either A or B along x Offering either A or B: P :: x : A x.inl; P :: x : A B R 1 P :: x : B x.inr; P :: x : A B R 2 Accounting for either A or B:, A C, B C, A B C L No new reductions 20 / 1

61 Offering internal choice (A B) P :: x : A B P offers either A or B along x Offering either A or B: P :: x : A x.inl; P :: x : A B R 1 P :: x : B x.inr; P :: x : A B R 2 Accounting for either A or B:, x:a z : C, x:b z : C, x:a B z : C L No new reductions 20 / 1

62 Offering internal choice (A B) P :: x : A B P offers either A or B along x Offering either A or B: P :: x : A x.inl; P :: x : A B R 1 P :: x : B x.inr; P :: x : A B R 2 Accounting for either A or B:, x:a P :: z : C, x:b Q :: z : C, x:a B x.case(p, Q) :: z : C L No new reductions 20 / 1

63 Example: PDF indexing Offer to index PDF, or indicate failure index 2 (file ((file 1) 1)) In practice, should use labeled sums i {l i : A i } 21 / 1

64 Persistence To have persistent services, we generalize the judgment form (Hodas & Miller 1991; Andreoli 1992; Barber 1996) B 1,..., B k }{{} Γ persistently true ; A 1,..., A n }{{} linearly true C Label with shared channels u and linear channels x u 1 :B 1,..., u k :B k }{{} Γ shared ; x 1 :A 1,..., x n :A }{{} n P :: z : C linear 22 / 1

65 Structural rules cut! as composition with replicated input Γ ; A Γ, A ; C Γ ; C cut! A No linear channels in P except x To use u we have to send it a new channel y for x Γ, A ;, A C Γ, A ; C copy 23 / 1

66 Structural rules cut! as composition with replicated input Γ ; A Γ, A ; C Γ ; C cut! A No linear channels in P except x To use u we have to send it a new channel y for x Γ, A ;, A C Γ, A ; C copy 23 / 1

67 Structural rules cut! as composition with replicated input Γ ; x : A Γ, u:a ; z : C Γ ; z : C cut! A No linear channels in P except x To use u we have to send it a new channel y for x Γ, A ;, A C Γ, A ; C copy 23 / 1

68 Structural rules cut! as composition with replicated input Γ ; P :: x : A Γ, u:a ; Q :: z : C Γ ; (νu)(!u(x).p Q) :: z : C cut! A No linear channels in P except x To use u we have to send it a new channel y for x Γ, A ;, A C Γ, A ; C copy 23 / 1

69 Structural rules cut! as composition with replicated input Γ ; P :: x : A Γ, u:a ; Q :: z : C Γ ; (νu)(!u(x).p Q) :: z : C cut! A No linear channels in P except x To use u we have to send it a new channel y for x Γ, A ;, A C Γ, A ; C copy 23 / 1

70 Structural rules cut! as composition with replicated input Γ ; P :: x : A Γ, u:a ; Q :: z : C Γ ; (νu)(!u(x).p Q) :: z : C cut! A No linear channels in P except x To use u we have to send it a new channel y for x Γ, u:a ;, y:a z : C Γ, u:a ; z : C copy 23 / 1

71 Structural rules cut! as composition with replicated input Γ ; P :: x : A Γ, u:a ; Q :: z : C Γ ; (νu)(!u(x).p Q) :: z : C cut! A No linear channels in P except x To use u we have to send it a new channel y for x Γ, u:a ;, y:a P :: z : C Γ, u:a ; (νy)u y.p :: z : C copy y will be linear and behave according to A 23 / 1

72 Cut! reduction Replaying the proof reduction yields: (νu)(!u(x).p (νy)u y.q) (νy)(p{y/x} (νu)(!u(x).p Q)) Instance of standard rule (!u(x).p u y.q) (P{y/x} Q!u(x).P) 24 / 1

73 Offering persistent service (!A) Internalize persistence as a proposition P :: x :!A P persistently offers A along x Creating a persistent service Sharing a persistent service Γ ; A Γ ;!A!R Γ, A ; C Γ ;,!A C!L 25 / 1

74 Offering persistent service (!A) Internalize persistence as a proposition P :: x :!A P persistently offers A along x Creating a persistent service Sharing a persistent service Γ ; A Γ ;!A!R Γ, A ; C Γ ;,!A C!L 25 / 1

75 Offering persistent service (!A) Internalize persistence as a proposition P :: x :!A P persistently offers A along x Creating a persistent service Sharing a persistent service Γ ; y : A Γ ; x :!A!R Γ, A ; C Γ ;,!A C!L 25 / 1

76 Offering persistent service (!A) Internalize persistence as a proposition P :: x :!A P persistently offers A along x Creating a persistent service Sharing a persistent service Γ ; P :: y : A Γ ;!x(y).p :: x :!A!R Γ, A ; C Γ ;,!A C!L 25 / 1

77 Offering persistent service (!A) Internalize persistence as a proposition P :: x :!A P persistently offers A along x Creating a persistent service Sharing a persistent service Γ ; P :: y : A Γ ;!x(y).p :: x :!A!R Γ, A ; C Γ ;,!A C!L 25 / 1

78 Offering persistent service (!A) Internalize persistence as a proposition P :: x :!A P persistently offers A along x Creating a persistent service Sharing a persistent service Γ ; P :: y : A Γ ;!x(y).p :: x :!A!R Γ, u:a ; z : C Γ ;, x:!a z : C!L 25 / 1

79 Offering persistent service (!A) Internalize persistence as a proposition P :: x :!A P persistently offers A along x Creating a persistent service Sharing a persistent service Γ ; P :: y : A Γ ;!x(y).p :: x :!A!R Γ, u:a ; Q :: z : C Γ ;, x:!a x/u.q :: z : C!L 25 / 1

80 Promotion!L promotes linear channels to shared ones No significant operational consequences (νx)(!x(y).p x/u.q) (νu)(!u(y).p Q) 26 / 1

81 Example: persistent storage Persistent PDF indexing service index 3 :!(file file 1) Persistently offer to input a file, then output a file and terminate session. Store a file persistently store 1 :!(file!(file 1)) Persistently offer to input a file, then output a persistent handle for retrieving this file. 27 / 1

82 Taking stock II At this point we have in addition Types A, B, C ::=... A & B external choice A B internal choice!a replication Processes P, Q ::=... x.inl; P x.inr; P selection x.case(p, Q) branching!u(x).p replicating input x/u.p (promotion) 28 / 1

83 Outline 1 Session types for π-calculus 2 Dependent session types 3 Proof irrelevance 4 Some results 5 Conclusion 29 / 1

84 Passing terms Types τ from a (dependent) type theory Hypothetical judgment x 1 :τ 1,..., x k :τ }{{} k M : τ Ψ Some example type constructors Πx:τ.σ, τ σ Σx:τ.σ, τ σ nat Functions from τ to σ Pairs of a τ and a σ Natural numbers Integrate into sequent calculus Ψ }{{} ; Γ }{{} ; }{{} term variables shared channels linear channels P :: x : A }{{} linear 30 / 1

85 Offering term input ( y:τ.a) P :: x : y:τ.a P inputs an M : τ along x and then behaves as A{M/x} Right rule: offer of service Ψ, y:τ ; Γ ; A Ψ ; Γ ; y:τ.a R Left rule: matching use of service Ψ M : τ Ψ ; Γ ;, A{M/y} C Ψ ; Γ ;, y:τ.a C L Proof reduction 31 / 1

86 Offering term input ( y:τ.a) P :: x : y:τ.a P inputs an M : τ along x and then behaves as A{M/x} Right rule: offer of service Ψ, y:τ ; Γ ; x : A Ψ ; Γ ; x : y:τ.a R Left rule: matching use of service Ψ M : τ Ψ ; Γ ;, A{M/y} C Ψ ; Γ ;, y:τ.a C L Proof reduction 31 / 1

87 Offering term input ( y:τ.a) P :: x : y:τ.a P inputs an M : τ along x and then behaves as A{M/x} Right rule: offer of service Ψ, y:τ ; Γ ; P :: x : A Ψ ; Γ ; x(y).p :: x : y:τ.a R Left rule: matching use of service Ψ M : τ Ψ ; Γ ;, A{M/y} C Ψ ; Γ ;, y:τ.a C L Proof reduction 31 / 1

88 Offering term input ( y:τ.a) P :: x : y:τ.a P inputs an M : τ along x and then behaves as A{M/x} Right rule: offer of service Ψ, y:τ ; Γ ; P :: x : A Ψ ; Γ ; x(y).p :: x : y:τ.a R Left rule: matching use of service Ψ M : τ Ψ ; Γ ;, x:a{m/y} z : C Ψ ; Γ ;, x: y:τ.a z : C L Proof reduction 31 / 1

89 Offering term input ( y:τ.a) P :: x : y:τ.a P inputs an M : τ along x and then behaves as A{M/x} Right rule: offer of service Ψ, y:τ ; Γ ; P :: x : A Ψ ; Γ ; x(y).p :: x : y:τ.a R Left rule: matching use of service Ψ M : τ Ψ ; Γ ;, x:a{m/y} Q :: z : C Ψ ; Γ ;, x: y:τ.a x M.Q :: z : C L Proof reduction 31 / 1

90 Offering term input ( y:τ.a) P :: x : y:τ.a P inputs an M : τ along x and then behaves as A{M/x} Right rule: offer of service Ψ, y:τ ; Γ ; P :: x : A Ψ ; Γ ; x(y).p :: x : y:τ.a R Left rule: matching use of service Ψ M : τ Ψ ; Γ ;, x:a{m/y} Q :: z : C Ψ ; Γ ;, x: y:τ.a x M.Q :: z : C L Proof reduction (νx)(x(y).p x M.Q) (νx)(p{m/y} Q) 31 / 1

91 Term passing: other connectives Quantified proposition as dependent session types x : y:τ.a x : $τ A x : y:τ.a x : $τ A Input an M : A along x and behave as A{M/y} Input an M : A along x and behave as A Output an M : A along x and behave as A{M/y} Output an M : A along x and behave as A $τ A as shorthand for y:τ.a if y not free in A $τ A as shorthand for y:τ.a if y not free in A We will omit the $ for readability 32 / 1

92 Examples, carrying proofs PDF indexing service index 3 :!(file file 1) index 4 :!( f :file. pdf(f ) g:file. pdf(g) 1) Persistently offer to input a file f, a proof that f is in PDF format, then output a PDF file g, and a proof that g is in PDF format and terminate the session. Persistent file storage store 1 :!(file!(file 1)) store 2 :!( f :file.! g:file. g. = f 1) Persistently offer to input a file, then output a persistent channel for retrieving this file and a proof that the two are equal. 33 / 1

93 Outline 1 Session types for π-calculus 2 Dependent session types 3 Proof irrelevance 4 Some results 5 Conclusion 34 / 1

94 Proof irrelevance In many examples, we want to know that proofs exist, but we do not want to transmit them We can easily check pdf(g) when using the indexing service The proof of g. = f (by reflexivity) would not be informative Use proof irrelevance in type theory M : [τ] M is a term of type τ that is computationally irrelevant 35 / 1

95 Proof irrelevance: rules Introduction and elimination Ψ M : τ Ψ [M] : [τ] []I Ψ M : [τ] Ψ, x τ N : σ Ψ let [x] = M in N : σ Ψ promotes hypotheses x τ to x:τ In examples, may use pattern matching instead of let By agreement, terms [M] will be erased before transmission Typing guarantees this can be done consistently []E 36 / 1

96 Examples with proof irrelevance Mark proofs as computationally irrelevant PDF indexing service index 4 :!( f :file. pdf(f ) g:file. pdf(g) 1) index 5 :!( f :file. [pdf(f )] g:file. [pdf(g)] 1) Persistent file storage store 2 :!( f :file.! g:file. g =. f 1) store 3 :!( f :file.! g:file. [g =. f ] 1) After erasure, communication can be optimized further 37 / 1

97 Example: mobile code For sensitive documents we want to run indexing locally Specification index 5 :!((Πf :file. [pdf(f )] Σg:file. [pdf(g)]) 1) Service persistently offers a function for indexing Cannot leak information since only process layer can communicate 38 / 1

98 Outline 1 Session types for π-calculus 2 Dependent session types 3 Proof irrelevance 4 Some results 5 Conclusion 39 / 1

99 Some results Recall: typing is modulo (shallow) structural congruence Theorem: type preservation = session fidelity Theorem: progress = deadlock freedom Theorem: termination Via linear logical relations (Pérez et al., ESOP 2012) Some commuting conversions = behavioral equivalences Theorem: proof reduction = process reduction Permuting cut and cut! = structural equivalences Identity elimination = structural reduction (forwarding) Propositional reduction = communication Some commuting conversion needed if promotion is suppressed and termination is asynchronous 40 / 1

100 Further extensions and results Family of monads K τ = digital signatures Continuum of trust: from proofs to digital signatures (CPP 2011) Functions as session-typed processes (FoSSaCS 2012) Translate from natural deduction to sequent calculus Via linear natural deduction [T S] =![T ] [S]: copying evaluation (by name) (T S) =!(T S ): sharing evaluation (futures) By-value and by-need are particular schedules for sharing 41 / 1

101 Ongoing work Polymorphism Immediate in the functional layer Parametricity in the process layer (Pérez et al., ESOP 2012) Asynchronous session types (w. Henry DeYoung) Also via Curry-Howard isomorphism! Unlocking parallelism with commuting conversions Each channel implementable as a bidirectional queue Classical linear logic Superficially more economical Does not enforce locality of shared channels All standard session examples (and more) already expressible in intuitionistic system Less likely to lead to full type theory 42 / 1

102 Concurrent dependent type theory? At present, we have a two-layer system Communication layer (both linear and shared channels) Value layer (dependent type theory) Can we have a concurrent dependently-typed language? Problem of linear dependency Equational reasoning about processes Integrating natural deduction and sequent calculus Dependently typed functional translation? Monadic encapsulation, à la CLF? 43 / 1

103 Some related work Computational interpretations of linear logic (Abramsky 1993) Relating π-calculus and linear logic (Bellin & Scott 1994) Session types (Honda 1993) (Honda et al. 1998)... Lolliproc (Mazurak & Zdancewic 2010) Natural deduction for classical linear logic Purely linear (unrestricted version conjectured) Tighter integration of functions with processes Requires control operators and additional coercions Dependent version unlikely? 44 / 1

104 Summary A Curry-Howard isomorphism Linear propositions as session types A B (input), A B (output), 1 (termination) A & B (external choice), A B (internal choice),!a (replication) Sequent proofs as π-calculus processes with a binary guarded choice and channel forwarding Cut reduction as π-calculus reduction Term-passing extension with a type theory x:τ.a (term input), x:τ.a (term output) Additional type theory constructs [τ] for proof irrelevance (not transmitted) K τ for affirmations (evidenced by digital signatures) 45 / 1

Proof-Carrying Code in a Session-Typed Process Calculus

Proof-Carrying Code in a Session-Typed Process Calculus Proof-Carrying Code in a Session-Typed Process Calculus Frank Pfenning with Luís Caires and Bernardo Toninho Department of Computer Science Carnegie Mellon University 1st International Conference on Certified

More information

Adjoint Logic and Its Concurrent Semantics

Adjoint Logic and Its Concurrent Semantics Adjoint Logic and Its Concurrent Semantics Frank Pfenning ABCD Meeting, Edinburgh, December 18-19, 2017 Joint work with Klaas Pruiksma and William Chargin Outline Proofs as programs Linear sequent proofs

More information

Cut Reduction in Linear Logic as Asynchronous Session-Typed Communication

Cut Reduction in Linear Logic as Asynchronous Session-Typed Communication Cut Reduction in Linear Logic as Asynchronous Session-Typed Communication Henry DeYoung 1, Luís Caires 2, Frank Pfenning 1, and Bernardo Toninho 1,2 1 Computer Science Department, Carnegie Mellon University

More information

Decomposing Modalities

Decomposing Modalities Decomposing Modalities Frank Pfenning Department of Computer Science Carnegie Mellon University Logical Frameworks and Meta-Languages: Theory and Practice (LFMTP 15) Berlin, Germany August 1, 2015 1 /

More information

Linear Logic Propositions as Session Types

Linear Logic Propositions as Session Types Under consideration for publication in Math. Struct. in Comp. Science Linear Logic Propositions as Session Types Luis Caires 1, Frank Pfenning 2 and Bernardo Toninho 1,2 1 Faculdade de Ciências e Tecnologia

More information

Intensionality, Extensionality, and Proof Irrelevance in Modal Type Theory

Intensionality, Extensionality, and Proof Irrelevance in Modal Type Theory Intensionality, Extensionality, and Proof Irrelevance in Modal Type Theory Frank Pfenning LICS 01 Boston, Massachusetts June 17, 2001 Acknowledgments: Alberto Momigliano,... 1 Outline 1. Introduction 2.

More information

Session Types as Intuitionistic Linear Propositions

Session Types as Intuitionistic Linear Propositions Session Types as Intuitionistic Linear Propositions Luís Caires 1 and Frank Pfenning 2 1 CITI and Departamento de Informática, FCT, Universidade Nova de Lisboa 2 Department of Computer Science, Carnegie

More information

Behavioral Polymorphism and Parametricity in Session-Based Communication

Behavioral Polymorphism and Parametricity in Session-Based Communication Behavioral Polymorphism and Parametricity in Session-Based Communication Luís Caires 1, Jorge A. Pérez 1, Frank Pfenning 2, and Bernardo Toninho 1,2 1 CITI and Departamento de Informática, FCT, Universidade

More information

Session Types as Intuitionistic Linear Propositions

Session Types as Intuitionistic Linear Propositions Session Types as Intuitionistic Linear Propositions Luis Caires Frank Pfenning Bernardo Toninho December 21, 2011 CMU-CS-11-138 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213

More information

Subtyping and Intersection Types Revisited

Subtyping and Intersection Types Revisited Subtyping and Intersection Types Revisited Frank Pfenning Carnegie Mellon University International Conference on Functional Programming (ICFP 07) Freiburg, Germany, October 1-3, 2007 Joint work with Rowan

More information

Lecture Notes on Of Course!

Lecture Notes on Of Course! Lecture Notes on Of Course! 15-816: Substructural Logics Frank Pfenning Lecture 15 October 20, 2016 In this lecture we combine structural and substructural intuitionistic logics into a single system, using

More information

Towards Modal Type Theory

Towards Modal Type Theory Towards Modal Type Theory Frank Pfenning Constructivism in Non-Classical Logics and Computer Science In Memoriam Pierangelo Miglioli Mantova, Italy October 2, 2000 Disclaimer: Work in Progress! Acknowledgments:

More information

Lecture Notes on A Concurrent Logical Framework

Lecture Notes on A Concurrent Logical Framework Lecture Notes on A Concurrent Logical Framework 15-816: Linear Logic Frank Pfenning Lecture 21 April 9, 2012 Today we will put many of pieces together that we have put in place so far, by moving from a

More information

Relational Parametricity for Polymorphic Session Types (Extended Version)

Relational Parametricity for Polymorphic Session Types (Extended Version) Relational Parametricity for Polymorphic Session Types (Extended Version) Luís Caires 1, Jorge A. Pérez 1, Frank Pfenning 2, and Bernardo Toninho 1,2 1 CITI and Departamento de Informática, FCT, Universidade

More information

Lecture Notes on Classical Linear Logic

Lecture Notes on Classical Linear Logic Lecture Notes on Classical Linear Logic 15-816: Linear Logic Frank Pfenning Lecture 25 April 23, 2012 Originally, linear logic was conceived by Girard [Gir87] as a classical system, with one-sided sequents,

More information

Lecture Notes on Ordered Proofs as Concurrent Programs

Lecture Notes on Ordered Proofs as Concurrent Programs Lecture Notes on Ordered Proofs as Concurrent Programs 15-317: Constructive Logic Frank Pfenning Lecture 24 November 30, 2017 1 Introduction In this lecture we begin with a summary of the correspondence

More information

Lecture Notes on Linear Logic

Lecture Notes on Linear Logic Lecture Notes on Linear Logic 15-816: Modal Logic Frank Pfenning Lecture 23 April 20, 2010 1 Introduction In this lecture we will introduce linear logic [?] in its judgmental formulation [?,?]. Linear

More information

A Concurrent Logical Framework

A Concurrent Logical Framework A Concurrent Logical Framework Frank Pfenning Carnegie Mellon University Types Workshop Torino, Italy, April 2003 Joint work with Iliano Cervesato, David Walker, and Kevin Watkins Types 03, Torino, April

More information

Propositions as Sessions

Propositions as Sessions Propositions as Sessions Philip Wadler University of Edinburgh wadler@inf.ed.ac.uk Abstract Continuing a line of work by Abramsky (1994), by Bellin and Scott (1994), and by Caires and Pfenning (2010),

More information

The Curry-Howard Isomorphism

The Curry-Howard Isomorphism The Curry-Howard Isomorphism Software Formal Verification Maria João Frade Departmento de Informática Universidade do Minho 2008/2009 Maria João Frade (DI-UM) The Curry-Howard Isomorphism MFES 2008/09

More information

An Isomorphism Between Substructural Proofs and Deterministic Finite Automata

An Isomorphism Between Substructural Proofs and Deterministic Finite Automata An Isomorphism Between Substructural Proofs and Deterministic Finite Automata Henry DeYoung and Frank Pfenning Computer Science Department, Carnegie Mellon University, Pittsburgh, PA USA {hdeyoung,fp}@cs.cmu.edu

More information

Type Systems as a Foundation for Reliable Computing

Type Systems as a Foundation for Reliable Computing Type Systems as a Foundation for Reliable Computing Robert Harper Carnegie Mellon University Summer School on Reliable Computing University of Oregon July, 2005 References These lectures are based on the

More information

A Judgmental Deconstruction of Modal Logic

A Judgmental Deconstruction of Modal Logic A Judgmental Deconstruction of Modal Logic Jason Reed January 30, 2009 Abstract The modalities and of necessary and lax truth described by Pfenning and Davies can be seen to arise from the same pair of

More information

Lecture Notes on Certifying Theorem Provers

Lecture Notes on Certifying Theorem Provers Lecture Notes on Certifying Theorem Provers 15-317: Constructive Logic Frank Pfenning Lecture 13 October 17, 2017 1 Introduction How do we trust a theorem prover or decision procedure for a logic? Ideally,

More information

Linear Logical Relations and Observational Equivalences for Session-Based Concurrency

Linear Logical Relations and Observational Equivalences for Session-Based Concurrency Linear Logical Relations and Observational Equivalences for Session-Based Concurrency Jorge A. Pérez a, Luís Caires a, Frank Pfenning b, Bernardo Toninho a,b a CITI and Departamento de Informática, FCT

More information

Lecture Notes on Focusing

Lecture Notes on Focusing Lecture Notes on Focusing Oregon Summer School 2010 Proof Theory Foundations Frank Pfenning Lecture 4 June 17, 2010 1 Introduction When we recast verifications as sequent proofs, we picked up a lot of

More information

Sequent Calculus. 3.1 Cut-Free Sequent Calculus

Sequent Calculus. 3.1 Cut-Free Sequent Calculus Chapter 3 Sequent Calculus In the previous chapter we developed linear logic in the form of natural deduction, which is appropriate for many applications of linear logic. It is also highly economical,

More information

Meta-Reasoning in a Concurrent Logical Framework

Meta-Reasoning in a Concurrent Logical Framework Meta-Reasoning in a Concurrent Logical Framework Iliano Cervesato and Jorge Luis Sacchini Carnegie Mellon University Chalmers University, 16 Oct 2013 Iliano Cervesato and Jorge Luis Sacchini Meta-Reasoning

More information

Coherence Generalises Duality

Coherence Generalises Duality Coherence Generalises Duality Marco Carbone, Sam Lindley, Fabrizio Montesi, Carsten Schürmann, Philip Wadler University of Lisbon Tuesday 23 January 2018 1 CONCUR, 2015 2 CONCUR, 2016 3 FORTE, 2016 4 ABCD,

More information

Meta-reasoning in the concurrent logical framework CLF

Meta-reasoning in the concurrent logical framework CLF Meta-reasoning in the concurrent logical framework CLF Jorge Luis Sacchini (joint work with Iliano Cervesato) Carnegie Mellon University Qatar campus Nagoya University, 27 June 2014 Jorge Luis Sacchini

More information

On a computational interpretation of sequent calculus for modal logic S4

On a computational interpretation of sequent calculus for modal logic S4 On a computational interpretation of sequent calculus for modal logic S4 Yosuke Fukuda Graduate School of Informatics, Kyoto University Second Workshop on Mathematical Logic and Its Applications March

More information

Harvard School of Engineering and Applied Sciences CS 152: Programming Languages

Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Lecture 17 Tuesday, April 2, 2013 1 There is a strong connection between types in programming languages and propositions

More information

A Proof Theory for Generic Judgments

A Proof Theory for Generic Judgments A Proof Theory for Generic Judgments Dale Miller INRIA/Futurs/Saclay and École Polytechnique Alwen Tiu École Polytechnique and Penn State University LICS 2003, Ottawa, Canada, 23 June 2003 Outline 1. Motivations

More information

Manifest Sharing with Session Types

Manifest Sharing with Session Types Manifest haring with ession Types tephanie Balzer and Frank Pfenning June 2017 CMU-C-17-106R (updated version of CMU-C-17-106, March 2017) Computer cience Department chool of Computer cience Carnegie Mellon

More information

Focusing on Binding and Computation

Focusing on Binding and Computation Focusing on Binding and Computation Dan Licata Joint work with Noam Zeilberger and Robert Harper Carnegie Mellon University 1 Programming with Proofs Represent syntax, judgements, and proofs Reason about

More information

A Semantics for Propositions as Sessions

A Semantics for Propositions as Sessions A Semantics for Propositions as Sessions Sam Lindley and J. Garrett Morris The University of Edinburgh {Sam.Lindley,Garrett.Morris}@ed.ac.uk Abstract. Session types provide a static guarantee that concurrent

More information

Lecture Notes on Cut Elimination

Lecture Notes on Cut Elimination Lecture Notes on Cut limination 15-816: Linear Logic Frank Pfenning Lecture 7 February 8, 2012 After presenting an interpretation of linear propositions in the sequent calculus as session types, we now

More information

Observed Communication Semantics for Classical Processes

Observed Communication Semantics for Classical Processes Observed Communication Semantics for Classical Processes Robert Atkey MSP Group, University of Strathclyde robert.atkey@strath.ac.uk Abstract. Classical Linear Logic (CLL) has long inspired readings of

More information

Final Exam Substructural Logics Frank Pfenning. December 12, 2016

Final Exam Substructural Logics Frank Pfenning. December 12, 2016 Final Exam 15-816 Substructural Logics Frank Pfenning December 12, 2016 Name: Andrew ID: Instructions This exam is closed-book, closed-notes. You have 3 hours to complete the exam. There are 6 problems.

More information

Functions as Session-Typed Processes

Functions as Session-Typed Processes Functions as Session-Typed Processes Bernardo Toninho 1,2, Luis Caires 2, and Frank Pfenning 1 1 Computer Science Department Carnegie Mellon University Pittsburgh, PA, USA 2 CITI and Faculdade de Ciências

More information

Lecture Notes on Combinatory Modal Logic

Lecture Notes on Combinatory Modal Logic Lecture Notes on Combinatory Modal Logic 15-816: Modal Logic Frank Pfenning Lecture 9 February 16, 2010 1 Introduction The connection between proofs and program so far has been through a proof term assignment

More information

Modal Logic as a Basis for Distributed Computation

Modal Logic as a Basis for Distributed Computation Modal Logic as a Basis for Distributed Computation Jonathan Moody 1 jwmoody@cs.cmu.edu October 2003 CMU-CS-03-194 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 1 This material

More information

Bidirectional Decision Procedures for the Intuitionistic Propositional Modal Logic IS4

Bidirectional Decision Procedures for the Intuitionistic Propositional Modal Logic IS4 Bidirectional ecision Procedures for the Intuitionistic Propositional Modal Logic IS4 Samuli Heilala and Brigitte Pientka School of Computer Science, McGill University, Montreal, Canada {sheila1,bpientka}@cs.mcgill.ca

More information

On a Logical Foundation for Explicit Substitutions

On a Logical Foundation for Explicit Substitutions On a Logical Foundation for Explicit Substitutions Frank Pfenning Carnegie Mellon University Joint Invited Talk Typed Lambda Calculi and Applications (TLCA 07) Rewriting Techniques and Applications (RTA

More information

Lecture Notes on The Curry-Howard Isomorphism

Lecture Notes on The Curry-Howard Isomorphism Lecture Notes on The Curry-Howard Isomorphism 15-312: Foundations of Programming Languages Frank Pfenning Lecture 27 ecember 4, 2003 In this lecture we explore an interesting connection between logic and

More information

A Logical Characterization of Forward and Backward Chaining in the Inverse Method

A Logical Characterization of Forward and Backward Chaining in the Inverse Method A Logical Characterization of Forward and Backward Chaining in the Inverse Method Kaustuv Chaudhuri 1, Frank Pfenning 2, and Greg Price 2 1 Laboratoire d Informatique École Polytechnique kaustuv@lix.polytechnique.fr

More information

Type safety for substructural specifications: preliminary results

Type safety for substructural specifications: preliminary results Type safety for substructural specifications: preliminary results Robert J. Simmons July 15, 2010 CMU-CS-10-134 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 Abstract Substructural

More information

Syddansk Universitet. Classical higher-order processes. Montesi, Fabrizio

Syddansk Universitet. Classical higher-order processes. Montesi, Fabrizio Syddansk Universitet Classical higher-order processes Montesi, Fabrizio Published in: Formal Techniques for Distributed Objects, Components, and Systems DOI: 10.1007/978-3-319-60225-7_12 Publication date:

More information

Lecture Notes on Identity and Inversion

Lecture Notes on Identity and Inversion Lecture Notes on Identity and Inversion 15-816: Linear Logic Frank Pfenning Lecture 8 February 13, 2012 In the last lecture we saw cut elimination as the global version of cut reduction. In this lecture

More information

Bidirectional Decision Procedures for the Intuitionistic Propositional Modal Logic IS4

Bidirectional Decision Procedures for the Intuitionistic Propositional Modal Logic IS4 Bidirectional Decision Procedures for the Intuitionistic Propositional Modal Logic IS4 Samuli Heilala and Brigitte Pientka School of Computer Science, McGill University, Montreal, Canada {sheila1,bpientka}@cs.mcgill.ca

More information

An overview of Structural Proof Theory and Computing

An overview of Structural Proof Theory and Computing An overview of Structural Proof Theory and Computing Dale Miller INRIA-Saclay & LIX, École Polytechnique Palaiseau, France Madison, Wisconsin, 2 April 2012 Part of the Special Session in Structural Proof

More information

Lecture Notes on Sequent Calculus

Lecture Notes on Sequent Calculus Lecture Notes on Sequent Calculus 15-816: Modal Logic Frank Pfenning Lecture 8 February 9, 2010 1 Introduction In this lecture we present the sequent calculus and its theory. The sequent calculus was originally

More information

Lecture Notes on Quantification

Lecture Notes on Quantification Lecture Notes on Quantification 15-317: Constructive Logic Frank Pfenning Lecture 5 September 8, 2009 1 Introduction In this lecture, we introduce universal and existential quantification As usual, we

More information

A Judgmental Analysis of Linear Logic

A Judgmental Analysis of Linear Logic A Judgmental Analysis of Linear Logic Bor-Yuh Evan Chang Kaustuv Chaudhuri Frank Pfenning April 14, 2003 CMU-CS-03-131 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 Abstract

More information

Notes on Logical Frameworks

Notes on Logical Frameworks Notes on Logical Frameworks Robert Harper IAS November 29, 2012 1 Introduction This is a brief summary of a lecture on logical frameworks given at the IAS on November 26, 2012. See the references for technical

More information

A concurrent logical framework I: Judgments and properties

A concurrent logical framework I: Judgments and properties A concurrent logical framework I: Judgments and properties Kevin Watkins Iliano Cervesato Frank Pfenning David Walker March 2002, revised May 2003 CMU-CS-02-101 School of Computer Science Carnegie Mellon

More information

AN ALTERNATIVE NATURAL DEDUCTION FOR THE INTUITIONISTIC PROPOSITIONAL LOGIC

AN ALTERNATIVE NATURAL DEDUCTION FOR THE INTUITIONISTIC PROPOSITIONAL LOGIC Bulletin of the Section of Logic Volume 45/1 (2016), pp 33 51 http://dxdoiorg/1018778/0138-068045103 Mirjana Ilić 1 AN ALTERNATIVE NATURAL DEDUCTION FOR THE INTUITIONISTIC PROPOSITIONAL LOGIC Abstract

More information

Intersection Synchronous Logic

Intersection Synchronous Logic UnB 2007 p. 1/2 Intersection Synchronous Logic Elaine Gouvêa Pimentel Simona Ronchi della Rocca Luca Roversi UFMG/UNITO, 2007 UnB 2007 p. 2/2 Outline Motivation UnB 2007 p. 2/2 Outline Motivation Intuitionistic

More information

A Concurrent Logical Framework: the Propositional Fragment

A Concurrent Logical Framework: the Propositional Fragment A Concurrent Logical Framework: the Propositional Fragment Kevin Watkins 1, Iliano Cervesato 2, Frank Pfenning 1, and David Walker 3 1 kw,fp@cs.cmu.edu, Department of Computer Science, Carnegie Mellon

More information

Evaluation Driven Proof-Search in Natural Deduction Calculi for Intuitionistic Propositional Logic

Evaluation Driven Proof-Search in Natural Deduction Calculi for Intuitionistic Propositional Logic Evaluation Driven Proof-Search in Natural Deduction Calculi for Intuitionistic Propositional Logic Mauro Ferrari 1, Camillo Fiorentini 2 1 DiSTA, Univ. degli Studi dell Insubria, Varese, Italy 2 DI, Univ.

More information

The Join calculus A calculus of mobile agents

The Join calculus A calculus of mobile agents The Join calculus p. 1/32 The Join calculus A calculus of mobile agents Martin Mosegaard Jensen Mobile Computing seminar 2004, DAIMI The Join calculus p. 2/32 Plan Motivation The reflexive CHAM Distribution:

More information

Lecture Notes on Call-by-Value and Call-by-Name

Lecture Notes on Call-by-Value and Call-by-Name Lecture Notes on Call-by-Value and Call-by-Name 15-816: Substructural Logics Frank Pfenning Lecture 22 November 16, 2017 In this lecture we consider two different polarization strategies for structural

More information

Proof Nets in Process Algebraic Form

Proof Nets in Process Algebraic Form Proof Nets in Process Algebraic Form Dimitris Mostrous Department of Informatics, University of Lisbon, Portugal dimitris@di.fc.ul.pt Abstract. We present δ-calculus, a computational interpretation of

More information

Relating Reasoning Methodologies in Linear Logic and Process Algebra

Relating Reasoning Methodologies in Linear Logic and Process Algebra Relating Reasoning Methodologies in Linear Logic and Process Algebra Yuxin Deng Robert J. Simmons Iliano Cervesato December 2011 CMU-CS-11-145 CMU-CS-QTR-111 School of Computer Science Carnegie Mellon

More information

Natural deduction for propositional logic via truth tables

Natural deduction for propositional logic via truth tables Natural deduction for propositional logic via truth tables Herman Geuvers Nijmegen, NL (Joint work with Tonny Hurkens) Bengt Nordström honorary workshop Marstrand, Sweden April 2016 H. Geuvers - April

More information

Mode checking in the Concurrent Logical Framework

Mode checking in the Concurrent Logical Framework Mode checking in the Concurrent Logical Framework Jorge Luis Sacchini Iliano Cervesato Frank Pfenning Carsten Schürmann August 2014 CMU-CS-14-134 CMU-CS-QTR-123 School of Computer Science Carnegie Mellon

More information

Lecture Notes on Intuitionistic Kripke Semantics

Lecture Notes on Intuitionistic Kripke Semantics Lecture Notes on Intuitionistic Kripke Semantics 15-816: Modal Logic Frank Pfenning Lecture 15 March 18, 2010 1 Introduction In this lecture we present an intuitionistic approach to describing a multipleworld

More information

A Concurrent Logical Framework:

A Concurrent Logical Framework: A Concurrent Logical Framework: The Propositional Fragment Kevin Watkins 1, Iliano Cervesato 2, Frank Pfenning 1, and David Walker 3 1 kw,fp@cs.cmu.edu, Department of Computer Science, Carnegie Mellon

More information

Asterix calculus - classical computation in detail

Asterix calculus - classical computation in detail Asterix calculus - classical computation in detail (denoted X ) Dragiša Žunić 1 Pierre Lescanne 2 1 CMU Qatar 2 ENS Lyon Logic and Applications - LAP 2016 5th conference, September 19-23, Dubrovnik Croatia

More information

Reasoning about the Consequences of Authorization Policies in a Linear Epistemic Logic

Reasoning about the Consequences of Authorization Policies in a Linear Epistemic Logic Reasoning about the Consequences of Authorization Policies in a Linear Epistemic Logic Henry DeYoung July 2009 CMU-CS-09-140 Frank Pfenning School of Computer Science Carnegie Mellon University Pittsburgh,

More information

Unicity of type inhabitants; a Work in Progress

Unicity of type inhabitants; a Work in Progress Unicity of type inhabitants; a Work in Progress Gabriel Scherer Gallium (INRIA Paris-Rocquencourt) May 30, 2013 Gabriel Scherer (Gallium) Unique Inhabitants; WIP May 30, 2013 1 / 27 What? This talk is

More information

Lecture Notes on Kripke Semantics for Validity

Lecture Notes on Kripke Semantics for Validity Lecture Notes on Kripke Semantics for Validity 15-816: Modal Logic Frank Pfenning Lecture 16 March 23, 2010 1 Introduction In this lecture we continue the analysis of distributed computation through modal

More information

Proof Search Foundations for Logic Programming

Proof Search Foundations for Logic Programming July 2003 1/51 Outline Proof Search Foundations for Logic Programming Dale Miller INRIA Futurs and École Polytechnique 1. Roles of logic in specifying computation 2. Focus on proof search (logic programming)

More information

Specifying Properties of Concurrent Computations in CLF

Specifying Properties of Concurrent Computations in CLF LFM 2004 Preliminary Version Specifying Properties of Concurrent Computations in CLF Kevin Watkins a,1 Iliano Cervesato b,2 Frank Pfenning a,3 David Walker c,4 a Department of Computer Science, Carnegie

More information

Propositions and Proofs

Propositions and Proofs Chapter 2 Propositions and Proofs The goal of this chapter is to develop the two principal notions of logic, namely propositions and proofs There is no universal agreement about the proper foundations

More information

Specifying Properties of Concurrent Computations in CLF

Specifying Properties of Concurrent Computations in CLF LFM 2004 Preliminary Version Specifying Properties of Concurrent Computations in CLF Kevin Watkins a,1 Iliano Cervesato b,2 Frank Pfenning a,3 David Walker c,4 a Department of Computer Science, Carnegie

More information

Fixed-point elimination in Heyting algebras 1

Fixed-point elimination in Heyting algebras 1 1/32 Fixed-point elimination in Heyting algebras 1 Silvio Ghilardi, Università di Milano Maria João Gouveia, Universidade de Lisboa Luigi Santocanale, Aix-Marseille Université TACL@Praha, June 2017 1 See

More information

A JUDGMENTAL ANALYSIS OF LINEAR LOGIC

A JUDGMENTAL ANALYSIS OF LINEAR LOGIC A JUDGMENTAL ANALYSIS OF LINEAR LOGIC BOR-YUH EVAN CHANG, KAUSTUV CHAUDHURI, AND FRANK PFENNING Abstract. We reexamine the foundations of linear logic, developing a system of natural deduction following

More information

Mixing Finite Success and Finite Failure. Automated Prover

Mixing Finite Success and Finite Failure. Automated Prover in an Automated Prover Alwen Tiu 1, Gopalan Nadathur 2 and Dale Miller 3 1 INRIA Lorraine, France 2 University of Minnesota, USA 3 INRIA Futurs/École polytechnique, France ESHOL 2005 Montego Bay, Jamaica

More information

Logic Programming in a Fragment of Intuitionistic Linear Logic

Logic Programming in a Fragment of Intuitionistic Linear Logic Logic Programming in a Fragment of Intuitionistic Linear Logic Joshua S. Hodas Computer Science Department Harvey Mudd College Claremont, CA 91711-5990 USA hodas@cs.hmc.edu Dale Miller Computer Science

More information

A linear account of session types in the pi calculus

A linear account of session types in the pi calculus A linear account of session types in the pi calculus Marco Giunti 1 and Vasco T. Vasconcelos 2 1 Iuav University, Venice 2 LaSIGE, Faculty of Sciences, University of Lisbon Abstract. We present a reconstruction

More information

Lecture Notes on Heyting Arithmetic

Lecture Notes on Heyting Arithmetic Lecture Notes on Heyting Arithmetic 15-317: Constructive Logic Frank Pfenning Lecture 8 September 21, 2017 1 Introduction In this lecture we discuss the data type of natural numbers. They serve as a prototype

More information

The Calculus of Inductive Constructions

The Calculus of Inductive Constructions The Calculus of Inductive Constructions Hugo Herbelin 10th Oregon Programming Languages Summer School Eugene, Oregon, June 16-July 1, 2011 1 Outline - A bit of history, leading to the Calculus of Inductive

More information

Principal-Centric Reasoning in Constructive Authorization Logic

Principal-Centric Reasoning in Constructive Authorization Logic Principal-Centric Reasoning in Constructive Authorization Logic Deepak Garg Revised February 09, 2009 CMU-CS-09-120 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 e-mail: dg@cs.cmu.edu

More information

Models of Concurrency

Models of Concurrency Models of Concurrency GERARDO SCHNEIDER UPPSALA UNIVERSITY DEPARTMENT OF INFORMATION TECHNOLOGY UPPSALA, SWEDEN Thanks to Frank Valencia Models of Concurrency p.1/57 Concurrency is Everywhere Concurrent

More information

AN OVERVIEW OF LINEAR LOGIC PROGRAMMING

AN OVERVIEW OF LINEAR LOGIC PROGRAMMING AN OVERVIEW OF LINEAR LOGIC PROGRAMMING DALE MILLER Abstract. Logic programming can be given a foundation in sequent calculus, viewing computation as the process of building a cut-free sequent proof from

More information

A judgmental analysis of linear logic

A judgmental analysis of linear logic A judgmental analysis of linear logic Bor-Yuh Evan Chang Kaustuv Chaudhuri Frank Pfenning 14 April 2003 Revised December 29, 2003 CMU-CS-03-131R School of Computer Science Carnegie Mellon University Pittsburgh,

More information

arxiv: v1 [cs.lo] 1 Oct 2018

arxiv: v1 [cs.lo] 1 Oct 2018 COMPARING TYPE SYSTEMS FOR DEADLOCK-FREEDOM ORNELA DARDHA AND JORGE A. PÉREZ arxiv:1810.00635v1 [cs.lo] 1 Oct 2018 School of Computing Science, University of Glasgow, UK e-mail address: ornela.dardha@glasgow.ac.uk

More information

Outline F eria AADL behavior 1/ 78

Outline F eria AADL behavior 1/ 78 Outline AADL behavior Annex Jean-Paul Bodeveix 2 Pierre Dissaux 3 Mamoun Filali 2 Pierre Gaufillet 1 François Vernadat 2 1 AIRBUS-FRANCE 2 FéRIA 3 ELLIDIS SAE AS2C Detroit Michigan April 2006 FéRIA AADL

More information

Mathematical Logic and Linguistics

Mathematical Logic and Linguistics Mathematical Logic and Linguistics Glyn Morrill & Oriol Valentín Department of Computer Science Universitat Politècnica de Catalunya morrill@cs.upc.edu & oriol.valentin@gmail.com BGSMath Course Class 9

More information

Relating State-Based and Process-Based Concurrency through Linear Logic

Relating State-Based and Process-Based Concurrency through Linear Logic École Polytechnique 17 September 2009 Relating State-Based and Process-Based oncurrency through Linear Logic Iliano ervesato arnegie Mellon University - Qatar iliano@cmu.edu Specifying oncurrent Systems

More information

Lecture Notes on Data Abstraction

Lecture Notes on Data Abstraction Lecture Notes on Data Abstraction 15-814: Types and Programming Languages Frank Pfenning Lecture 14 October 23, 2018 1 Introduction Since we have moved from the pure λ-calculus to functional programming

More information

Review of The π-calculus: A Theory of Mobile Processes

Review of The π-calculus: A Theory of Mobile Processes Review of The π-calculus: A Theory of Mobile Processes Riccardo Pucella Department of Computer Science Cornell University July 8, 2001 Introduction With the rise of computer networks in the past decades,

More information

A Symmetric Modal Lambda Calculus for Distributed Computing

A Symmetric Modal Lambda Calculus for Distributed Computing Carnegie Mellon University Research Showcase Computer Science Department School of Computer Science 3-1-2004 A Symmetric Modal Lambda Calculus for Distributed Computing Tom Murphy Carnegie Mellon University

More information

A Judgmental Reconstruction of Modal Logic

A Judgmental Reconstruction of Modal Logic Under consideration for publication in Math. Struct. in Comp. Science A Judgmental Reconstruction of Modal Logic FRANK PFENNING and ROWAN AVIES epartment of Computer Science Carnegie Mellon University

More information

Midterm Exam Types and Programming Languages Frank Pfenning. October 18, 2018

Midterm Exam Types and Programming Languages Frank Pfenning. October 18, 2018 Midterm Exam 15-814 Types and Programming Languages Frank Pfenning October 18, 2018 Name: Andrew ID: Instructions This exam is closed-book, closed-notes. You have 80 minutes to complete the exam. There

More information

Lecture Notes on The Concurrent Logical Framework

Lecture Notes on The Concurrent Logical Framework Lecture Notes on The Concurrent Logical Framework 15-816: Substructural Logics Frank Pfenning Lecture 23 November 17, 2016 A logical framework is a metalanguage for the representation and analysis of deductive

More information

Inducing syntactic cut-elimination for indexed nested sequents

Inducing syntactic cut-elimination for indexed nested sequents Inducing syntactic cut-elimination for indexed nested sequents Revantha Ramanayake Technische Universität Wien (Austria) IJCAR 2016 June 28, 2016 Revantha Ramanayake (TU Wien) Inducing syntactic cut-elimination

More information

Self-Adaptation and Information Flow in Multiparty Communications

Self-Adaptation and Information Flow in Multiparty Communications Self-Adaptation and Information Flow in Multiparty Communications Joint work with Ilaria Castellani (INRIA, FR) Jorge A. Pérez (University of Groningen, NL) ABCD meeting London, 20th April, 2015 1 / 36

More information

Lecture Notes on Subject Reduction and Normal Forms

Lecture Notes on Subject Reduction and Normal Forms Lecture Notes on Subject Reduction and Normal Forms 15-814: Types and Programming Languages Frank Pfenning Lecture 4 September 13, 2018 1 Introduction In the last lecture we proved some key aspect of a

More information