Logical bisimulations and functional languages

Developing a theory of bisimulation in higher-order languages can be hard. Particularly challenging can be the proof of congruence and, related to this, enhancements of the bisimulation proof method with "up-to context" techniques. We present logical bisimulations, a form of bisimulation for higher-order languages, in which the bisimulation clause is somehow reminiscent of logical relations. We consider purely functional languages, in particular untyped call-by-name and call-by-value lambda-calculi, and, in each case: we present the basic properties of logical bisimilarity, including congruence; we show that it coincides with contextual equivalence; we develop some up-to techniques, including up-to context, as examples of possible enhancements of the associated bisimulation method.

[1]  Soren Lassen Relational reasoning about contexts , 1997 .

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

[3]  Davide Sangiorgi,et al.  Environmental Bisimulations for Higher-Order Languages , 2007, LICS.

[4]  Julian Rathke,et al.  Towards a theory of bisimulation for local names , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

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

[6]  Benjamin C. Pierce,et al.  Logical relations for encryption , 2001, Proceedings. 14th IEEE Computer Security Foundations Workshop, 2001..

[7]  Davide Sangiorgi,et al.  Bisimulation in name-passing calculi without matching , 1998, Proceedings. Thirteenth Annual IEEE Symposium on Logic in Computer Science (Cat. No.98CB36226).

[8]  Matthew Hennessy,et al.  A theory of weak bisimulation for core CML , 1996, ICFP '96.

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

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

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

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

[13]  James H. Morris,et al.  Lambda-calculus models of programming languages. , 1969 .

[14]  Thomas T. Hildebrandt,et al.  Extending Howe's Method to Early Bisimulations for Typed Mobile Embedded Resources with Local Names , 2005, FSTTCS.

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

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

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

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

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

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

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

[22]  D. Sangiorgi On the origins of Bisimulation, Coinduction, and Fixed Points , 2007 .

[23]  Benjamin C. Pierce,et al.  Logical relation for encryption , 2003 .

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

[25]  Andrew Donald Gordon,et al.  Functional programming and input/output , 1995 .

[26]  Andrew Pitts,et al.  Semantics and Logics of Computation: Operationally-Based Theories of Program Equivalence , 1997 .

[27]  Glynn Winskel,et al.  Relational Reasoning about Functions and Nondeterminism , 1999 .

[28]  David Turner,et al.  Research topics in functional programming , 1990 .

[29]  Sundar Sarukkai,et al.  FSTTCS 2005: Foundations of Software Technology and Theoretical Computer Science, 25th International Conference, Hyderabad, India, December 15-18, 2005, Proceedings , 2005, FSTTCS.

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

[31]  David Sands,et al.  Improvement theory and its applications , 1999 .

[32]  Benjamin C. Pierce,et al.  Advanced Topics In Types And Programming Languages , 2004 .

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

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

[35]  Andrew M. Pitts,et al.  Semantics and Logics of Computation: List of Contributors , 1997 .

[36]  Martín Abadi,et al.  Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2005, Long Beach, California, USA, January 12-14, 2005 , 2005, POPL.

[37]  Davide Sangiorgi,et al.  Behavioral equivalence in the polymorphic pi-calculus , 1997, POPL '97.