Affiliation:
1. Max Planck Institute for Software Systems, Kaiserslautern, Germany
Abstract
In previous work, we introduced an approach to program verification based on characteristic formulae. The approach consists of generating a higher-order logic formula from the source code of a program. This characteristic formula is constructed in such a way that it gives a sound and complete description of the semantics of that program. The formula can thus be exploited in an interactive proof assistant to formally verify that the program satisfies a particular specification.
This previous work was, however, only concerned with purely-functional programs. In the present paper, we describe the generalization of characteristic formulae to an imperative programming language. In this setting, characteristic formulae involve specifications expressed in the style of Separation Logic. They also integrate the frame rule, which enables local reasoning. We have implemented a tool based on characteristic formulae. This tool, called CFML, supports the verification of imperative Caml programs using the Coq proof assistant. Using CFML, we have formally verified nontrivial imperative algorithms, as well as CPS functions, higher-order iterators, and programs involving higher-order stores.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference38 articles.
1. Andrew W. Appel. Tactics for separation logic. Unpublished draft http://www.cs.princeton.edu/appel/papers/septacs.pdf 2006. Andrew W. Appel. Tactics for separation logic. Unpublished draft http://www.cs.princeton.edu/appel/papers/septacs.pdf 2006.
2. Verification of Object-Oriented Programs with Invariants.
3. Smallfoot: Modular Automatic Assertion Checking with Separation Logic
Cited by
19 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献