MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  A General Framework for Program Reasoning

Download:
Download as a PDF | Download as a PS
by Nevin Heintze, R Azvan Voicu, Joxan Jaffar, Joxan Jaffar
http://www.comp.nus.edu.sg/~joxan/papers/cpr.ps
Add To MetaCart

Abstract:

We present a framework for reasoning about programs that incorporates programmer specified assertions and subsumes both Hoare-Logic verification and program analysis. Our aim is to support combinations of different program reasoning algorithms in a tightly coupled way, and to provide a formal basis for the correctness of the combined efforts. Our framework is based on an extension of Hoare Logic, which we call Conditional Hoare Logic (CHL). Whereas Hoare Logic identifies user assertions with formulas in Hoare triples (user assertions are typically just treated as specifications of loop invariants), CHL formally separates user assertions from formulas manipulated in proofs by treating user assertions as part of the program text. Central to our framework is the notion of transformation of CHL-proofs. Starting from a distinguished transformation for "exact reasoning", we define a calculus of CHLproof transformations based on well-known combinators of abstraction, functional composition, intersection and fixpoint iteration. We show that all algorithms definable using the calculus are correct, and that the calculus includes a wide variety of program reasoners, including traditional verifiers and analyzers, and combinations thereof. Contact Author:

Citations

436 Systematic Design of Program Analysis Frameworks – Cousot, Cousot - 1979
183 Abstract Interpretation Frameworks – Cousot, Cousot - 1992
65 Methods and logics for proving programs – Cousot - 1999
18 The Ciao Prolog System. Reference Manual – Bueno, Cabeza, et al. - 1997
3 Cousot and Nicolas Halbwachs: "Automatic discovery of linear constraints among variables of a program – Patrick - 1978
1 Modern compiler implementation in ML", Chapter 17.2 – Appel - 1998