A bisimulation for type abstraction and recursion

We present a sound, complete, and elementary proof method, based on bisimulation, for contextual equivalence in a λ-calculus with full universal, existential, and recursive types. Unlike logical relations (either semantic or syntactic), our development is elementary, using only sets and relations and avoiding advanced machinery such as domain theory, admissibility, and ΤΤ-closure. Unlike other bisimulations, ours is complete even for existential types. The key idea is to consider sets of relations---instead of just relations---as bisimulations.

[1]  Andrew D. Gordon Operational equivalences for untyped and polymorphic object calculi , 1999 .

[2]  Andrew M. Pitts,et al.  Higher order operational techniques in semantics , 1999 .

[3]  Andrew D. Gordon Bisimilarity as a theory of functional programming , 1995, MFPS.

[4]  Andrew M. Pitts,et al.  Observable Properties of Higher Order Functions that Dynamically Create Local Names, or What's new? , 1993, MFCS.

[5]  Davide Sangiorgi,et al.  Behavioral equivalence in the polymorphic pi-calculus , 2000, JACM.

[6]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[7]  Robin Milner,et al.  The Problem of "Weak Bisimulation up to" , 1992, CONCUR.

[8]  Luca Cardelli,et al.  Comparing Object Encodings , 1997, TACS.

[9]  Robin Milner,et al.  Communicating and mobile systems - the Pi-calculus , 1999 .

[10]  Eugenio Moggi,et al.  Notions of Computation and Monads , 1991, Inf. Comput..

[11]  Joseph E. Stoy Proceedings of the fourth international conference on Functional programming languages and computer architecture , 1989 .

[12]  Lars Birkedal,et al.  Relational Interpretations of Recursive Types in an Operational Setting , 1999, Inf. Comput..

[13]  Philip Wadler,et al.  Theorems for free! , 1989, FPCA.

[14]  Uwe Nestmann,et al.  On Bisimulations for the Spi Calculus , 2002, AMAST.

[15]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[16]  Martín Abadi,et al.  A calculus for cryptographic protocols: the spi calculus , 1997, CCS '97.

[17]  Dan Suciu,et al.  Journal of the ACM , 2006 .

[18]  Joyce L. Vedral,et al.  Functional Programming Languages and Computer Architecture , 1989, Lecture Notes in Computer Science.

[19]  Martín Abadi,et al.  A Calculus for Cryptographic Protocols: The spi Calculus , 1999, Inf. Comput..

[20]  Albert R. Meyer,et al.  Towards a fully abstract semantics for local variables: Preliminary report , 1988 .

[21]  Andrew M. Pitts Existential Types: Logical Relations and Operational Equivalence , 1998, ICALP.

[22]  Mitchell Wand,et al.  Bisimulations for Untyped Imperative Objects , 2006, ESOP.

[23]  I. Stark,et al.  Operational reasoning for functions with local state , 1999 .

[24]  Jérôme Vouillon,et al.  Recursive polymorphic types and parametricity in an operational framework , 2005, 20th Annual IEEE Symposium on Logic in Computer Science (LICS' 05).

[25]  James H. Morris Protection in programming languages , 1973, CACM.

[26]  Andrew W. Appel,et al.  An indexed model of recursive types for foundational proof-carrying code , 2001, TOPL.

[27]  Mitchell Wand,et al.  Small bisimulations for reasoning about higher-order imperative programs , 2006, POPL '06.

[28]  Davide Sangiorgi,et al.  Expressing mobility in process algebras : first-order and higher-order paradigms , 1993 .

[29]  S. Abramsky The lazy lambda calculus , 1990 .

[30]  Nobuko Yoshida,et al.  Genericity and the pi-Calculus , 2003, FoSSaCS.

[31]  Andrew W. Appel,et al.  An Indexed Model of Impredicative Polymorphism and Mutable References , 2003 .

[32]  Martín Abadi,et al.  A Bisimulation Method for Cryptographic Protocols , 1998, Nord. J. Comput..

[33]  Jon G. Riecke,et al.  The SLam calculus: programming with secrecy and integrity , 1998, POPL '98.

[34]  James H. Morris,et al.  Types are not sets , 1973, POPL.

[35]  Davide Sangiorgi,et al.  Communicating and Mobile Systems: the π-calculus, , 2000 .

[36]  Lars Birkedal,et al.  Relational Interpretations of Recursive Types in an operational Setting (Summary) , 1997, TACS.

[37]  M. Wand,et al.  Reasoning About Class Behavior , 2006 .

[38]  References , 1971 .

[39]  Karl Crary,et al.  Syntactic Logical Relations for Polymorphic and Recursive Types , 2007, Computation, Meaning, and Logic.

[40]  Douglas J. Howe Proving Congruence of Bisimulation in Functional Programming Languages , 1996, Inf. Comput..

[41]  Andrew D. Gordon,et al.  Bisimilarity for a first-order calculus of objects with subtyping , 1996, POPL '96.

[42]  Davide Sangiorgi,et al.  Environmental Bisimulations for Higher-Order Languages , 2007, 22nd Annual IEEE Symposium on Logic in Computer Science (LICS 2007).

[43]  Andrew M. Pitts,et al.  Parametric polymorphism and operational equivalence , 2000, Mathematical Structures in Computer Science.

[44]  Amal Ahmed,et al.  Step-Indexed Syntactic Logical Relations for Recursive and Quantified Types , 2006, ESOP.

[45]  Rocco De Nicola,et al.  Proof techniques for cryptographic processes , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

[46]  John C. Mitchell,et al.  Foundations for programming languages , 1996, Foundation of computing series.

[47]  Benjamin C. Pierce,et al.  A bisimulation for dynamic sealing , 2007, Theor. Comput. Sci..

[48]  Martín Abadi,et al.  Mobile values, new names, and secure communication , 2001, POPL '01.

[49]  Dominic J. D. Hughes Games and definability for system F , 1997, Proceedings of Twelfth Annual IEEE Symposium on Logic in Computer Science.

[50]  Claudio V. Russo,et al.  Operational Properties of Lily, a Polymorphic Linear Lambda Calculus with Recursion , 2001, HOOTS.