Affiliation:
1. Microsoft Research, One Microsoft Way, 98052, Redmond, WA, USA
2. MIT Computer Science and Artificial Intelligence Lab, Cambridge, MA, USA
Abstract
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.
Publisher
Association for Computing Machinery (ACM)
Subject
Theoretical Computer Science,Software
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Verifying Whiley Programs with Boogie;Journal of Automated Reasoning;2022-03-20
2. Programming Language Features for Refinement;Electronic Proceedings in Theoretical Computer Science;2016-06-04
3. Characteristic Formulae for Session Types;Tools and Algorithms for the Construction and Analysis of Systems;2016
4. A fully abstract trace-based semantics for reasoning about backward compatibility of class libraries;Science of Computer Programming;2014-10