A Semantics for Propositions as Sessions

Part of the Lecture Notes in Computer Science book series (LNCS, volume 9032)

Abstract

Session types provide a static guarantee that concurrent programs respect communication protocols. Recently, Caires, Pfenning, and Toninho, and Wadler, have developed a correspondence between propositions of linear logic and session typed π-calculus processes. We relate the cut-elimination semantics of this approach to an operational semantics for session-typed concurrency in a functional language. We begin by presenting a variant of Wadler’s session-typed core functional language, GV. We give a small-step operational semantics for GV. We develop a suitable notion of deadlock, based on existing approaches for capturing deadlock in π-calculus, and show that all well-typed GV programs are deadlock-free, deterministic, and terminating. We relate GV to linear logic by giving translations between GV and CP, a process calculus with a type system and semantics based on classical linear logic. We prove that both directions of our translation preserve reduction; previous translations from GV to CP, in contrast, failed to preserve β-reduction. Furthermore, to demonstrate the modularity of our approach, we define two extensions of GV which preserve deadlock-freedom, determinism, and termination.

Keywords

Linear Logic Reduction Rule Typing Rule Functional Language Closed Channel 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abramsky, S.: Proofs as processes. Theor. Comput. Sci. 135(1), 5–9 (1992)CrossRefMathSciNetGoogle Scholar
  2. 2.
    Barendregt, H.P.: The Lambda Calculus Its Syntax and Semantics, vol. 103. North-Holland (1984)Google Scholar
  3. 3.
    Bellin, G., Scott, P.J.: On the π-Calculus and linear logic. Theoretical Computer Science 135(1), 11–65 (1994)CrossRefMATHMathSciNetGoogle Scholar
  4. 4.
    Boreale, M.: On the expressiveness of internal mobility. In: Sassone, V., Montanari, U. (eds.) CONCUR 1996. LNCS, vol. 1119, Springer, Heidelberg (1996)Google Scholar
  5. 5.
    Caires, L., Pfenning, F.: Session types as intuitionistic linear propositions. In: Gastin, P., Laroussinie, F. (eds.) CONCUR 2010. LNCS, vol. 6269, pp. 222–236. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  6. 6.
    Carbone, M., Dardha, O., Montesi, F.: Progress as compositional lock-freedom. In: COORDINATION 2014, Springer (2014)Google Scholar
  7. 7.
    Carbone, M., Debois, S.: A graphical approach to progress for structured communication in web services. In: ICE (2010)Google Scholar
  8. 8.
    Cooper, E., Lindley, S., Yallop, J.: Links: Web programming without tiers. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2006. LNCS, vol. 4709, pp. 266–296. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  9. 9.
    Dardha, O., Giachino, E., Sangiorgi, D.: Session types revisited. In: PPDP. ACM (2012)Google Scholar
  10. 10.
    Gay, S.J., Vasconcelos, V.T.: Linear type theory for asynchronous session types. Journal of Functional Programming 20(01), 19–50 (2010)CrossRefMATHMathSciNetGoogle Scholar
  11. 11.
    Giachino, E., Kobayashi, N., Laneve, C.: Deadlock analysis of unbounded process networks. In: Baldan, P., Gorla, D. (eds.) CONCUR 2014. LNCS, vol. 8704, pp. 63–77. Springer, Heidelberg (2014)CrossRefGoogle Scholar
  12. 12.
    Girard, J.-Y.: Linear logic. Theoretical Computer Science 50(1), 1–101 (1987)CrossRefMATHMathSciNetGoogle Scholar
  13. 13.
    Honda, K.: Types for dyadic interaction. In: Best, E. (ed.) CONCUR 1993. LNCS, vol. 715, Springer, Heidelberg (1993)Google Scholar
  14. 14.
    Honda, K., Vasconcelos, V.T., Kubo, M.: Language primitives and type discipline for structured communication-based programming. In: Hankin, C. (ed.) ESOP 1998. LNCS, vol. 1381, p. 122. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  15. 15.
    Kobayashi, N.: Type systems for concurrent programs. In: Aichernig, B.K. (ed.) Formal Methods at the Crossroads. From Panacea to Foundational Support. LNCS, vol. 2757, pp. 439–453. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  16. 16.
    Kobayashi, N.: A new type system for deadlock-free processes. In: Baier, C., Hermanns, H. (eds.) CONCUR 2006. LNCS, vol. 4137, pp. 233–247. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  17. 17.
    Kobayashi, N., Pierce, B.C., Turner, D.N.: Linearity and the π-calculus. In: POPL. ACM (1996)Google Scholar
  18. 18.
    Lévy, J.-J., Maranget, L.: Explicit substitutions and programming languages. In: Pandu Rangan, C., Raman, V., Sarukkai, S. (eds.) FST TCS 1999. LNCS, vol. 1738, p. 181. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  19. 19.
    Lindley, S., Morris, J.G.: Sessions as propositions. In: PLACES (2014)Google Scholar
  20. 20.
    Padovani, L.: Deadlock and lock freedom in the linear π-calculus. In: LICS, ACM (2014)Google Scholar
  21. 21.
    Pérez, J.A., Caires, L., Pfenning, F., Toninho, B.: Linear logical relations and observational equivalences for session-based concurrency. Inf. Comput. 239, 254–302 (2014)CrossRefMATHGoogle Scholar
  22. 22.
    Takeuchi, K., Honda, K., Kubo, M.: An interaction-based language and its typing system. In: Halatsis, C., Philokyprou, G., Maritsas, D., Theodoridis, S. (eds.) PARLE 1994. LNCS, vol. 817, Springer, Heidelberg (1994)Google Scholar
  23. 23.
    Toninho, B., Caires, L., Pfenning, F.: Functions as session-typed processes. In: Birkedal, L. (ed.) FOSSACS 2012. LNCS, vol. 7213, pp. 346–360. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  24. 24.
    van Bakel, S., Vigliotti, M.G.: A logical interpretation of the λ-calculus into the π-calculus, preserving spine reduction and types. In: Bravetti, M., Zavattaro, G. (eds.) CONCUR 2009. LNCS, vol. 5710, pp. 84–98. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  25. 25.
    Vasconcelos, V.T., Gay, S.J., Ravara, A.: Type checking a multithreaded functional language with session types. Theor. Comput. Sci. 368(1-2), 64–87 (2006)CrossRefMATHMathSciNetGoogle Scholar
  26. 26.
    Wadler, P.: Propositions as sessions. J. Funct. Program. 24(2-3), 384–418 (2014)CrossRefMATHMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2015

Authors and Affiliations

  1. 1.The University of EdinburghEdinburghUK

Personalised recommendations