PROLOG-based inductive theorem proving

  • Jieh Hsiang
  • Mandayam Srivas
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 206)


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.


Free Variable Theorem Prove Horn Clause Choice Point Abstract Data Type 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

6. References

  1. [BoM79]
    R. Boyer and J.S. Moore, in A Computational Logic, Academic Press, New York, 1979.Google Scholar
  2. [BDJ79]
    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. [ClM81]
    W. F. Clocksin and C. S. Mellish, in Programming in Prolog, Springer-Verlag, Berlin, Heidelberg, New York, 1981.Google Scholar
  4. [GoT79]
    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. [Gog80]
    J. A. Goguen, “How to Prove Algebraic Inductive Hypothesis Without Induction”, in Proc. 5th Conf. on Automated Deduction, 1980, 356–372.Google Scholar
  6. [HsD83]
    J. Hsiang and N. Dershowitz, “Rewrite Method for Clausal and Nonclausal Theorem Proving”, Proc. 10th ICALP, July 1983, 331–346.Google Scholar
  7. [HsS85]
    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. [HuH80]
    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. [JoK84]
    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. [KnB70]
    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. [Kor83]
    W. A. Kornfeld, “Equality in Prolog”, in Proc. 8th IJCAI, Karlsruhe, Germany, August 1983, 514–519.Google Scholar
  12. [Lan75]
    D. S. Lankford, “Canonical Inference”, Report ATP-32, Univ. of Texas at Austin, 1975.Google Scholar
  13. [Lan79]
    D. S. Lankford, “Some New Approaches to the Theory and Application of Conditional Term Rewriting Systems”, Report, Louisiana Tech Univ., 1979.Google Scholar
  14. [Mus80]
    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. [Pla84]
    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. [Rei]
    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. [Rem83]
    J. L. Remy, “Conditional Term rewriting System for Abstract Data Types”, in Submitted for Publication, University of Nancy, France, June 1983.Google Scholar
  18. [Sri82]
    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. [Sti84]
    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. [Thi84]
    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

Copyright information

© Springer-Verlag Berlin Heidelberg 1985

Authors and Affiliations

  • Jieh Hsiang
    • 1
  • Mandayam Srivas
    • 1
  1. 1.Department of Computer ScienceState University of New York at Stony BrookStony Brook

Personalised recommendations