Abstract
This work exploits the logical foundation of session types to determine what kind of type discipline for the Λ-calculus can exactly capture, and is captured by, Λ-calculus behaviours. Leveraging the proof theoretic content of the soundness and completeness of sequent calculus and natural deduction presentations of linear logic, we develop the first mutually inverse and fully abstract processes-as-functions and functions-as-processes encodings between a polymorphic session π-calculus and a linear formulation of System F. We are then able to derive results of the session calculus from the theory of the Λ-calculus: (1) we obtain a characterisation of inductive and coinductive session types via their algebraic representations in System F; and (2) we extend our results to account for value and process passing, entailing strong normalisation.
- Davide Ancona, Viviana Bono, Mario Bravetti, Joana Campos, Giuseppe Castagna, Pierre-Malo Deniélou, Simon J. Gay, Nils Gesbert, Elena Giachino, Raymond Hu, Einar Broch Johnsen, Francisco Martins, Viviana Mascardi, Fabrizio Montesi, Rumyana Neykova, Nicholas Ng, Luca Padovani, Vasco T. Vasconcelos, and Nobuko Yoshida. 2016. Behavioral types in programming languages. Foundations and Trends in Programming Languages 3, 2-3 (2016), 95–230. DOI:https://doi.org/10.1561/2500000031Google Scholar
Digital Library
- E. S. Bainbridge, Peter J. Freyd, Andre Scedrov, and Philip J. Scott. 1990. Functorial polymorphism. Theor. Comput. Sci. 70, 1 (1990), 35–64. DOI:https://doi.org/10.1016/0304-3975(90)90151-7Google Scholar
Digital Library
- Stephanie Balzer and Frank Pfenning. 2017. Manifest sharing with session types. PACMPL 1, ICFP (2017), 37:1–37:29. DOI:https://doi.org/10.1145/3110281Google Scholar
- Stephanie Balzer, Frank Pfenning, and Bernardo Toninho. 2018. A universal session type for untyped asynchronous communication. In 29th International Conference on Concurrency Theory (CONCUR 2018). (September 4-7, 2018, Beijing, China). 30:1–30:18. DOI:https://doi.org/10.4230/LIPIcs.CONCUR.2018.30Google Scholar
- Andrew Barber. 1996. Dual Intuitionistic Linear Logic. Technical Report ECS-LFCS-96-347. School of Informatics, University of Edinburgh.Google Scholar
- P. N. Benton. 1994. A mixed linear and non-linear logic: Proofs, terms and models (extended abstract). In 8th International Workshop on Computer Science Logic, , (CSL ’94). (Kazimierz, Poland, September 25-30, 1994), Selected Papers. 121–135. DOI:https://doi.org/10.1007/BFb0022251Google Scholar
- Martin Berger, Kohei Honda, and Nobuko Yoshida. 2001. Sequentiality and the -calculus. In Proceedings of TLCA’01.Lecture Notes in Computer Science (LNCS), vol. 2044. Springer, 29–45.Google Scholar
- Martin Berger, Kohei Honda, and Nobuko Yoshida. 2005. Genericity and the pi-calculus. Acta Inf. 42, 2-3 (2005), 83–141. DOI:https://doi.org/10.1007/s00236-005-0175-1Google Scholar
Cross Ref
- Richard Bird and Oege De Moor. 1997. The Algebra of Programming. Prentice-Hall.Google Scholar
Digital Library
- Lars Birkedal, Rasmus Ejlers Møgelberg, and Rasmus Lerchedahl Petersen. 2006. Linear Abadi and Plotkin logic. Logical Methods in Computer Science 2, 5 (2006). DOI:https://doi.org/10.2168/LMCS-2(5:2)2006Google Scholar
- Luís Caires, Jorge A. Pérez, Frank Pfenning, and Bernardo Toninho. 2013. Behavioral polymorphism and parametricity in session-based communication. In Programming Languages and Systems - 22nd European Symposium on Programming, ESOP 2013, Held as Part of the European Joint Conferences on Theory and Practice of Software, (ETAPS 2013). (Rome, Italy, March 16-24, 2013).. 330–349. DOI:https://doi.org/10.1007/978-3-642-37036-6_19Google Scholar
- Luís Caires and Frank Pfenning. 2010. Session types as intuitionistic linear propositions. In 21th International Conference on Concurrency Theory, CONCUR 2010), (Paris, France, August 31-September 3, 2010).Lecture Notes in Computer Science (LNCS), vol. 6269. Springer, 222–236. DOI:https://doi.org/10.1007/978-3-642-15375-4_16Google Scholar
Cross Ref
- Luís Caires, Frank Pfenning, and Bernardo Toninho. 2016. Linear logic propositions as session types. Mathematical Structures in Computer Science 26, 3 (2016), 367–423.Google Scholar
Cross Ref
- Marco Carbone, Sam Lindley, Fabrizio Montesi, Carsten Schürmann, and Philip Wadler. 2016. Coherence generalises duality: A logical explanation of multiparty session types. In 27th International Conference on Concurrency Theory (CONCUR 2016). (August 23-26, 2016, Québec City, Canada). 33:1–33:15. DOI:https://doi.org/10.4230/LIPIcs.CONCUR.2016.33Google Scholar
- Marco Carbone, Fabrizio Montesi, Carsten Schürmann, and Nobuko Yoshida. 2015. Multiparty session types as coherence proofs. In 26th International Conference on Concurrency Theory (CONCUR 2015). (Madrid, Spain, September 1-4, 2015). 412–426. DOI:https://doi.org/10.4230/LIPIcs.CONCUR.2015.412Google Scholar
- Ornela Dardha, Elena Giachino, and Davide Sangiorgi. 2012. Session types revisited. In PPDP ’12: Proceedings of the 14th Symposium on Principles and Practice of Declarative Programming. ACM, New York, NY, USA, 139–150. DOI:https://doi.org/10.1145/2370776.2370794Google Scholar
Digital Library
- Romain Demangeon, Daniel Hirschkoff, and Davide Sangiorgi. 2009. Mobile processes and termination. In Semantics and Algebraic Specification. 250–273.Google Scholar
- Romain Demangeon, Daniel Hirschkoff, and Davide Sangiorgi. 2010. Termination in higher-order concurrent calculi. J. Log. Algebr. Program. 79, 7 (2010), 550–577.Google Scholar
Cross Ref
- Simon Fowler. 2020. Model-view-update-communicate: Session types meet the Elm architecture. In 34th European Conference on Object-Oriented Programming E 2020, (November 15-17, 2020, Berlin, Germany) (Virtual Conference) (LIPIcs), vol. 166. Schloss Dagstuhl - Leibniz-Zentrum für Informatik, 14:1–14:28. DOI:https://doi.org/10.4230/LIPIcs.ECOOP.2020.14Google Scholar
- Simon Fowler, Sam Lindley, J. Garrett Morris, and Sára Decova. 2019. Exceptional asynchronous session types: Session types without tiers. In Proceedings of the ACM Symposium on Programming Languages 3, (POPL2019), 28:1–28:29. DOI:https://doi.org/10.1145/3290341Google Scholar
Digital Library
- Simon Gay and Antonio Ravara (Eds.). 2017. Behavioural Types: From Theory to Tools. River Publishers.Google Scholar
- Gerhard Gentzen. 1935. Untersuchungen über das logische Schließen. Mathematische Zeitschrift 39 (1935), 176–210.Google Scholar
Cross Ref
- Jean-Yves Girard. 1987. Linear logic. Theor. Comput. Sci. 50 (1987), 1–102. DOI:https://doi.org/10.1016/0304-3975(87)90045-4Google Scholar
Digital Library
- Jean-Yves Girard, Yves Lafont, and Paul Taylor. 1989. Proofs and Types. Cambridge University Press.Google Scholar
- Daniele Gorla. 2010. Towards a unified approach to encodability and separation results for process calculi. Inf. Comput. 208, 9 (2010), 1031–1053.Google Scholar
Digital Library
- Daniele Gorla and Uwe Nestmann. 2016. Full abstraction for expressiveness: History, myths and facts. Mathematical Structures in Computer Science 26, 4 (2016), 639–654.Google Scholar
Cross Ref
- Ryu Hasegawa. 1994. Categorical data types in parametric polymorphism. Mathematical Structures in Computer Science 4, 1 (1994), 71–109. DOI:https://doi.org/10.1017/S0960129500000372Google Scholar
Cross Ref
- Kohei Honda. 1993. Types for dyadic interaction. In 4th International Conference on Concurrency Theory (CONCUR ’93), (Hildesheim, Germany, August 23-26, 1993),. 509–523. DOI:https://doi.org/10.1007/3-540-57208-2_35Google Scholar
Cross Ref
- Kohei Honda. 2012. Session types and distributed computing. In 39th International Colloquium on Automata, Languages, and Programming - , (ICALP 2012), (Warwick, UK, July 9-13, 2012), Part II. 23. DOI:https://doi.org/10.1007/978-3-642-31585-5_4Google Scholar
Digital Library
- Kohei Honda, Vasco Thudichum Vasconcelos, and Makoto Kubo. 1998. Language primitives and type discipline for structured communication-based programming. In Programming Languages and Systems - ESOP’98, 7th European Symposium on Programming, held as part of the European Joint Conferences on the Theory and Practice of Software, (ETAPS’98), (Lisbon, Portugal, March 28 - April 4, 1998),. 122–138. DOI:https://doi.org/10.1007/BFb0053567Google Scholar
- Kohei Honda, Nobuko Yoshida, and Marco Carbone. 2008. Multiparty asynchronous session types. In 35th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2008), (San Francisco, California, January 7-12, 2008). 273–284. DOI:https://doi.org/10.1145/1328438.1328472Google Scholar
Digital Library
- Keigo Imai, Rumyana Neykova, Nobuko Yoshida, and Shoji Yuen. 2020. Multiparty session programming with global protocol combinators. In 34th European Conference on Object-Oriented Programming. 9:1–9:30. DOI:https://doi.org/10.4230/LIPIcs.ECOOP.2020.9Google Scholar
- Keigo Imai, Nobuko Yoshida, and Shoji Yuen. 2017. Session-Ocaml: A session-based library with polarities and lenses. In Coordination Models and Languages - 19th IFIP WG 6.1 International Conference (COORDINATION 2017,) held as part of the 12th International Federated Conference on Distributed Computing Techniques, DisCoTec 2017, (Neuchâtel, Switzerland, June 19-22, 2017),. 99–118. DOI:https://doi.org/10.1007/978-3-319-59746-1_6Google Scholar
Cross Ref
- Keigo Imai, Nobuko Yoshida, and Shoji Yuen. 2019. Session-Ocaml: A session-based library with polarities and lenses. scico (2019), 1–50.Google Scholar
- Dimitrios Kouzapas, Jorge A. Pérez, and Nobuko Yoshida. 2016. On the relative expressiveness of higher-order session processes. In Programming Languages and Systems - 25th European Symposium on Programming, (ESOP 2016), held as part of the European Joint Conferences on Theory and Practice of Software (ETAPS 2016), (Eindhoven, The Netherlands, April 2-8, 2016), s. 446–475. DOI:https://doi.org/10.1007/978-3-662-49498-1_18Google Scholar
Digital Library
- Sam Lindley and J. Garrett Morris. 2015. A semantics for propositions as sessions. In Programming Languages and Systems - 24th European Symposium on Programming (ESOP 2015), held as part of the European Joint Conferences on Theory and Practice of Software (ETAPS 2015), (London, UK, April 11-18, 2015). 560–584. DOI:https://doi.org/10.1007/978-3-662-46669-8_23Google Scholar
Cross Ref
- Sam Lindley and J. Garrett Morris. 2016. Talking bananas: Structural recursion for session types. In Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming (ICFP 2016), (Nara, Japan, September 18-22, 2016). 434–447. DOI:https://doi.org/10.1145/2951913.2951921Google Scholar
Digital Library
- Sam Lindley and J. Garrett Morris. 2017. Lightweight functional session types. In Behavioural Types: From Theory to Tools. River Publishers.Google Scholar
- John Maraist, Martin Odersky, David N. Turner, and Philip Wadler. 1999. Call-by-name, call-by-value, call-by-need and the linear lambda calculus. Theor. Comput. Sci. 228, 1-2 (1999), 175–210. DOI:https://doi.org/10.1016/S0304-3975(98)00358-2Google Scholar
Digital Library
- N. P. Mendler. 1987. Recursive types and type constraints in second-order lambda calculus. In Symposium on Logic in Computer Science (LICS ’87) (Ithaca, New York, , June 22-25, 1987). 30–36.Google Scholar
- Robin Miler. 2001. Speech on receiving an Honorary Degree from the University of Bologna. www.cs.unibo.it/icalp/Lauree_milner.html.Google Scholar
- Robin Milner. 1992. Functions as processes. Mathematical Structures in Computer Science 2, 2 (1992), 119–141. DOI:https://doi.org/10.1017/S0960129500001407Google Scholar
Cross Ref
- Robin Milner, Joachim Parrow, and David Walker. 1992. A calculus of mobile processes, I and II. Inf. Comput. 100, 1 (1992), 1–77.Google Scholar
Digital Library
- Uwe Nestmann and Benjamin C. Pierce. 2000. Decoding choice encodings. Information and Computation 163, 1 (2000), 1–59. DOI:https://doi.org/10.1006/inco.2000.2868Google Scholar
Digital Library
- Yo Ohta and Masahito Hasegawa. 2006. A terminating and confluent linear lambda calculus. In 17th International Conferenceon Term Rewriting and Applications, , (RTA 2006), (Seattle, WA, , August 12-14, 2006),. 166–180. DOI:https://doi.org/10.1007/11805618_13Google Scholar
Digital Library
- Dominic Orchard and Nobuko Yoshida. 2017. Session types with linearity in Haskell. In Behavioural Types: From Theory to Tools. River Publishers.Google Scholar
- Dominic A. Orchard and Nobuko Yoshida. 2016. Effects as sessions, sessions as effects. In 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2016), (St. Petersburg, FL, , January 20-22, 2016). 568–581. DOI:https://doi.org/10.1145/2837614.2837634Google Scholar
- Luca Padovani. 2017. Context-free session type inference. In Programming Languages and Systems - 26th European Symposium on Programming, (ESOP 2017), held as part of the European Joint Conferences on Theory and Practice of Software (ETAPS 2017), (Uppsala, Sweden, April 22-29, 2017),. 804–830. DOI:https://doi.org/10.1007/978-3-662-54434-1_30Google Scholar
Digital Library
- Joachim Parrow. 2008. Expressiveness of process algebras. In Proceedings of the LIX Colloquium on Emerging Trends in Concurrency Theory (LIX 2006),Electronic Notes in Theoretical Computer Science 209 (2008), 173–186. DOI:https://doi.org/10.1016/j.entcs.2008.04.011.Google Scholar
Digital Library
- Jorge A. Pérez, Luís Caires, Frank Pfenning, and Bernardo Toninho. 2012. Linear logical relations for session-based concurrency. In Programming Languages and Systems - 21st European Symposium on Programming (ESOP 2012), held as part of the European Joint Conferences on Theory and Practice of Software (ETAPS 2012), (Tallinn, Estonia, March 24 - April 1, 2012).. 539–558. DOI:https://doi.org/10.1007/978-3-642-28869-2_27Google Scholar
Digital Library
- Jorge A. Pérez, Luís Caires, Frank Pfenning, and Bernardo Toninho. 2014. Linear logical relations and observational equivalences for session-based concurrency. Inf. Comput. 239 (2014), 254–302. DOI:https://doi.org/10.1016/j.ic.2014.08.001Google Scholar
Digital Library
- Kirstin Peters. 2019. Comparing process calculi using encodings. In Proceedings of the Combined 26th International Workshop on Expressiveness in Concurrency and 16th Workshop on Structural Operational Semantics (EXPRESS/SOS 2019) (Amsterdam, The Netherlands, 26th August 2019) (EPTCS), , vol. 300. 19–38. DOI:https://doi.org/10.4204/EPTCS.300.2Google Scholar
Cross Ref
- Frank Pfenning and Dennis Griffith. 2015. Polarized substructural session types. In 18th International Conference Foundations of Software Science and Computation Structures (FoSSaCS 2015), held as Part of the European Joint Conferences on Theory and Practice of Software (ETAPS 2015), (London, UK, April 11-18, 2015).. 3–22. DOI:https://doi.org/10.1007/978-3-662-46678-0_1Google Scholar
Cross Ref
- Benjamin C. Pierce. 2004. Advanced Topics in Types and Programming Languages. The MIT Press.Google Scholar
Digital Library
- Benjamin C. Pierce and Davide Sangiorgi. 1996. Typing and subtyping for mobile processes. Mathematical Structures in Computer Science 6, 5 (1996), 409–453.Google Scholar
Cross Ref
- Benjamin C. Pierce and Davide Sangiorgi. 2000. Behavioral equivalence in the polymorphic pi-calculus. J. ACM 47, 3 (2000), 531–584. DOI:https://doi.org/10.1145/337244.337261Google Scholar
Digital Library
- Benhamin C. Pierce and David N. Turner. 1990. Pict Programming Language homepage. https://www.cis.upenn.edu/ bcpierce/papers/pict/Html/Pict.html.Google Scholar
- Gordon D. Plotkin and Martín Abadi. 1993. A logic for parametric polymorphism. In International Conference on Typed Lambda Calculi and Applications (TLCA ’93), (Utrecht, The Netherlands, March 16-18, 1993),. 361–375. DOI:https://doi.org/10.1007/BFb0037118Google Scholar
- John C. Reynolds. 1983. Types, abstraction and parametric polymorphism. In Information Processing 83, Proceedings of the IFIP 9th World Computer Congress (Paris, France, September 19-23, 1983).513–523.Google Scholar
- John C. Reynolds and Gordon D. Plotkin. 1993. On functors expressible in the polymorphic typed lambda calculus. Inf. Comput. 105, 1 (1993), 1–29. DOI:https://doi.org/10.1006/inco.1993.1037Google Scholar
Digital Library
- Davide Sangiorgi. 1993. From pi-calculus to higher-order pi-calculus - and back. In TAPSOFT’93: Theory and Practice of Software Development, International Joint Conference (CAAP/FASE), (Orsay, France, April 13-17, 1993),. 151–166. DOI:https://doi.org/10.1007/3-540-56610-4_62Google Scholar
- Davide Sangiorgi. 1993. An investigation into functions as processes. In 9th International Conference on Mathematical Foundations of Programming Semantics, , (New Orleans, LA, April 7-10, 1993),. 143–159. DOI:https://doi.org/10.1007/3-540-58027-1_7Google Scholar
Digital Library
- Davide Sangiorgi. 1996. Pi-calculus, internal mobility, and agent-passing calculi. Theor. Comput. Sci. 167, 1&2 (1996), 235–274.Google Scholar
Digital Library
- Davide Sangiorgi. 2000. Lazy functions and mobile processes. In Proof, Language, and Interaction, Essays in Honour of Robin Milner. 691–720.Google Scholar
- Davide Sangiorgi and David Walker. 2001. The Pi-Calculus - A Theory of Mobile Processes. Cambridge University Press.Google Scholar
Digital Library
- Davide Sangiorgi and Xian Xu. 2014. Trees from functions as processes. In 25th International Conference on Concurrency Theory - , (CONCUR 2014), (Rome, Italy, September 2-5, 2014).. 78–92. DOI:https://doi.org/10.1007/978-3-662-44584-6_7Google Scholar
Cross Ref
- Alceste Scalas, Ornela Dardha, Raymond Hu, and Nobuko Yoshida. 2017. A linear decomposition of multiparty sessions for safe distributed programming. In 31st European Conference on Object-Oriented Programming (ECOOP 2017, June 19-23, 2017, Barcelona, Spain). 24:1–24:31. DOI:https://doi.org/10.4230/LIPIcs.ECOOP.2017.24Google Scholar
- Alceste Scalas and Nobuko Yoshida. 2016. Lightweight session programming in Scala. In 30th European Conference on Object-Oriented Programming (LIPIcs). Dagstuhl, 21:1–21:28. DOI:https://doi.org/10.4230/LIPIcs.ECOOP.2016.21Google Scholar
- Miguel Silva, Mário Florido, and Frank Pfenning. 2016. Non-blocking concurrent imperative programming with session types. In 4th International Workshop on Linearity (LINEARITY 2016), (Porto, Portugal, 25 June 2016) (EPTCS), , vol. 238. 64–72. DOI:https://doi.org/10.4204/EPTCS.238.7Google Scholar
- Bernardo Toninho, Luís Caires, and Frank Pfenning. 2012. Functions as session-typed processes. In 15th International Conference Foundations of Software Science and Computational Structures - FOSSACS 2012), held as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2012, (Tallinn, Estonia, March 24 - April 1, 2012).. 346–360. DOI:https://doi.org/10.1007/978-3-642-28729-9_23Google Scholar
Digital Library
- Bernardo Toninho, Luís Caires, and Frank Pfenning. 2013. Higher-order processes, functions, and sessions: A monadic integration. In Programming Languages and Systems - 22nd European Symposium on Programming, (ESOP 2013), held as part of the European Joint Conferences on Theory and Practice of Software, (ETAPS 2013), (Rome, Italy, March 16-24, 2013).. 350–369. DOI:https://doi.org/10.1007/978-3-642-37036-6_20Google Scholar
Digital Library
- Bernardo Toninho, Luís Caires, and Frank Pfenning. 2014. Corecursion and non-divergence in session-typed processes. In Trustworthy Global Computing - 9th International Symposium, (TGC 2014), (Rome, Italy, September 5-6, 2014). Revised Selected Papers. 159–175. DOI:https://doi.org/10.1007/978-3-662-45917-1_11Google Scholar
- Bernardo Toninho and Nobuko Yoshida. 2018. On polymorphic sessions and functions - A tale of two (fully abstract) encodings. In Programming Languages and Systems - 27th European Symposium on Programming (ESOP 2018), held as part of the European Joint Conferences on Theory and Practice of Software (ETAPS 2018), (Thessaloniki, Greece, April 14-20, 2018),. 827–855. DOI:https://doi.org/10.1007/978-3-319-89884-1_29Google Scholar
Cross Ref
- Bernardo Toninho and Nobuko Yoshida. 2019. Polymorphic session processes as morphisms. In The Art of Modelling Computational Systems: A Journey from Logic and Concurrency to Security and Privacy - Essays Dedicated to Catuscia Palamidessi on the Occasion of Her 60th Birthday. 101–117. DOI:https://doi.org/10.1007/978-3-030-31175-9_7Google Scholar
- David Turner. 1996. The Polymorphic Pi-Calculus: Theory and Implementation. Technical Report ECS-LFCS-96-345. School of Informatics, University of Edinburgh.Google Scholar
- Philip Wadler. 2014. Propositions as sessions. J. Funct. Program. 24, 2-3 (2014), 384–418.Google Scholar
Cross Ref
- Max Willsey, Rokhini Prabhu, and Frank Pfenning. 2016. Design and implementation of concurrent C0. In 4th International Workshop on Linearity (LINEARITY 2016) (Porto, Portugal, 25 June 2016 (EPTCS)), vol. 238. 73–82. DOI:https://doi.org/10.4204/EPTCS.238.8Google Scholar
- Nobuko Yoshida, Martin Berger, and Kohei Honda. 2004. Strong normalisation in the pi-calculus. Inf. Comput. 191, 2 (2004), 145–202.Google Scholar
Digital Library
- Jianzhou Zhao, Qi Zhang, and Steve Zdancewic. 2010. Relational parametricity for a polymorphic linear lambda calculus. In 8th Asian Symposium on Programming Languages and Systems - , (APLAS 2010), (Shanghai, China, November 28 - December 1, 2010).. 344–359. DOI:https://doi.org/10.1007/978-3-642-17164-2_24Google Scholar
Cross Ref
Index Terms
On Polymorphic Sessions and Functions: A Tale of Two (Fully Abstract) Encodings
Recommendations
On the Preciseness of Subtyping in Session Types
PPDP '14: Proceedings of the 16th International Symposium on Principles and Practice of Declarative ProgrammingSubtyping in concurrency has been extensively studied since early 1990s as one of the most interesting issues in type theory. The correctness of subtyping relations has been usually provided as the soundness for type safety. The converse direction, the ...
Effects as sessions, sessions as effects
POPL '16: Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming LanguagesEffect and session type systems are two expressive behavioural type systems. The former is usually developed in the context of the lambda-calculus and its variants, the latter for the pi-calculus. In this paper we explore their relative expressive ...
Game semantics for a polymorphic programming language
This article presents a game semantics for higher-rank polymorphism, leading to a new model of the calculus System F, and a programming language which extends it with mutable variables. In contrast to previous game models of polymorphism, it is quite ...






Comments