Logic programming tools and techniques for imperative program verification
Logic programming tools and techniques for imperative program verification
Proofs of program correctness are traditionally viewed as proofs of correspondence between the program code and an abstract mathematical specification, with little attention to or support for these proofs. This thesis examines the ways in which logic programming, and in particular Prolog, can contribute to the specification to implementation process, firstly in general terms as an `animatable' specification language which may be useful both in scrutinising a higher level specification and in annotating and providing proof rules for verifying an implementation in an imperative programming language and secondly through a number of tools written in Prolog which have been developed in the course of this research. Of these tools, by far the most important is the proof checker, an interactive tool developed to assist the program developer in carrying out formal proofs of the correctness of verification conditions derived from annotated imperative program models. The design of the checker is considered in detail and the proof of soundness of the various tools which comprise the proof checker is also covered in depth. Other tools concentrate on Prolog-style programs as specifications and provide a means of converting such specifications into proof rules for use by the checker in verifying the implementation. The use and potential extensions of the proof checker are contemplated, and the thesis rounds off with a consideration of the immediate uses to which logic programming techniques may be put in the development of verified programs for safety-or security-critical programs. (D81694)
University of Southampton
1987
O'Neill, Ian Mark
(1987)
Logic programming tools and techniques for imperative program verification.
University of Southampton, Doctoral Thesis.
Record type:
Thesis
(Doctoral)
Abstract
Proofs of program correctness are traditionally viewed as proofs of correspondence between the program code and an abstract mathematical specification, with little attention to or support for these proofs. This thesis examines the ways in which logic programming, and in particular Prolog, can contribute to the specification to implementation process, firstly in general terms as an `animatable' specification language which may be useful both in scrutinising a higher level specification and in annotating and providing proof rules for verifying an implementation in an imperative programming language and secondly through a number of tools written in Prolog which have been developed in the course of this research. Of these tools, by far the most important is the proof checker, an interactive tool developed to assist the program developer in carrying out formal proofs of the correctness of verification conditions derived from annotated imperative program models. The design of the checker is considered in detail and the proof of soundness of the various tools which comprise the proof checker is also covered in depth. Other tools concentrate on Prolog-style programs as specifications and provide a means of converting such specifications into proof rules for use by the checker in verifying the implementation. The use and potential extensions of the proof checker are contemplated, and the thesis rounds off with a consideration of the immediate uses to which logic programming techniques may be put in the development of verified programs for safety-or security-critical programs. (D81694)
This record has no associated files available for download.
More information
Published date: 1987
Identifiers
Local EPrints ID: 461767
URI: http://eprints.soton.ac.uk/id/eprint/461767
PURE UUID: 2fb753d9-e727-4606-9a6f-48731a0b2aea
Catalogue record
Date deposited: 04 Jul 2022 18:54
Last modified: 04 Jul 2022 18:54
Export record
Contributors
Author:
Ian Mark O'Neill
Download statistics
Downloads from ePrints over the past year. Other digital versions may also be available to download e.g. from the publisher's website.
View more statistics