Analysis and transformation of proof procedures

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.

[1]  John W. Lloyd,et al.  A Partial Evaluation Procedure for Logic Programs , 1990, NACLP.

[2]  Lawrence J. Henschen,et al.  What Is Automated Theorem Proving? , 1985, J. Autom. Reason..

[3]  Anders Bondorf,et al.  Logimix: A Self-Applicable Partial Evaluator for Prolog , 1992, LOPSTR.

[4]  Wolfgang Bibel,et al.  Cycle Uniication , 1992 .

[5]  A. Turing On Computable Numbers, with an Application to the Entscheidungsproblem. , 1937 .

[6]  Chiaki Sakama,et al.  Partial Deduction of Disjunctive Logic Programs: A Declarative Approach , 1994, LOPSTR.

[7]  Saumya K. Debray Static analysis of logic programs: an advanced tutorial , 1993, ICLP 1993.

[8]  Peter Baumgartner,et al.  Model Elimination Without Contrapositives , 1994, CADE.

[9]  Allen Newell,et al.  Empirical explorations with the logic theory machine: a case study in heuristics , 1995 .

[10]  Joachim Posegga Compiling Proof Search in Semantic Tableaux , 1993, ISMIS.

[11]  Andrei P. Ershov,et al.  On the Essence of Compilation , 1977, Formal Description of Programming Concepts.

[12]  Hirohisa Seki,et al.  On the power of Alexander templates , 1989, PODS.

[13]  J. Lloyd Foundations of Logic Programming , 1984, Symbolic Computation.

[14]  Michael Leuschel,et al.  Partial Evaluation of the "Real Thing" , 1994, LOPSTR.

[15]  Klaus Mayr,et al.  Refinements and Extensions of Model Elimination , 1993, LPAR.

[16]  Donald E. Knuth,et al.  Simple Word Problems in Universal Algebras††The work reported in this paper was supported in part by the U.S. Office of Naval Research. , 1970 .

[17]  Tadashi Kanamori Abstract Interpretation Based on Alexander Templates , 1993, J. Log. Program..

[18]  Thomas H. Payne,et al.  Case-Free Programs: An Abstraction of Definite Horn Programs , 1990, CADE.

[19]  Bart Selman,et al.  Forming Concepts for Fast Inference , 1992, AAAI.

[20]  John W. Lloyd,et al.  Analysis of Meta-Programs , 1989, META.

[21]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[22]  Richard C. T. Lee,et al.  Symbolic logic and mechanical theorem proving , 1973, Computer science classics.

[23]  Henryk Jan Komorowski,et al.  A specification of an abstract Prolog machine and its application to partial evaluation , 1981 .

[24]  Ehud Shapiro,et al.  A Type System for Logic Programs , 1988, J. Log. Program..

[25]  Jacques Herbrand Recherches sur la théorie de la démonstration , 1930 .

[26]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[27]  Donald W. Loveland,et al.  Automated theorem proving: a logical basis , 1978, Fundamental studies in computer science.

[28]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[29]  Bern Martens On the semantics of meta-programming and the control of partial deduction in logic programming , 1994 .

[30]  Jack Minker,et al.  A Fixpoint Semantics for Disjunctive Logic Programs , 1990, J. Log. Program..

[31]  John P. Gallagher,et al.  Regular approximations of logic programs and their uses , 1992 .

[32]  Geoff Sutcliffe Linear-Input Subset Analysis , 1992, CADE.

[33]  M. F.,et al.  Bibliography , 1985, Experimental Gerontology.

[34]  Maurice Bruynooghe,et al.  The Compilation of Forward Checking Regimes through Meta-Interpretation and Transformation , 1988, META.

[35]  Melvin Fitting,et al.  First-Order Logic and Automated Theorem Proving , 1990, Graduate Texts in Computer Science.

[36]  David W. Reed,et al.  An Alternative Characterization of Disjunctive Logic Programs , 1991, ISLP.

