Skip to main content

Analysis and Transformation of Proof Procedures

Andre de Waal, Analysis and Transformation of Proof Procedures. PhD thesis. Department of Computer Science, University of Bristol. October 1994. PDF, 638 Kbytes.

Abstract

Automated theorem proving has made great progress during the last few decades. Proofs of more and more difficult theorems are being found faster and faster. However, the exponential increase in the size of the search space remains for many theorem proving problems. Logic program analysis and transformation techniques have also made progress during the last few years and automated theorem proving can benefit from these techniques if they can be made applicable to general theorem proving problems. In this thesis we investigate the applicability of logic program analysis and transformation techniques to automated theorem proving. Our aim is to speed up theorem provers by avoiding useless search. This is done by detecting and deleting parts of the theorem prover and theory under consideration that are not needed for proving a given formula. The analysis and transformation techniques developed for logic programs can be applied in automated theorem proving via a programming technique called meta-programming. The theorem prover (or the proof procedure on which the theorem prover is based) is written as a logic meta-program and the theory and formula we wish to investigate becomes the data to the meta-program. Analysis and transformation techniques developed for logic programs can then be used to analyse and transform the meta-program (and therefore also the theorem prover). The transformation and analysis techniques used in this thesis are partial evaluation and abstract interpretation. Partial evaluation is a program optimisation technique whose use may result in gains in efficiency, especially when used in meta-programming to ``compile away'' layers of interpretation. The theory of abstract interpretation provides a formal framework for developing program analysis tools. It uses approximate representations of computational objects to make program dataflow analysis tractable. More specifically, we construct a regular approximation of a logic program where failure is decidable. Goals in the partially evaluated program are tested for failure in the regular approximation and useful information is inferred in this way. We propose a close symbiosis between partial evaluation and abstract interpretation and adapt and improve these techniques to make them suitable for our aims. Three first-order logic proof procedures are analysed and transformed with respect to twenty five problems from the Thousands of Problems for Theorem Provers Problem Library and two new problems from this thesis. Useful information is inferred that may be used to speed up theorem provers.

Bibtex entry.

Publication Admin