Program refinement by theorem prover




















Formal verification of programs is generally accepted to be laborious and time consuming. The use of verification condition generators can significantly reduce the amount of work required. We demonstrate such an approach for object-oriented programs, using Euclid's algorithm as an example. Abstract - Cited by 2 1 self - Add to MetaCart Formal verification of programs is generally accepted to be laborious and time consuming.

In particular, the language includes side-effecting expressions, mutual recursion, dynamic method binding, full exception handling, and static class initialization. The Hoare logic of partia The Hoare logic of partial correctness is proved not only sound w.

It is the first logic for an object-oriented language that is provably complete. The completeness proof uses a refinement of the Most General Formula approach. The proof of soundness gives new insights into the role of type safety. Further by-products of this work are a new general methodology for handling side-effecting expressions and their results, the discovery of the strongest possible rule of consequence, and a flexible Call rule for mutual recursion.

We also give a small but non-trivial application example. This guarantees not only rigorous definitions, but also gives maximal confidence in the results obtained. We present an implementation of a program logic of objects, extending that AL of Abadi and Leino. In particular, we show how specifications can be refined into code and how data refinements i.

All refinements are proved as theorems in the HOL logic, so our system is in fact a secure environment for program development. In this approach to program dev Skip to main content.

This service is more advanced with JavaScript available. Advertisement Hide. Program Refinement by Theorem Prover. Authors Authors and affiliations J. Conference paper. This process is experimental and the keywords may be updated as the learning algorithm improves.

This is a preview of subscription content, log in to check access. Aagard and M. Verifying a logic synthesis tool in Nuprl. In Proc. Google Scholar. Mechanizing program verification in HOL. Mathematical Centre, Amsterdam, A calculus of refinements for program derivations.

Acta Informatica , —, Changing data representation in the refinement calculus. Refinement calculus, part II: Parallel and reactive programs. Back and K. Superposition refinement of parallel algorithms. Parker and G. Last Updated : 28 Sep, Next Advantages and Disadvantages of different Classification Models. Recommended Articles. Article Contributed By :. Easy Normal Medium Hard Expert. Writing code in comment? Please use ide.



0コメント

  • 1000 / 1000