Use this URL to cite or link to this record in EThOS:
Title: Automated program transformation through proof transformation
Author: Madden, Peter
Awarding Body: University of Edinburgh
Current Institution: University of Edinburgh
Date of Award: 1991
Availability of Full Text:
Access from EThOS:
Full text unavailable from EThOS. Please try the link below.
Access from Institution:
We investigate program optimization and program adaptation (or specialization) by the transformation of (constructive) synthesis proofs. Synthesis proofs which yield inefficient programs are transformed into analogous proofs which yield more efficient programs. These proofs are based on a Martin-Lof type theory logic and proved within the OYSTER proof refinement system [Martin-Lof 82]. The problems of automated program synthesis and verification have already been addressed within the proofs as programs paradigm [Constable et al. 86], [Bundy et al. 91]. By using constructive logic, the task of generating programs is treated as the task of proving a theorem. By performing a proof of a formal specification expressed in constructive logic, stating the input-output conditions of the desired program, an algorithm can be routinely extracted from the proof. We have implemented a system - the meta-level OYSTER proof transformation system (MOPTS) - for optimizing programs through the transformation of (OYSTER) synthesis proofs. The MOPTS has the desirable properties of automatability, correctness and various mechanisms for reducing the transformation search space, and various control mechanisms for guiding search through that space. A contribution afforded by proof transformations is that, in addition to program synthesis and verification, the problem of program transformation is also tackled by transposing the task to the proofs as programs paradigm. As with synthesis and verification, knowledge of theorem proving, and in particular automatic proof guidance techniques, can be brought to bear on the task. Furthermore, such transformations allow the human synthesizer to produce an elegant source proof, without clouding the theorem providing process with efficiency issues, and then to transform this into an opaque proof that yields an efficient target program. To accomplish program transformation through proof transformation, we have successfully, and for the first time, adapted a range of program transformation techniques to the proofs as program paradigm, notably: the tupling technique for 'merging' repeated (sub)computations, [Petrossi] [Chin 90], and the fold/unfold technique for transforming inefficient functional programs into equivalent, more efficient, functional programs by a process of unfolding and folding definitions [Darl 81]. Throughout the course of this thesis we shall highlight the benefits of our 'proofs as programs' approach to transformation, particularly with respect to search, correctness and automatability.
Supervisor: Not available Sponsor: Not available
Qualification Name: Thesis (Ph.D.) Qualification Level: Doctoral
EThOS ID:  DOI: Not available