Abstract
Although PROLOG is a programming language based on techniques from theorem proving its use as a base for a theorem prover has not been explored until recently ([Sti84]). In this paper, we introduce a PROLOG-based deductive theorem proving method for proving first order inductive theory representable in Horn clauses. The method has the following characteristics: (1) It automatically partitions the domains over which the variables range into subdomains according to the manner in which the predicate symbols in the theorem are defined. (2) For each subdomain of the domain the prover returns a lemma. If the lemma is true, then the target theorem is true for this subdomain. The lemma could also be an induction hypothesis for the theorem. (3) The method does not explicitly use any inductive inference rule. The induction hypothesis, if needed for a certain subdomain, will sometimes be generated from a (limited) forward chaining mechanism in the prover and not from employing any particular inference rule.
In addition to the backward chaining and backtracking facilities of PROLOG, our method introduces three new mechanisms — skolemization by need, suspended evaluation, and limited forward chaining. These new mechanisms are simple enough to be easily implemented or even incorporated into PROLOG. We demonstrate the use of the theorem prover for verifying PROLOG programs and proving properties of data types.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
6. References
R. Boyer and J.S. Moore, in A Computational Logic, Academic Press, New York, 1979.
D. Brand, J. A. Darringer and W. H. Joyner, “Completeness of Conditional Reductions”, in Proc. 4th Conference on Automated Deduction, 1979, 36–42.
W. F. Clocksin and C. S. Mellish, in Programming in Prolog, Springer-Verlag, Berlin, Heidelberg, New York, 1981.
J. A. Goguen and J. J. Tardo, “An Introduction to OBJ: A Language for Writing and Testing Formal Algebraic Program Specifications”, in Proceedings of the Conference on Specification of Reliable Software, Cambridge, MA 02139, 1979.
J. A. Goguen, “How to Prove Algebraic Inductive Hypothesis Without Induction”, in Proc. 5th Conf. on Automated Deduction, 1980, 356–372.
J. Hsiang and N. Dershowitz, “Rewrite Method for Clausal and Nonclausal Theorem Proving”, Proc. 10th ICALP, July 1983, 331–346.
J. Hsiang and M. K. Srivas, “A PROLOG Environment for Developing and Reasoning about Data Types”, Tech. Rep. 84/74, Dept. of CS, SUNY/Stony Brook, Stony Brook, NY 11794, Berlin, March 25–29, 1985.
G. Huet and J. M. Hullot, “Proofs by Induction in Equational Theories with Constructors”, in 21st IEEE Symposium on Foundations of Computer Science, 1980, 797–821.
J. Jouannaud and H. Kirchner, “Completion of a Set of Rules Modulo a Set of Equations”, in 11th Symposium on Principles of Programming Languages, Salt Lake City, Utah, January, 1984.
D. E. Knuth and P. B. Bendix, “Simple Word Problems in Universal Algebras”, in Computational Algebra, J. Leach, (ed.), Pergamon Press, 1970, 263–297.
W. A. Kornfeld, “Equality in Prolog”, in Proc. 8th IJCAI, Karlsruhe, Germany, August 1983, 514–519.
D. S. Lankford, “Canonical Inference”, Report ATP-32, Univ. of Texas at Austin, 1975.
D. S. Lankford, “Some New Approaches to the Theory and Application of Conditional Term Rewriting Systems”, Report, Louisiana Tech Univ., 1979.
D. R. Musser, “On Proving Inductive Properties of Abstract Data Types”, in Conference Record of the Seventh Annual ACM Symposium on Principles of Programming Languages, Las Vegas, Nevada, January 1980, 154–162.
D. A. Plaisted, “The Occur-Check Problem in Prolog”, in 1984 International Symposium on Logic Programming, Atlantic City, New Jersey, Feb. 6–9, 1984, 272–280.
R. Reiter, “On Closed World Data Bases”, in Logic and Data Bases, H. G. J. Minker, (ed.), Plenum Press,, New York,, 55–76.
J. L. Remy, “Conditional Term rewriting System for Abstract Data Types”, in Submitted for Publication, University of Nancy, France, June 1983.
M. K. Srivas, “Automatic Synthesis of Implementations for Abstract Data Types from Algebraic Specifications”, in MIT/LCS/Tech. Rep.-276, Laboratory for Computer Science, MIT, June 1982.
M. E. Stickel, “A Prolog Technology Theorem Prover”, in 1984 International Symposium on Logic Programming, Atlantic City, New Jersey, Feb. 6–9, 1984, 212–219.
J. Thiel, “Stop Losing Sleep over Uncomplete Data Type Specifications”, in 11th Symposium on Principles of Programming Languages, Salt Lake City, Utah, January, 1984.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1985 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hsiang, J., Srivas, M. (1985). PROLOG-based inductive theorem proving. In: Maheshwari, S.N. (eds) Foundations of Software Technology and Theoretical Computer Science. FSTTCS 1985. Lecture Notes in Computer Science, vol 206. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-16042-6_7
Download citation
DOI: https://doi.org/10.1007/3-540-16042-6_7
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-16042-7
Online ISBN: 978-3-540-39722-9
eBook Packages: Springer Book Archive