thesis

Automatic inductive theorem proving and program construction methods using program transformation

Abstract

We present new approaches to prove universally and existentially quantified conjectures and to construct programs from the resulting proofs. These theorem proving and program construction techniques make use of the distillation algorithm to transform input conjectures into a normalised form which we call distilled form. The proof rules are applied to the resulting distilled program. Our theorem proving and program construction techniques have been implemented in a theorem prover which we call Poitin. We give an overview of the distillation algorithm, and then present the proof and program construction techniques implemented in Poitin. Our implementation of the proof and program construction techniques used in Poitin is then presented. The soundness of the proof technique is shown with respect to a logical proof system using sequent calculus. We show that the constructed programs are correct with respect to their specification. The main contributions of this thesis can be summarised as follows. First, we present fully automatic, and efficient inductive theorem proving techniques. Second, we present a novel program construction technique to construct correct programs. Third, we have shown how automatic program transformation can be used in a novel way in an inductive theorem prover. Finally, the use of distillation to obtain a normal form of the input program reduces over-generalization and generation of non-theorems. We have implemented the theorem prover and demonstrated it on some examples. The use of distillation in the framework of Poitin has eased the automation of the proof and program construction techniques in a reduced search space to make it fully automatic and efficient

    Similar works