Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1111037.1111050acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article

Small bisimulations for reasoning about higher-order imperative programs

Published: 11 January 2006 Publication History

Abstract

We introduce a new notion of bisimulation for showing contextual equivalence of expressions in an untyped lambda-calculus with an explicit store, and in which all expressed values, including higher-order values, are storable. Our notion of bisimulation leads to smaller and more tractable relations than does the method of Sumii and Pierce [31]. In particular, our method allows one to write down a bisimulation relation directly in cases where [31] requires an inductive specification, and where the principle of local invariants [22] is inapplicable. Our method can also express examples with higher-order functions, in contrast with the most widely known previous methods [4, 22, 32] which are limited in their ability to deal with such examples. The bisimulation conditions are derived by manually extracting proof obligations from a hypothetical direct proof of contextual equivalence.

References

[1]
Samson Abramsky. The lazy lambda calculus. In David~A. Turner, editor, Research Topics in Functional Programming, pages 65--116. Addison-Wesley, 1990.
[2]
Samson Abramsky, Radha Jagadeesan, and Pasquale Malacaria. Full abstraction for PCF. Inf. Comput., 163(2):409--470, 2000. Originally appeared as {3}.
[3]
Samson Abramsky, Pasquale Malacaria, and Radha Jagadeesan. Full abstraction for PCF. In Theoretical Aspects of Computer Software, pages 1--15, 1994.
[4]
Nick Benton and Benjamin Leperchey. Relational reasoning in a nominal semantics for storage. In Typed Lambda Calculi and Applications, 7th International Conference, TLCA 2005, Nara, Japan, April 21-23, 2005, Proceedings, volume 3461 of Lecture Notes in Computer Science, pages 86--101. Springer, 2005.
[5]
Martin Berger, Kohei Honda, and Nobuko Yoshida. A logical analysis of aliasing in imperative higher-order functions. In Proceedings of the Tenth ACM SIGPLAN International Conference on Functional Programming (ICFP'05). ACM Press, sept 2005. To appear.
[6]
Yuxin Deng and Davide Sangiorgi. Towards an algebraic theory of typed mobile processes. In Proc. Icalp '04, volume 3142 of Lecture Notes in Computer Science, pages 445--456. Springer-Verlag, 2004.
[7]
Matthias Felleisen. The Calculi of Lambda-v-cs Conversion: A Syntactic Theory of Control and State in Imperative Higher-Order Programming Languages. PhD thesis, Indiana University, 1987.
[8]
Cormac Flanagan and Matthias Felleisen. The semantics of future and its use in program optimization. In Proceedings 22nd Annual ACM Symposium on Principles of Programming Languages, pages 209--220, 1995.
[9]
Matthew Hennessy. Algebraic theory of processes. MIT Press, Cambridge, MA, USA, 1988.
[10]
Matthew Hennessy and Robin Milner. On observing nondeterminism and concurrency. In ICALP, pages 299--309, 1980.
[11]
Matthew Hennessy and Robin Milner. Algebraic laws for nondeterminism and concurrency. Journal of the ACM, 32:137--161, 1985.
[12]
Kohei Honda, Martin Berger, and Nobuko Yoshida. An observationally complete program logic for imperative higher-order functions. In Proceedings of the Twentieth Annual IEEE Symposium on Logic in Computer Science (LICS), June 2005. To appear.
[13]
Douglas J. Howe. Equality in lazy computation systems. In Proc. 4th IEEE Symposium on Logic in Computer Science, pages 198--203, 1989.
[14]
R. Jagadeesan, A. S. A. Jeffrey, and J. Riely. A calculus of untyped aspect-oriented programs. In Proceedings European Conference on Object-Oriented Programming, volume 1853 of Lecture Notes in Computer Science, pages 415--427, Berlin, Heidelberg, and New York, 2003. Springer-Verlag.
[15]
Eugene M. Kohlbecker and Mitchell Wand. Macro-by-example: Deriving syntactic transformations from their specifications. In Proceedings 14th Annual ACM Symposium on Principles of Programming Languages, pages 77--84, 1987.
[16]
Ian A. Mason and Carolyn L. Talcott. Equivalence in functional languages with effects. Journal of Functional Programming, 1:287--327, 1991.
[17]
Albert R. Meyer and Kurt Sieber. Towards fully abstract semantics for local variables: Preliminary report. In Proceedings 15th Annual ACM Symposium on Principles of Programming Languages, pages 191--203, 1988.
[18]
Robert Milne and Christopher Strachey. A Theory of Programming Language Semantics. Chapman and Hall, London, 1976. Also Wiley, New York.
[19]
Robin Milner. Fully abstract models of typed lambda-calculi. Theoretical Computer Science, 4:1--22, 1977.
[20]
Robin Milner. Operational and algebraic semantics of concurrent processes. In Jan van Leeuwen, editor, Handbook of Theoretical Computer Science, pages 1201--1242. MIT Press/Elsevier, 1990.
[21]
James H. Morris, Jr. Lambda Calculus Models of Programming Languages. PhD thesis, MIT, Cambridge, MA, 1968.
[22]
Andrew Pitts and Ian Stark. Operational reasoning for functions with local state. In Andrew Gordon and Andrew Pitts, editors, Higher Order Operational Techniques in Semantics, pages 227--273. Publications of the Newton Institute, Cambridge University Press, 1998.
[23]
Gordon D. Plotkin. LCF considered as a programming language. Theoretical Computer Science, 5:223--255, 1977.
[24]
E. Ritter and A. M. Pitts. A fully abstract translation between a γ-calculus with reference types and Standard ML. In 2nd Int. Conf. on Typed Lambda Calculus and Applications, Edinburgh, 1995, volume 902 of Lecture Notes in Computer Science, pages 397--413, Berlin, Heidelberg, and New York, 1995. Springer-Verlag.
[25]
Davide Sangiorgi. Locality and true-concurrency in calculi for mobile processes. In Theoretical Aspects of Computer Software, pages 405--424, 1994.
[26]
Davide Sangiorgi. On the bisimulation proof method. In J. Wiedermann and P. Háiek, editors, Proc. MFCS'95, volume 969 of Lecture Notes in Computer Science, pages 479--488. Springer-Verlag, 1995. Full version to appear in J. Math. Structures in Comp. Sci.
[27]
Davide Sangiorgi. Locality and non-interleaving semantics in calculi for mobile processes. Theoretical Computer Science, 155:39--83, 1996.
[28]
Davide Sangiorgi and Robin Milner. The problem of "Weak Bisimulation up to". In W.R. Cleveland, editor, Proc. CONCUR '92, volume 630 of Lecture Notes in Computer Science, pages 32--46. Springer-Verlag, 1992.
[29]
Kurt Sieber. Full abstraction for the second order subset of an algol-like language. Theor. Comput. Sci., 168(1):155--212, 1996.
[30]
Paul A. Steckler and Mitchell Wand. Lightweight closure conversion. ACM Transactions on Programming Languages and Systems, 19(1):48--86, January 1997. Original version appeared in Proceedings 21st Annual ACM Symposium on Principles of Programming Languages, 1994.
[31]
Eijiro Sumii and Benjamin C. Pierce. A bisimulation for dynamic sealing. In POPL '04: Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 161--172, New York, NY, USA, 2004. ACM Press.
[32]
Eijiro Sumii and Benjamin C. Pierce. A bisimulation for type abstraction and recursion. In POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 63--74, New York, NY, USA, 2005. ACM Press.
[33]
Jerzy Tiuryn and Mitchell Wand. Untyped lambda-calculus with input-output. In H. Kirchner, editor, Trees in Algebra and Programming: CAAP'96, Proc. 21st International Colloquium, volume 1059 of Lecture Notes in Computer Science, pages 317--329, Berlin, Heidelberg, and New York, April 1996. Springer-Verlag.
[34]
Mitchell Wand and William~D. Clinger. Set constraints for destructive array update optimization. Journal of Functional Programming, 11(3):319--346, May 2001.
[35]
Mitchell Wand and Igor Siveroni. Constraint systems for useless variable elimination. In Proceedings 26th Annual ACM Symposium on Principles of Programming Languages, pages 291--302, 1999.
[36]
Mitchell Wand and Gregory T. Sullivan. Denotational semantics using an operationally-based term model. In Proceedings 23rd Annual ACM Symposium on Principles of Programming Languages, pages 386--399, 1997.

Cited By

View all
  • (2024)A Logical Approach to Type SoundnessJournal of the ACM10.1145/367695471:6(1-75)Online publication date: 11-Nov-2024
  • (2024)Pushdown Normal-Form Bisimulation: A Nominal Context-Free Approach to Program EquivalenceProceedings of the 39th Annual ACM/IEEE Symposium on Logic in Computer Science10.1145/3661814.3662103(1-15)Online publication date: 8-Jul-2024
  • (2023)Fully Abstract Normal Form Bisimulation for Call-by-Value PCF2023 38th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)10.1109/LICS56636.2023.10175778(1-13)Online publication date: 26-Jun-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '06: Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
January 2006
432 pages
ISBN:1595930272
DOI:10.1145/1111037
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 41, Issue 1
    Proceedings of the 2006 POPL Conference
    January 2006
    421 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1111320
    Issue’s Table of Contents
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 ACM 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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 January 2006

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. bisimulations
  2. contextual equivalence
  3. higher-order procedures
  4. imperative languages
  5. lambda-calculus

Qualifiers

  • Article

Conference

POPL06

Acceptance Rates

Overall Acceptance Rate 824 of 4,130 submissions, 20%

Upcoming Conference

POPL '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)13
  • Downloads (Last 6 weeks)0
Reflects downloads up to 14 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)A Logical Approach to Type SoundnessJournal of the ACM10.1145/367695471:6(1-75)Online publication date: 11-Nov-2024
  • (2024)Pushdown Normal-Form Bisimulation: A Nominal Context-Free Approach to Program EquivalenceProceedings of the 39th Annual ACM/IEEE Symposium on Logic in Computer Science10.1145/3661814.3662103(1-15)Online publication date: 8-Jul-2024
  • (2023)Fully Abstract Normal Form Bisimulation for Call-by-Value PCF2023 38th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)10.1109/LICS56636.2023.10175778(1-13)Online publication date: 26-Jun-2023
  • (2022)Checking equivalence in a non-strict languageProceedings of the ACM on Programming Languages10.1145/35633406:OOPSLA2(1469-1496)Online publication date: 31-Oct-2022
  • (2022)Formal reasoning about layered monadic interpretersProceedings of the ACM on Programming Languages10.1145/35476306:ICFP(254-282)Online publication date: 31-Aug-2022
  • (2022)From Bounded Checking to Verification of Equivalence via Symbolic Up-to TechniquesTools and Algorithms for the Construction and Analysis of Systems10.1007/978-3-030-99527-0_10(178-195)Online publication date: 30-Mar-2022
  • (2021)On sequentiality and well-bracketing in the π-calculusProceedings of the 36th Annual ACM/IEEE Symposium on Logic in Computer Science10.1109/LICS52264.2021.9470559(1-13)Online publication date: 29-Jun-2021
  • (2021)Compositional relational reasoning via operational game semantics2021 36th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)10.1109/LICS52264.2021.9470524(1-13)Online publication date: 29-Jun-2021
  • (2020)Program equivalence for assisted grading of functional programsProceedings of the ACM on Programming Languages10.1145/34282394:OOPSLA(1-29)Online publication date: 13-Nov-2020
  • (2019)Synthesizing replacement classesProceedings of the ACM on Programming Languages10.1145/33711204:POPL(1-33)Online publication date: 20-Dec-2019
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media