Skip to main content
Log in

Induction Proofs with Partial Functions

  • Published:
Journal of Automated Reasoning Aims and scope Submit manuscript

Abstract

In this paper we present a method for automated induction proofs about partial functions. We show that most well-known techniques developed for (explicit) induction theorem proving are unsound when dealing with partial functions. But surprisingly, by slightly restricting the application of these techniques, it is possible to develop a calculus for automated induction proofs with partial functions. In particular, under certain conditions one may even generate induction schemes from the recursions of nonterminating algorithms. The need for such induction schemes and the power of our calculus have been demonstrated on a large collection of nontrivial theorems (including Knuth and Bendix's critical pair lemma). In this way, existing induction theorem provers can be directly extended to partial functions without major changes of their logical framework.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. Avenhaus, J. and Madlener, K.: Theorem proving in hierarchical clausal specifications, in Du, Ko (eds), Advances in Algorithms, Languages, and Complexity, Kluwer Acad. Publ., 1997.

  2. Bachmair, L.: Proof by consistency in equational theories, in Proc. 3rd IEEE Symp. Logic in Computer Science, Edinburgh, Scotland, IEEE Press, 1988.

    Google Scholar 

  3. Birkhoff, G.: On the structure of abstract algebras, Proc. Cambridge Philos. Soc. 31 (1934), 433-454.

    Google Scholar 

  4. Bouhoula, A. and Rusinowitch, M.: Implicit induction in conditional theories, J. Automated Reasoning 14 (1995), 189-235.

    Google Scholar 

  5. Boulton, R. J.: Boyer-Moore automation for the HOL system, in Proc. 6th Int.Workshop Higher Order Logic Theorem Proving Appl., Vancouver, Canada, Elsevier, 1993.

    Google Scholar 

  6. Boyer, R. S. and Moore, J S.: A Computational Logic, Academic Press, 1979.

  7. Boyer, R. S. and Kaufmann, M.: On the feasibility of mechanically verifying SASL programs, Tech. Rep. ARC 84-16, Burroughs Research Center, 1984.

  8. Boyer, R. S. and Kaufmann, M.: A prototype theorem prover for a higher-order functional language, Tech. Rep. ARC 84-17, Burroughs Research Center, 1984.

  9. Boyer, R. S. and Moore, J S.: A mechanical proof of the Turing completeness of pure LISP, in W. W. Bledsoe and D. W. Loveland (eds), Automated Theorem Proving: After 25 Years, Amer. Math. Soc., RI, 1984.

    Google Scholar 

  10. Boyer, R. S. and Moore, J S.: The addition of bounded quantification and partial functions to a computational logic and its theorem prover, J. Automated Reasoning 4 (1988), 117-172.

    Google Scholar 

  11. Brauburger, J. and Giesl, J.: Termination analysis for partial functions, in Proc. 3rd Int. Static Analysis Symp., Aachen, Germany, Lecture Notes in Computer Sci. 1145, Springer, 1996. Extended version appeared as Technical Report IBN 96/33, TU Darmstadt. Available from http://www.inferenzsysteme.informatik.tu-darmstadt.de/~reports/notes/ ibn-96-33.ps

    Google Scholar 

  12. Brauburger, J. and Giesl, J.: Termination analysis by inductive evaluation, in Proc. 15th Int. Conf. Automated Deduction, Lindau, Germany, Lecture Notes in Artif. Intell. 1421, Springer, 1998.

    Google Scholar 

  13. Brauburger, J. and Giesl, J.: Approximating the domains of functional and imperative programs, Sci. Comput. Programming 35 (1999), 113-136.

    Google Scholar 

  14. Bronsard, F., Reddy, U. S., and Hasker, R. W.: Induction using term orders, J. Automated Reasoning 16 (1996), 3-37.

    Google Scholar 

  15. Bundy, A.: A rational reconstruction and extension of recursion analysis, in Proc. 11th Int. Joint Conf. AI, Detroit, MI, Morgan Kaufmann, 1989.

    Google Scholar 

  16. Bundy, A., van Harmelen, F., Smaill, A., and Ireland, A.: The OYSTER-CLAM system, in Proc. 10th Int. Conf. Automated Deduction, Kaiserslautern, Germany, Lecture Notes in Artif. Intell. 449, Springer, 1990.

    Google Scholar 

  17. Bundy, A., Stevens, A., van Harmelen, F., Ireland, A., and Smaill, A.: Rippling: A heuristic for guiding inductive proofs, Artif. Intell. 62 (1993), 185-253.

    Google Scholar 

  18. Busch, H.: Unification-based induction, in Proc. 6th Int. Workshop Higher Order Logic Theorem Proving Appl., Vancouver, Canada, Elsevier, 1993.

    Google Scholar 

  19. De Schreye, D. and Decorte, S.: Termination of logic programs: the never-ending story, J. Logic Programming 19, 20 (1994), 199-260.

    Google Scholar 

  20. Dershowitz, N.: Termination of rewriting, J. Symbolic Comput. 3 (1987), 69-115.

    Google Scholar 

  21. Farmer, W. M.: A partial function's version of Church's simple theory of types, J. Symbolic Logic 55 (1990), 1269-1291.

    Google Scholar 

  22. Finn, S., Fourman, M. P., and Longley, J.: Partial functions in a total setting, J. Automated Reasoning 18 (1997), 85-104.

    Google Scholar 

  23. Gardner, M.: Wheels, Life And Other Mathematical Amusements, W. H. Freeman and Company, 1983.

  24. Giesl, J.: Automated termination proofs with measure functions, in Proc. 19th Ann. German Conf. AI, Bielefeld, Germany, Lecture Notes in Artif. Intell. 981, Springer, 1995.

    Google Scholar 

  25. Giesl, J.: Termination analysis for functional programs using term orderings, in Proc. 2nd Int. Static Analysis Symp., Glasgow, Scotland, Lecture Notes in Comput. Sci. 983, Springer, 1995.

    Google Scholar 

  26. Giesl, J.: Termination of nested and mutually recursive algorithms, J. Automated Reasoning 19 (1997), 1-29.

    Google Scholar 

  27. Giesl, J.: The critical pair lemma: A case study for induction proofs with partial functions, Technical Report IBN 98/49, TU Darmstadt, 1998. Available from http://www. inferenzsysteme.informatik.tu-darmstadt. de/~reports/notes/ibn-98-49.ps

  28. Giesl, J., Walther, C., and Brauburger, J.: Termination analysis for functional programs, in W. Bibel and P. Schmitt (eds), Automated Deduction-A Basis for Applications, Vol. 3, Applied Logic Series 10, Kluwer Acad. Publ., 1998.

  29. Giesl, J. and Middeldorp, A.: Transforming context-sensitive rewrite systems, in Proc. 10th Int. Conf. Rewriting Techniques and Applications, Trento, Italy, Lecture Notes in Comput. Sci. 1631, Springer, 1999.

    Google Scholar 

  30. Goguen, J. A., Thatcher, J. W., and Wagner, E. G.: An initial algebra approach to the specification, correctness, and implementation of abstract data types, in R. T. Yeh (ed.), Current Trends in Programming Methodology, Vol. 4, Prentice-Hall, 1978.

  31. Gordon, M. J. C., Milner, R., and Wadsworth, C. P.: Edinburgh LCF: A Mechanised Logic of Computation, Lecture Notes in Comput. Sci. 78, Springer, 1979.

  32. Gordon, M. J. C. and Melham, T. F.: Introduction to HOL: A Theorem-Proving Environment for Higher-Order Logic, Cambridge Univ. Press, 1993.

  33. Guttag, J. V.: Abstract data types and the development of data structures, Comm. ACM 20 (1977) 396-404.

    Google Scholar 

  34. Huet, G.: Confluent reductions: Abstract properties and applications to term rewriting systems, J. ACM 27 (1980), 797-821.

    Google Scholar 

  35. Huet, G. and Hullot, J.-M.: Proofs by induction in equational theories with constructors, J. Comput. and System Sci. 25 (1982) 239-266.

    Google Scholar 

  36. Hutter, D. and Sengler, C.: INKA: The next generation, in Proc. 13th Int. Conf. Automated Deduction, New Brunswick, NJ, Lecture Notes in Artif. Intell. 1104, Springer, 1996.

    Google Scholar 

  37. Jouannaud, J.-P. and Kounalis, E.: Automatic proofs by induction in theories without constructors, Inform. and Comput. 82 (1989) 1-33.

    Google Scholar 

  38. Kapur, D., Narendran, P., and Zhang, H.: Proof by induction using test sets, in Proc. 8th Int. Conf. Automated Deduction, Oxford, England, Lecture Notes in Comput. Sci. 230, Springer, 1986.

    Google Scholar 

  39. Kapur, D. and Musser, D. R.: Inductive reasoning with incomplete specifications, in Proc. 1st IEEE Symp. Logic in Computer Science, IEEE Press, 1986.

  40. Kapur, D. and Musser, D. R.: Proof by consistency, Artif. Intell. 31 (1987), 125-157.

    Google Scholar 

  41. Kapur, D. and Zhang, H.: An overview of rewrite rule laboratory (RRL), J. Comput. and Math. Appl. 29 (1995) 91-114.

    Google Scholar 

  42. Kapur, D. and Subramaniam, M.: New uses of linear arithmetic in automated theorem proving by induction, J. Automated Reasoning 16 (1996), 39-78.

    Google Scholar 

  43. Kapur, D. and Subramaniam, M.: Automating induction over mutually recursive functions, in Proc. 5th Int. Conf. Algebraic Meth. and Software Technology, Springer, 1996.

  44. Kapur, D.: Constructors can be partial, too, in R. Veroff (ed.), Automated Reasoning and Its Applications-Essays in Honor of Larry Wos, MIT Press, 1997.

  45. Kaufmann, M.: A sound theorem prover for a higher-order functional language, Technical Report ARC 86-01, Burroughs Research Center, 1986.

  46. Kerber, M. and Kohlhase, M.: A mechanization of strong Kleene logic for partial functions, in Proc. 12th Int. Conf. Automated Deduction, Nancy, France, Lecture Notes in Artif. Intell. 814, Springer, 1994.

    Google Scholar 

  47. Kerber, M. and Kohlhase, M.: A tableau calculus for partial functions, Collegium Logicum-Annals of the Kurt Gödel-Society 2 (1996), 21-49.

    Google Scholar 

  48. Kleene, S. C.: Introduction to Metamathematics, Van Nostrand, 1952.

  49. Knuth, D. E. and Bendix, P. B.: Simple word problems in universal algebras, in J. Leech (ed.), Computational Problems in Abstract Algebra, Pergamon, 1970.

  50. Kreowski, H.-J.: Partial algebras flow from algebraic specifications, in Proc. 14th Int. Coll. on Automata, Languages, and Programming, Karlsruhe, Germany, Lecture Notes in Comput. Sci. 267, Springer, 1987.

    Google Scholar 

  51. Kühler, U. and Wirth, C.-P.: Conditional equational specifications of data types with partial operations for inductive theorem proving, in Proc. 8th Int. Conf. Rewriting Techniques and Applications, Sitges, Spain, Lecture Notes in Comput. Sci. 1232, Springer, 1997.

    Google Scholar 

  52. Loeckx, J. and Sieber, K.: The Foundations of Program Verification, Wiley-Teubner, 1987.

  53. Lucas, S.: Context-sensitive computations in functional and functional logic programs, J. Functional and Logic Programming 1 (1998), 1-61.

    Google Scholar 

  54. Manna, Z.: Mathematical Theory of Computation, McGraw-Hill, 1974.

  55. Manna, Z. and Waldinger, R.: Deductive synthesis of the unification algorithm, Sci. Comput. Programming 1 (1981), 5-48.

    Google Scholar 

  56. McCarthy, J.: Recursive functions of symbolic expressions and their computation by machine, Comm. ACM 3 (1960), 184-195.

    Google Scholar 

  57. Morris, J. H. and Wegbreit, B.: Subgoal induction, Comm. ACM 20 (1977) 209-222.

    Google Scholar 

  58. Mosses, P. D.: The use of sorts in algebraic specifications, in Proceedings of the 7th Workshop on Specifications of Abstract Data Types, Lecture Notes in Comput. Sci. 655, Springer, 1991.

  59. Nipkow, T.: More Church-Rosser proofs (in ISABELLE/HOL), in Proc. 13th Int. Conf. Automated Deduction, New Brunswick, NJ, Lecture Notes in Artif. Intell. 1104, Springer, 1996.

    Google Scholar 

  60. Padawitz, P.: Inductive expansion, Internal Report MIP-8907, Universität Passau, Germany, 1989.

    Google Scholar 

  61. Paulson, L. C.: Verifying the unification algorithm in LCF, Sci. of Comput. Programming 5 (1985), 143-169.

    Google Scholar 

  62. Paulson, L. C.: Logic and Computation, Cambridge Univ. Press, 1987.

  63. Paulson, L. C.: ISABELLE: A Generic Theorem Prover, Lecture Notes in Comput. Sci. 828, Springer, 1994.

  64. Plümer, L.: Termination Proofs for Logic Programs, Lecture Notes in Artif. Intell. 446, Springer, 1990.

  65. Reddy, U. S.: Term rewriting induction, in Proc. 10th Int. Conf. Automated Deduction, Kaiserslautern, Germany, Lecture Notes in Comput. Sci. 449, Springer, 1990.

    Google Scholar 

  66. Reichel, H.: Initial Computability, Algebraic Specifications and Partial Algebras, Oxford Univ. Press, 1987.

  67. Robinson, J. A.: A machine oriented logic based on the resolution principle, J. ACM 12 (1965), 23-41.

    Google Scholar 

  68. Scott, D. S.: A type-theoretic alternative to CUCH, ISWIM, PWHY, Notes, Oxford, 1969. Annotated version in Theoret. Comput. Sci. 121 (1993), 411-440.

    Google Scholar 

  69. Shankar, N.: A mechanical proof of the Church-Rosser theorem, J. ACM 35 (1988), 475-522.

    Google Scholar 

  70. Shankar, N.: A logical basis for functional programming, Draft, Stanford University, 1989.

  71. Shankar, N.: Recursive programming and proving, Course Notes CS 306, SRI International, 1990.

  72. Slind, K.: Derivation and use of induction schemes in higher-order logic, in Proc. 10th Int. Conf. on Theorem Proving in Higher Order Logics, Murray Hill, NJ, Lecture Notes in Comput. Sci. 1275, Springer, 1997.

    Google Scholar 

  73. Steinbach, J.: Simplification orderings: History of results, Fund. Inform. 24 (1995), 47-87.

    Google Scholar 

  74. Ullman, J. D. and van Gelder, A.: Efficient tests for top-down termination of logical rules, J. ACM 35 (1988), 345-373.

    Google Scholar 

  75. Walther, C.: Mathematical induction, in D. M. Gabbay, C. J. Hogger, and J. A. Robinson (eds), Handbook of Logic in Artificial Intelligence and Logic Programming, Vol. 2, Oxford Univ. Press, 1994.

  76. Walther, C.: On proving the termination of algorithms by machine, Artif. Intell. 71 (1994), 101-157.

    Google Scholar 

  77. Wirth, C.-P. and Gramlich, B.: On notions of inductive validity for first-order equational clauses, in Proc. 12th Int. Conf. Automated Deduction, Nancy, France, Lecture Notes in Artif. Intell. 814, Springer, 1994.

    Google Scholar 

  78. Wirth, C.-P. and Kühler, U.: Inductive theorem proving in theories specified by positive/negative-conditional equations, SEKI-Report SR-95-15, Universität Kaiserslautern, Germany, 1995.

    Google Scholar 

  79. Zhang, H., Kapur, D., and Krishnamoorthy, M. S.: A mechanizable induction principle for equational specifications, in Proc. 9th Int. Conf. Automated Deduction, Argonne, IL, Lecture Notes in Comput. Sci. 310, Springer, 1988.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Giesl, J. Induction Proofs with Partial Functions. Journal of Automated Reasoning 26, 1–49 (2001). https://doi.org/10.1023/A:1006408829523

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1006408829523

Navigation