skip to main content
article

A bisimulation for type abstraction and recursion

Published:01 October 2007Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. Abramsky, S. 1990. The lazy lambda calculus. In Research Topics in Functional Programming, D. A. Turner, Ed. Addison-Wesley, Reading, MA, 65--117. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle Scholar
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle Scholar
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. Gordon, A. D., and Rees, G. D. 1995. Bisimilarity for F<:. Draft.Google ScholarGoogle Scholar
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. Howe, D. J. 1996. Proving congruence of bisimulation in functional programming languages. Info. Comput. 124, 2, 103--112. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. Koutavas, V., and Wand, M. 2006a. Bisimulations for untyped imperative objects. In Proceedings of the 15th European Symposium on Programming. 146--161. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle Scholar
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. Milner, R. 1980. A Calculus of Communicating Systems. Number 92 in Lecture Notes in Computer Science. Springer-Verlag, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Milner, R. 1989. Communication and Concurrency. Prentice Hall, Englewood Cliffs, NJ. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Milner, R. 1999. Communicating and Mobile Systems: The π-Calculus. Cambridge University Press, Cambridge, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Mitchell, J. C. 1996. Foundations for Programming Languages. MIT Press, Cambridge, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Moggi, E. 1991. Notions of computation and monads. Info. Comput. 93, 1, 55--92. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Morris, Jr., J. H. 1973a. Protection in programming languages. Commun. ACM 16, 1, 15--21. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  34. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  35. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  36. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  37. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  38. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  39. Sangiorgi, D. 1992. Expressing mobility in process algebras: First-order and higher-order paradigm. Ph.D. dissertation, University of Edinburgh, Edinburgh, Scotland.Google ScholarGoogle Scholar
  40. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  41. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  42. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A bisimulation for type abstraction and recursion

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader