skip to main content
research-article

Freefinement

Published:25 January 2012Publication History
Skip Abstract Section

Abstract

Freefinement is an algorithm that constructs a sound refinement calculus from a verification system under certain conditions. In this paper, a verification system is any formal system for establishing whether an inductively defined term, typically a program, satisfies a specification. Examples of verification systems include Hoare logics and type systems. Freefinement first extends the term language to include specification terms, and builds a verification system for the extended language that is a sound and conservative extension of the original system. The extended system is then transformed into a sound refinement calculus. The resulting refinement calculus can interoperate closely with the verification system - it is even possible to reuse and translate proofs between them. Freefinement gives a semantics to refinement at an abstract level: it associates each term of the extended language with a set of terms from the original language, and refinement simply reduces this set. The paper applies freefinement to a simple type system for the lambda calculus and also to a Hoare logic.

Skip Supplemental Material Section

Supplemental Material

popl_1a_1.mp4

References

  1. R.-J. Back. Correctness preserving program refinements: Proof theory and applications. Mathematical Centre Tracts, 131, 1980.Google ScholarGoogle Scholar
  2. R.-J. Back and J. von Wright. Refinement Calculus: A Systematic Introduction. Springer-Verlag, 1998. Graduate Texts in Computer Science. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. S. Brookes. A semantics for concurrent separation logic. Theor. Comput. Sci., 375: 227--270, April 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. E. Denney. Simply-typed underdeterminism. Journal of Computer Science and Technology, 13: 491--508, 1998.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. E. Denney. A theory of program refinement. Technical Report ECS-LFCS-99--412, University of Edinburgh, 1999.Google ScholarGoogle Scholar
  6. E. C. R. Hehner. A practical theory of programming. Springer-Verlag New York, Inc., New York, NY, USA, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. K. R. M. Leino and R. Manohar. Joining specification statements. Theor. Comput. Sci., 216 (1--2): 375--394, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. C. Morgan. The specification statement. ACM Trans. Program. Lang. Syst., 10: 403--419, July 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. C. Morgan. Programming from specifications (2nd ed.). Prentice Hall International (UK) Ltd., Hertfordshire, UK, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. J. M. Morris. A theoretical basis for stepwise refinement and the programming calculus. Sci. Comput. Program., 9: 287--306, December 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. J. Parkinson and G. M. Bierman. Separation logic, abstraction and inheritance. In POPL '08, pages 75--86, New York, NY, USA, 2008. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Freefinement

                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

                • Published in

                  cover image ACM SIGPLAN Notices
                  ACM SIGPLAN Notices  Volume 47, Issue 1
                  POPL '12
                  January 2012
                  569 pages
                  ISSN:0362-1340
                  EISSN:1558-1160
                  DOI:10.1145/2103621
                  Issue’s Table of Contents
                  • cover image ACM Conferences
                    POPL '12: Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
                    January 2012
                    602 pages
                    ISBN:9781450310833
                    DOI:10.1145/2103656

                  Copyright © 2012 ACM

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 25 January 2012

                  Check for updates

                  Qualifiers

                  • research-article
                • Article Metrics

                  • Downloads (Last 12 months)3
                  • Downloads (Last 6 weeks)1

                  Other Metrics

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader
                About Cookies On This Site

                We use cookies to ensure that we give you the best experience on our website.

                Learn more

                Got it!