Skip to main content

PROLOG-based inductive theorem proving

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 206))

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.

Unable to display preview. Download preview PDF.

6. References

  1. R. Boyer and J.S. Moore, in A Computational Logic, Academic Press, New York, 1979.

    Google Scholar 

  2. D. Brand, J. A. Darringer and W. H. Joyner, “Completeness of Conditional Reductions”, in Proc. 4th Conference on Automated Deduction, 1979, 36–42.

    Google Scholar 

  3. W. F. Clocksin and C. S. Mellish, in Programming in Prolog, Springer-Verlag, Berlin, Heidelberg, New York, 1981.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. J. A. Goguen, “How to Prove Algebraic Inductive Hypothesis Without Induction”, in Proc. 5th Conf. on Automated Deduction, 1980, 356–372.

    Google Scholar 

  6. J. Hsiang and N. Dershowitz, “Rewrite Method for Clausal and Nonclausal Theorem Proving”, Proc. 10th ICALP, July 1983, 331–346.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. D. E. Knuth and P. B. Bendix, “Simple Word Problems in Universal Algebras”, in Computational Algebra, J. Leach, (ed.), Pergamon Press, 1970, 263–297.

    Google Scholar 

  11. W. A. Kornfeld, “Equality in Prolog”, in Proc. 8th IJCAI, Karlsruhe, Germany, August 1983, 514–519.

    Google Scholar 

  12. D. S. Lankford, “Canonical Inference”, Report ATP-32, Univ. of Texas at Austin, 1975.

    Google Scholar 

  13. D. S. Lankford, “Some New Approaches to the Theory and Application of Conditional Term Rewriting Systems”, Report, Louisiana Tech Univ., 1979.

    Google Scholar 

  14. 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.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. R. Reiter, “On Closed World Data Bases”, in Logic and Data Bases, H. G. J. Minker, (ed.), Plenum Press,, New York,, 55–76.

    Google Scholar 

  17. J. L. Remy, “Conditional Term rewriting System for Abstract Data Types”, in Submitted for Publication, University of Nancy, France, June 1983.

    Google Scholar 

  18. 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.

    Google Scholar 

  19. 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.

    Google Scholar 

  20. J. Thiel, “Stop Losing Sleep over Uncomplete Data Type Specifications”, in 11th Symposium on Principles of Programming Languages, Salt Lake City, Utah, January, 1984.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

S. N. Maheshwari

Rights and permissions

Reprints 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

Publish with us

Policies and ethics