Stepwise refinement of heap-manipulating code in Chalice
Name
165_2012_Article_254.pdf
Size
584.45 KB
Format
Adobe PDF
Checksum (MD5)
49a32ff000881459b6d09936500d64bf
Author(s) •
Leino, K. Rustan M.
Yessenov, Kuat T
Date Issued
June 2012
Journal
Formal Aspects of Computing
Publisher
Springer-Verlag
Citation
Leino, K. Rustan M., and Kuat Yessenov. “Stepwise Refinement of Heap-Manipulating Code in Chalice.” Formal Aspects of Computing 24.4–6 (2012): 519–535.
Version
Author's final manuscript
Abstract
Stepwise refinement is a well-studied technique for developing a program from an abstract description to a concrete implementation. This paper describes a system with automated tool support for refinement, powered by a state-of-the-art verification engine that uses an SMT solver. Unlike previous refinement systems, users of the presented system interact only via declarations in the programming language. Another aspect of the system is that it accounts for dynamically allocated objects in the heap, so that data representations in an abstract program can be refined into ones that use more objects. Finally, the system uses a language with familiar imperative features, including sequential composition, loops, and recursive calls, offers a syntax with skeletons for describing program changes between refinements, and provides a mechanism for supplying witnesses when refining non-deterministic programs.
MIT Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Terms of Use
Article is made available in accordance with the publisher's policy and may be subject to US copyright law. Please refer to the publisher's site for terms of use.
Persistent DSpace Link
DOI of Published Version
https://doi.org/10.1007/s00165-012-0254-3