[37]  David A. Plaisted,et al.  Abstraction Mappings in Mechanical Theorem Proving , 1980, CADE.

[38]  D. Andre de Waal,et al.  The Power of Partial Evaluation , 1993, LOPSTR.

[39]  John P. Gallagher,et al.  Fast and Precise Regular Approximations of Logic Programs , 1994, ICLP.

[40]  Robert A. Kowalski,et al.  Linear Resolution with Selection Function , 1971, Artif. Intell..

[41]  Peter Baumgartner,et al.  PROTEIN: A PROver with a Theory Extension INterface , 1994, CADE.

[42]  Maurice Bruynooghe,et al.  A Practical Framework for the Abstract Interpretation of Logic Programs , 1991, J. Log. Program..

[43]  Hilary Putnam,et al.  An unsolvable problem in number theory , 1960, Journal of Symbolic Logic.

[44]  François Bry,et al.  SATCHMO: A Theorem Prover Implemented in Prolog , 1988, CADE.

[45]  Christian G. Fermüller,et al.  Resolution Methods for the Decision Problem , 1993, Lecture Notes in Computer Science.

[46]  Bernhard Beckert Leant a P: Lean Tableau-based Theorem Proving , .

[47]  Hao Wang,et al.  Toward Mechanical Mathematics , 1960, IBM J. Res. Dev..

[48]  Frank van Harmelen,et al.  The Limitations of Partial Evaluation , 1988, IMYCS.

[49]  Randy Goebel,et al.  Gracefully adding negation and disjunction to Prolog , 1986, ICLP.

[50]  Prateek Mishra,et al.  Towards a Theory of Types in Prolog , 1984, SLP.

[51]  Thom W. Frühwirth,et al.  Logic programs as types for logic programs , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[52]  Donald W. Loveland,et al.  Automated theorem proving: a quarter-century review , 1984 .

[53]  Justin Zobel,et al.  Derivation of Polymorphic Types for PROLOG Programs , 1987, ICLP.

[54]  S. C. Kleene,et al.  Introduction to Metamathematics , 1952 .

[55]  Chris Hankin,et al.  Abstract Interpretation of Declarative Languages , 1987 .

[56]  Bernhard Beckert,et al.  An Improved Method for Adding Equality to Free Variable Semantic Tableaux , 1992, CADE.

[57]  William McCune,et al.  SCOTT: Semantically Constrained Otter System Description , 1994, CADE.

[58]  John P. Gallagher,et al.  Specialising a theorem prover , 1992 .

[59]  John W. Lloyd,et al.  Partial Evaluation in Logic Programming , 1991, J. Log. Program..

[60]  John P. Gallagher,et al.  The Applicability of Logic Program Analysis and Transformation to Theorem Proving , 1994, CADE.

[61]  Corin A. Gurr,et al.  A self-applicable partial evaluator for the logic programming language Goedel , 1994 .

[62]  Lee Naish,et al.  Types and the Intended Meaning of Logic Programs , 1992, Types in Logic Programming.

[63]  David Kelley A theory of abstraction. , 1984 .

[64]  Stefan Brüning Detecting Non-Provable Goals , 1994, CADE.

[65]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

[66]  J. W. LLOYD,et al.  Making Prolog more Expressive , 1984, J. Log. Program..

[67]  Pascal Van Hentenryck,et al.  Type analysis of Prolog using type graphs , 1994, PLDI '94.

[68]  John P. Gallagher,et al.  Logic Program Specialisation With Deletion of Useless Clauses , 1993, ILPS.

[69]  Joxan Jaffar,et al.  A finite presentation theorem for approximating logic programs , 1989, POPL '90.

[70]  David W. Reed,et al.  A Comparison of Three Prolog Extensions , 1992, J. Log. Program..

[71]  John P. Gallagher,et al.  Some low-level source transformations of logic programs , 1990 .