Integrating decision procedures into heuristic theorem provers: a case study of linear arithmetic

We discuss the problem of incorporating into a heuristic theorem prover a decision procedure for a fragment of the logic. An obvious goal when incorporating such a procedure is to reduce the search space explored by the heuristic component of the system, as would be achieved by eliminating from the system’s data base some explicitly stated axioms. For example, if a decision procedure for linear inequalities is added, one would hope to eliminate the explicit consideration of the transitivity axioms. However, the decision procedure must then be used in all the ways the eliminated axioms might have been. The difficulty of achieving this degree of integration is more dependent upon the complexity of the heuristic component than upon that of the decision procedure. The view of the decision procedure as a "black box" is frequently destroyed by the need pass large amounts of search strategic information back and forth between the two components. Finally, the efficiency of the decision procedure may be virtually irrelevant; the efficiency of the final system may depend most heavily on how easy it is to communicate between the two components. This paper is a case study of how we integrated a linear arithmetic procedure into a heuristic theorem prover. By linear arithmetic here we mean the decidable subset of number theory dealing with universally quantified formulas composed of the logical connectives, the identity relation, the Peano "less than" relation, the Peano addition and subtraction functions, Peano constants, and variables taking on natural values. We describe our system as it originally stood, and then describe chronologically the evolution of our linear arithmetic procedure and its interface to the heuristic theorem prover. We also provide a detailed description of our final linear arithmetic procedure and the use we make of it. This description graphically illustrates the difference between a stand-alone decision procedure and one that is of use to a more powerful theorem prover.

[1]  K. Gehrkens Efficiency , 1935 .

[2]  Robert S. Boyer,et al.  A Verification Condition Generator for FORTRAN. , 1980 .

[3]  Robert E. Shostak,et al.  On the SUP-INF Method for Proving Presburger Formulas , 1977, JACM.

[4]  Paul Y. Gloess An Experiment with the Boyer-Moore Theorem Prover: A Proof of the Correctness of a Simple Parser of Expressions , 1980, CADE.

[5]  James K. Feibleman Introduction: The Background , 1982 .

[6]  C. R. Henson Conclusion , 1969 .

[7]  Robert S. Boyer,et al.  A fast string searching algorithm , 1977, CACM.

[8]  W. W. Bledsoe,et al.  Variable Elimination and Chaining in a Resolution-based Prover for Inequalities , 1980, CADE.

[9]  Robert S. Boyer,et al.  Computational Logic , 1990, ESPRIT Basic Research Series.

[10]  W. Bledsoe A new method for proving certain Presburger formulas , 1975, IJCAI 1975.

[11]  J. Strother Moore,et al.  A Mechanical Proof of the Termination of Takeuchi's Function , 1979, Inf. Process. Lett..

[12]  James C. King,et al.  A Program Verifier , 1971, IFIP Congress.

[13]  Greg Nelson,et al.  Simplification by Cooperating Decision Procedures , 1979, TOPL.

[14]  Robert S. Boyer,et al.  Metafunctions: Proving Them Correct and Using Them Efficiently as New Proof Procedures. , 1979 .

[15]  Robert E. Shostak,et al.  Deciding Linear Inequalities by Computing Loop Residues , 1981, JACM.

[16]  G. B. Walker,et al.  Two Examples of , 1968 .

[17]  J. S. Moore,et al.  Proof Checking The RSA Public Key Encryption Algorithm , 1984 .

[18]  Robert E. Shostak,et al.  A Practical Decision Procedure for Arithmetic with Function Symbols , 1979, JACM.