Abstract
We present a bisimulation method for proving the contextual equivalence of packages in λ-calculus with full existential and recursive types. Unlike traditional 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 TT-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.
- Abadi, M., and Fournet, C. 2001. Mobile values, new names, and secure communication. In Proceedings of the 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM, New York, 104--115. Google ScholarDigital Library
- Abadi, M., and Gordon, A. D. 1998. A bisimulation method for cryptographic protocols. Nordic Journal of Computing 5, 267--303. (Preliminary version appeared in Proceedings of the 7th European Symposium on Programming. Lecture Notes in Computer Science, vol. 1381, Springer-Verlag, New York, pp. 12--26, 1998). Google ScholarDigital Library
- Abadi, M., and Gordon, A. D. 1999. A calculus for cryptographic protocols: The spi calculus. Information and Computation 148, 1, 1--70. (Preliminary version appeared in Proceedings of the 4th ACM Conference on Computer and Communications Security, ACM, New York, pp. 36--47, 1997). Google ScholarDigital Library
- Abramsky, S. 1990. The lazy lambda calculus. In Research Topics in Functional Programming, D. A. Turner, Ed. Addison-Wesley, Reading, MA, 65--117. Google ScholarDigital Library
- Ahmed, A. 2006. Step-indexed syntactic logical relations for recursive and quantified types. In Proceedings of the 15th European Symposium on Programming. 69--83. Google ScholarDigital Library
- Ahmed, A., Appel, A. W., and Virga, R. 2003. An indexed model of impredicative polymorphism and mutable references. http://www.cs.princeton.edu/~amal/papers/impred.pdf.Google Scholar
- Appel, A. W., and McAllester, D. 2001. An indexed model of recursive types for foundational proof-carrying code. ACM Trans. Prog. Lang. Syst. 23, 5, 657--683. Google ScholarDigital Library
- Berger, M., Honda, K., and Yoshida, N. 2003. Genericity and the pi-calculus. In Proceedings of the Foundations of Software Science and Computation Structures. Lecture Notes in Computer Science, vol. 2620. Springer-Verlag, New York, 103--119. Google ScholarDigital Library
- Bierman, G. M., Pitts, A. M., and Russo, C. V. 2000. Operational properties of Lily, a polymorphic linear lambda calculus with recursion. In Higher Order Operational Techniques in Semantics. Electronic Notes in Theoretical Computer Science, vol. 41. Elsevier Science, Amsterdam, The Netherlands.Google Scholar
- Birkedal, L., and Harper, R. 1999. Relational interpretations of recursive types in an operational setting. Info. Comput. 155, 1--2, 3--63. (Summary appeared in Theoretical Aspects of Computer Software, Lecture Notes in Computer Science, vol. 1281, Springer-Verlag, New York, pp. 458--490, 1997). Google ScholarDigital Library
- Boreale, M., De Nicola, R., and Pugliese, R. 2002. Proof techniques for cryptographic processes. SIAM J. Comput. 31, 3, 947--986. (Preliminary version appeared in Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science, pp. 157--166, 1999). Google ScholarDigital Library
- Borgström, J., and Nestmann, U. 2002. On bisimulations for the spi calculus. In Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology. Lecture Notes in Computer Science, vol. 2422. Springer-Verlag, New York, 287--303. Google ScholarDigital Library
- Bruce, K. B., Cardelli, L., and Pierce, B. C. 1999. Comparing object encodings. Info. Comput. 155, 1--2, 108--133. (Extended abstract appeared in Theoretical Aspects of Computer Software, vol. 1281, Springer-Verlag, New York, pp. 415--338, 1997). Google ScholarDigital Library
- Crary, K., and Harper, R. 2007. Syntactic logical relations for polymorphic and recursive types. In Computation, Meaning, and Logic: Articles Dedicated to Gordon Plotkin. Electronic Notes in Theoretical Computer Science, vol. 172. Elsevier Science, Amsterdam, The Netherlands, 259--299. Google ScholarDigital Library
- Gordon, A. D. 1995a. Bisimilarity as a theory of functional programming. mini-course. http://research.microsoft.com/~adg/Publications/BRICS-NS-95-3.dvi.gz.Google Scholar
- Gordon, A. D. 1995b. Operational equivalences for untyped and polymorphic object calculi. In Higher Order Operational Techniques in Semantics, Cambridge University Press, Cambridge, UK, 9--54. Google ScholarDigital Library
- Gordon, A. D., and Rees, G. D. 1995. Bisimilarity for F<:. Draft.Google Scholar
- Gordon, A. D., and Rees, G. D. 1996. Bisimilarity for a first-order calculus of objects with subtyping. In Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM, New York, 386--395. Google ScholarDigital Library
- Heintze, N., and Riecke, J. G. 1998. The SLam calculus: Programming with secrecy and integrity. In Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM, New York. Google ScholarDigital Library
- Howe, D. J. 1996. Proving congruence of bisimulation in functional programming languages. Info. Comput. 124, 2, 103--112. Google ScholarDigital Library
- Hughes, D. J. 1997. Games and definability for System F. In Proceedings of the 12th Annual IEEE Symposium on Logic in Computer Science. IEEE Computer Society Press, Los Alamitos, CA, 76--86. Google ScholarDigital Library
- Koutavas, V., and Wand, M. 2006a. Bisimulations for untyped imperative objects. In Proceedings of the 15th European Symposium on Programming. 146--161. Google ScholarDigital Library
- Koutavas, V., and Wand, M. 2006b. Small bisimulations for reasoning about higher-order imperative programs. In Proceedings of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM, New York, 141--152. Google ScholarDigital Library
- Koutavas, V., and Wand, M. 2007. Reasoning about class behavior. In Proceedings of the 2007 International Workshop on Foundations and Developments of Object-Oriented Languages. http://foolwood07.cs.uchicago.edu/program/koutavas.pdf.Google Scholar
- Melliés, P.-A., and Vouillon, J. 2005. Recursive polymorphic types and parametricity in an operational framework. In Proceedings of the 20th Annual IEEE Symposium on Logic in Computer Science. IEEE Computer Society Pres, Los Alamitos, CA, 82--91. Google ScholarDigital Library
- Meyer, A. R., and Sieber, K. 1988. Towards fully abstract semantics for local variables: Preliminary report. In Proceedings of the 15th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM, New York, 191--203. Google ScholarDigital Library
- Milner, R. 1980. A Calculus of Communicating Systems. Number 92 in Lecture Notes in Computer Science. Springer-Verlag, New York. Google ScholarDigital Library
- Milner, R. 1989. Communication and Concurrency. Prentice Hall, Englewood Cliffs, NJ. Google ScholarDigital Library
- Milner, R. 1999. Communicating and Mobile Systems: The π-Calculus. Cambridge University Press, Cambridge, MA. Google ScholarDigital Library
- Mitchell, J. C. 1996. Foundations for Programming Languages. MIT Press, Cambridge, MA. Google ScholarDigital Library
- Moggi, E. 1991. Notions of computation and monads. Info. Comput. 93, 1, 55--92. Google ScholarDigital Library
- Morris, Jr., J. H. 1973a. Protection in programming languages. Commun. ACM 16, 1, 15--21. Google ScholarDigital Library
- Morris, Jr., J. H. 1973b. Types are not sets. In Proceedings of the 1st Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, ACM, New York, 120--124. Google ScholarDigital Library
- Pierce, B. C., and Sangiorgi, D. 2000. Behavioral equivalence in the polymorphic pi-calculus. J. ACM 47, 3, 531--586. (Extended abstract appeared in Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 1997, pp. 531--584). Google ScholarDigital Library
- Pitts, A. 2005. Typed operational reasoning. In Advanced Topics in Types and Programming Languages, B. C. Pierce, Ed. MIT Press, Cambridge, MA, Chapter 7, 245--289. (Preliminary version appeared as Existential Types: Logical Relations and Operational Equivalence in Automata, Languages and Programming, Lecture Notes in Computer Science, vol. 1443, Springer-Verlag, pp. 309--326, 1998). Google ScholarDigital Library
- Pitts, A. M. 2000. Parametric polymorphism and operational equivalence. Math. Struct. Comput. Sci. 10, 321--359. (Preliminary version appeared in HOOTS II Second Workshop on Higher-Order Operational Techniques in Semantics, Electronic Notes in Theoretical Computer Science, vol. 10, 1998). Google ScholarDigital Library
- Pitts, A. M., and Stark, I. 1993. Observable properties of higher order functions that dynamically create local names, or: What's new? In Proceedings of the Symposium on Mathematical Foundations of Computer Science. Lecture Notes in Computer Science, vol. 711. Springer-Verlag, New York, 122--141. Google ScholarDigital Library
- Pitts, A. M., and Stark, I. 1998. Operational reasoning for functions with local state. In Higher Order Operational Techniques in Semantics. Cambridge University Press, Cambridge, MA, 227--273. Google ScholarDigital Library
- Sangiorgi, D. 1992. Expressing mobility in process algebras: First-order and higher-order paradigm. Ph.D. dissertation, University of Edinburgh, Edinburgh, Scotland.Google Scholar
- Sangiorgi, D., Kobayashi, N., and Sumii, E. 2007. Environmental bisimulations for higher-order languages. In Proceedings of the 22nd Annual IEEE Symposium on Logic in Computer Science. IEEE Computer Society Press, Los Almitos, CA, To appear. (Draft available at http://www.kb.ecei.tohoku.ac.jp/~sumii/pub/infohide6.pdf). Google ScholarDigital Library
- Sumii, E., and Pierce, B. C. 2004. A bisimulation for dynamic sealing. In Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM, New York, 161--172. Google ScholarDigital Library
- Wadler, P. 1989. Theorems for free! In Proceedings of the 4th International Conference on Functional Programming Languages and Computer Architecture. ACM, New York, 347--359. Google ScholarDigital Library
Index Terms
- A bisimulation for type abstraction and recursion
Recommendations
The marriage of bisimulations and Kripke logical relations
POPL '12There has been great progress in recent years on developing effective techniques for reasoning about program equivalence in ML-like languages---that is, languages that combine features like higher-order functions, recursive types, abstract types, and ...
A bisimulation for type abstraction and recursion
POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languagesWe 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 ...
A bisimulation for type abstraction and recursion
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languagesWe 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 ...
Comments