skip to main content
research-article
Open Access

Environmental Bisimulations for Probabilistic Higher-order Languages

Published:12 October 2019Publication History
Skip Abstract Section

Abstract

Environmental bisimulations for probabilistic higher-order languages are studied. In contrast with applicative bisimulations, environmental bisimulations are known to be more robust and do not require sophisticated techniques such as Howe’s in the proofs of congruence.

As representative calculi, call-by-name and call-by-value λ-calculus, and a (call-by-value) λ-calculus extended with references (i.e., a store) are considered. In each case, full abstraction results are derived for probabilistic environmental similarity and bisimilarity with respect to contextual preorder and contextual equivalence, respectively. Some possible enhancements of the (bi)simulations, as “up-to techniques,” are also presented.

Probabilities force a number of modifications to the definition of environmental bisimulations in non-probabilistic languages. Some of these modifications are specific to probabilities, others may be seen as general refinements of environmental bisimulations, applicable also to non-probabilistic languages. Several examples are presented, to illustrate the modifications and the differences.

References

  1. Martín Abadi and Andrew D. Gordon. 1998. A bisimulation method for cryptographic protocols. In Proceedings of the European Symposium on Programming (ESOP’98) (LNCS), Chris Hankin (Ed.), Vol. 1381. Springer, 12--26.Google ScholarGoogle Scholar
  2. Samson Abramsky. 1990. The lazy lambda calculus. In Research Topics in Functional Programming, David A. Turner (Ed.). Addison-Wesley, 65--116.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Andrés Aristizábal, Dariusz Biernacki, Sergueï Lenglet, and Piotr Polesiuk. 2016. Environmental bisimulations for delimited-control operators with dynamic prompt generation. In Proceedings of the International Conference on Formal Structures for Computation and Deduction (FSCD’16). 9:1--9:17.Google ScholarGoogle Scholar
  4. Dariusz Biernacki and Sergueï Lenglet. 2013. Environmental bisimulations for delimited-control operators. In Proceedings of the Asian Symposium on Programming Languages and Systems (APLAS’13) (LNCS), Vol. 8301. Springer, 333--348.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Aleš Bizjak. 2016. On Semantics and Applications of Guarded Recursion. Ph.D. Dissertation. Aarhus University.Google ScholarGoogle Scholar
  6. Ales Bizjak and Lars Birkedal. 2015. Step-indexed logical relations for probability. In Proceedings of the International Conference on Foundations of Software Science and Computation Structures (FoSSaCS’15). 279--294.Google ScholarGoogle ScholarCross RefCross Ref
  7. M. Boreale and D. Sangiorgi. 1998. Bisimulation in name-passing calculi without matching. In Proceedings of the ACM/IEEE Symposium on Logic in Computer Science (LICS’98). IEEE Computer Society Press.Google ScholarGoogle Scholar
  8. Raphaëlle Crubillé and Ugo Dal Lago. 2014. On probabilistic applicative bisimulation and call-by-value λ-calculi. In Proceedings of the European Symposium on Programming (ESOP’14) (LNCS), Vol. 8410. Springer, 209--228.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Raphaëlle Crubillé and Ugo Dal Lago. 2015. Metric reasoning about λ-terms: The affine case. In Proceedings of the ACM/IEEE Symposium on Logic in Computer Science (LICS’15). IEEE, 633--644.Google ScholarGoogle Scholar
  10. Raphaëlle Crubillé, Ugo Dal Lago, Davide Sangiorgi, and Valeria Vignudelli. 2015. On applicative similarity, sequentiality, and full abstraction. In Correct System Design, Roland Meyer, André Platzer, and Heike Wehrheim (Eds.). Springer, 65--82.Google ScholarGoogle Scholar
  11. Ugo Dal Lago, Davide Sangiorgi, and Michele Alberti. 2014. On coinductive equivalences for higher-order probabilistic functional programs. In Proceedings of the ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’14). ACM, 297--308.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Ugo Dal Lago and Margherita Zorzi. 2012. Probabilistic operational semantics for the lambda calculus. RAIRO Theor. Info. Appl. 46, 3 (2012), 413--450.Google ScholarGoogle ScholarCross RefCross Ref
  13. Vincent Danos and Russell S. Harmer. 2002. Probabilistic game semantics. ACM Trans. Comput. Logic 3, 3 (2002), 359--382.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Josee Desharnais, Radha Jagadeesan, Vineet Gupta, and Prakash Panangaden. 2002. The metric analogue of weak bisimulation for probabilistic processes. In Proceedings of the ACM/IEEE Symposium on Logic in Computer Science (LICS’02). IEEE Computer Society, 413--422.Google ScholarGoogle ScholarCross RefCross Ref
  15. Josée Desharnais, François Laviolette, and Mathieu Tracol. 2008. Approximate analysis of probabilistic processes: Logic, simulation and games. In Proceedings of the International Conference on Quantitative Evaluation of Systems (QEST’08). IEEE Computer Society, 264--273.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Thomas Ehrhard, Christine Tasson, and Michele Pagani. 2014. Probabilistic coherence spaces are fully abstract for probabilistic PCF. In Proceedings of the ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’14). 309--320.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Andrew D. Gordon. 1995. Bisimilarity as a theory of functional programming. Electr. Notes Theor. Comput. Sci. 1 (1995), 232--252.Google ScholarGoogle ScholarCross RefCross Ref
  18. Jean Goubault-Larrecq. 2015. Full abstraction for non-deterministic and probabilistic extensions of PCF I: The angelic cases. J. Logic. Algebra. Methods Program. 84, 1 (2015), 155--184.Google ScholarGoogle ScholarCross RefCross Ref
  19. Douglas J. Howe. 1996. Proving congruence of bisimulation in functional programming languages. Info. Comput. 124, 2 (1996), 103--112.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Chung-Kil Hur, Derek Dreyer, Georg Neis, and Viktor Vafeiadis. 2012. The marriage of bisimulations and Kripke logical relations. In Proceedings of the ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’12). 59--72.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Guilhem Jaber and Nicolas Tabareau. 2015. Kripke open bisimulation—A marriage of game semantics and operational techniques. In Proceedings of the Asian Symposium on Programming Languages and Systems (APLAS’15). 271--291.Google ScholarGoogle Scholar
  22. Radha Jagadeesan, Corin Pitcher, and James Riely. 2009. Open bisimulation for aspects. T. Aspect-Orient. Softw. Dev. 5 (2009), 72--132.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Alan Jeffrey and Julian Rathke. 1999. Towards a theory of bisimulation for local names. In Proceedings of the ACM/IEEE Symposium on Logic in Computer Science (LICS’99). 56--66.Google ScholarGoogle ScholarCross RefCross Ref
  24. V. Koutavas, P. B. Levy, and E. Sumii. 2011. From applicative to environmental bisimulation. Electr. Notes Theor.Comput. Sci. 276 (2011), 215--235.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Vassileios Koutavas and Mitchell Wand. 2006. Bisimulations for untyped imperative objects. In Proceedings of the European Symposium on Programming (ESOP’06). 146--161.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Vassileios Koutavas and Mitchell Wand. 2006. Small bisimulations for reasoning about higher-order imperative programs. In Proceedings of the ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’06). 141--152.Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. S. B. Lassen. 1998. Relational Reasoning about Functions and Nondeterminism. Ph.D. Dissertation. University of Aarhus.Google ScholarGoogle Scholar
  28. Søren B. Lassen and Paul Blain Levy. 2007. Typed normal form bisimulation. In Proceedings of the Conference on Computer Science Logic (CSL’07) (LNCS), Vol. 4646. Springer, 283--297.Google ScholarGoogle Scholar
  29. 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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Robin Milner. 2006. Pure bigraphs: Structure and dynamics. Info. Comput. 204, 1 (2006), 60--122.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. John C. Mitchell. 1996. Foundations for Programming Languages. MIT Press.Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. J. H. Morris Jr. 1968. Lambda-calculus Models of Programming Languages. Ph.D. Dissertation. Massachusetts Institute of Technology.Google ScholarGoogle Scholar
  33. Georg Neis, Chung-Kil Hur, Jan-Oliver Kaiser, Craig McLaughlin, Derek Dreyer, and Viktor Vafeiadis. 2015. Pilsner: A compositionally verified compiler for a higher-order imperative language. In Proceedings of the International Conference on Functional Programming (ICFP’15). ACM, New York, NY, USA, 166--178.Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. D. Park. 1981. A new equivalence notion for communicating systems. In Bulletin EATCS, G. Maurer (Ed.), Vol. 14. 78--80.Google ScholarGoogle Scholar
  35. Adrien Piérard and Eijiro Sumii. 2011. Sound bisimulations for higher-order distributed process calculus. In Proceedings of the International Conference on Foundations of Software Science and Computation Structures (FoSSaCS’11). 123--137.Google ScholarGoogle ScholarCross RefCross Ref
  36. Adrien Piérard and Eijiro Sumii. 2012. A higher-order distributed calculus with name creation. In Proceedings of the ACM/IEEE Symposium on Logic in Computer Science (LICS’12). 531--540.Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Andrew Pitts. 2005. Typed operational reasoning. In Advanced Topics in Types and Programming Languages, Benjamin C. Pierce (Ed.). MIT Press, 245--289.Google ScholarGoogle Scholar
  38. Andrew Pitts. 2012. Howe’s method for higher-order languages. In Advanced Topics in Bisimulation and Coinduction, D. Sangiorgi and J. Rutten (Eds.). Cambridge Tracts in Theoretical Computer Science, Vol. 52. Cambridge University Press, Cambridge, 197--232.Google ScholarGoogle Scholar
  39. Damien Pous and Davide Sangiorgi. 2012. Enhancements of the bisimulation proof method. In Advanced Topics in Bisimulation and Coinduction, Davide Sangiorgi and Jan Rutten (Eds.). Cambridge University Press.Google ScholarGoogle Scholar
  40. Jan Rutten and Bart Jacobs. 2012. (Co)algebras and (Co)induction. In Advanced Topics in Bisimulation and Coinduction, Davide Sangiorgi and Jan Rutten (Eds.). Cambridge University Press.Google ScholarGoogle Scholar
  41. David Sands. 1997. From SOS rules to proof principles: An operational metatheory for functional languages. In Proceedings of the ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’97). 428--441.Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Davide Sangiorgi. 1994. The lazy lambda calculus in a concurrency scenario. Info. Comput. 111, 1 (May 1994), 120--153.Google ScholarGoogle Scholar
  43. D. Sangiorgi. 2012. Introduction to Bisimulation and Coinduction. Cambridge University Press, Cambridge.Google ScholarGoogle Scholar
  44. Davide Sangiorgi, Naoki Kobayashi, and Eijiro Sumii. 2007. Logical bisimulations and functional languages. In Proceedings of the International Conference on Fundamentals of Software Engineering (FSEN’07) (LNCS). Springer, 364--379.Google ScholarGoogle ScholarCross RefCross Ref
  45. Davide Sangiorgi, Naoki Kobayashi, and Eijiro Sumii. 2011. Environmental bisimulations for higher-order languages. ACM Trans. Program. Lang. Syst. 33, 1:5 (2011).Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Nobuyuki Sato and Eijiro Sumii. 2009. The higher-order, call-by-value applied pi-calculus. In Proceedings of the Asian Symposium on Programming Languages and Systems (APLAS’09). 311--326.Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Kristian Støvring and Soren B. Lassen. 2007. A complete, co-inductive syntactic theory of sequential control and state. In Proceedings of the ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’07). 161--172.Google ScholarGoogle Scholar
  48. Eijiro Sumii and Benjamin C. Pierce. 2007. A bisimulation for dynamic sealing. Theor. Comput. Sci. 375, 1--3 (2007), 169--192.Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Eijiro Sumii and Benjamin C. Pierce. 2007. A bisimulation for type abstraction and recursion. J. ACM 54, 5 (2007).Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Environmental Bisimulations for Probabilistic Higher-order Languages

        Recommendations

        Reviews

        Markus Wolf

        Bisimulation is a technique for proving the behavioral equivalence of labeled transition systems. It is used in the study of calculi, for example, especially in the context of concurrency. The basic idea is to find a relation between program terms such that one can prove for any two terms in relation that a reduction on one of the terms means there is always a reduction on the other term; so, the reduction results are again in relation, and vice versa for the other term. The study of such relations and proof techniques has quite a long history, and this paper adds to this history by studying environmental bisimulations and their use in proving behavioral equivalences for higher-order languages with a probabilistic choice operator. An environmental bisimulation not only puts terms in relations, but rather pairs of terms and environments. This basic idea was proposed in a previous paper in order to ease the treatment of extensions to pure calculus where the usual bisimulation techniques become technically difficult. In order to model the choice aspects of the languages, the environments consist of a recording of the possible choices. This is called a formal sum in the paper, and is a syntactic representation of the probability distribution of possible terms. After a motivating introduction and some technical preliminaries, the paper discusses three languages: call-by-name -calculus, call-by-value -calculus, and an extension of the latter with locations and references. For call-by-name -calculus the notion of an environmental bisimulation is first introduced, illustrated by several examples and investigated. The notion of environmental bisimulation needs to be extended for call-by-value -calculus. A motivating example for this is the fact that a choice between a value and a divergent term under a is equivalent to a choice between two expressions in call-by-name. However, this is no longer the case in a call-by-value scheme. The solution chosen is to allow for the environment to be updated during the bisimulation game. The addition of locations and references leads to the final extension of bisimulation in which the pairs are extended to triples, that is, adding a store to the environment. The resulting final theoretical apparatus is quite heavy, but still manageable. A discussion of related and future work concludes the paper. The read is quite enjoyable, despite its heavy technical flavor, thanks to motivating examples and a clear exposition. Proofs to the small lemmas and theorems are mostly omitted or only sketched, and several concepts related to bisimulation are referenced but not completely explained. For a reader completely new to bisimulations, it is not a good starting point.

        Access critical reviews of Computing literature here

        Become a reviewer for Computing Reviews.

        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

        • Published in

          cover image ACM Transactions on Programming Languages and Systems
          ACM Transactions on Programming Languages and Systems  Volume 41, Issue 4
          December 2019
          186 pages
          ISSN:0164-0925
          EISSN:1558-4593
          DOI:10.1145/3366632
          Issue’s Table of Contents

          Copyright © 2019 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 12 October 2019
          • Accepted: 1 June 2019
          • Revised: 1 May 2019
          • Received: 1 July 2017
          Published in toplas Volume 41, Issue 4

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article
          • Research
          • Refereed

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader

        HTML Format

        View this article in HTML Format .

        View HTML Format