Advertisement

Journal of Automated Reasoning

, Volume 26, Issue 1, pp 1–49 | Cite as

Induction Proofs with Partial Functions

  • Jürgen Giesl
Article

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.

induction automated theorem proving partial functions 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.Google Scholar
  2. 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. 3.
    Birkhoff, G.: On the structure of abstract algebras, Proc. Cambridge Philos. Soc. 31 (1934), 433-454.Google Scholar
  4. 4.
    Bouhoula, A. and Rusinowitch, M.: Implicit induction in conditional theories, J. Automated Reasoning 14 (1995), 189-235.Google Scholar
  5. 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. 6.
    Boyer, R. S. and Moore, J S.: A Computational Logic, Academic Press, 1979.Google Scholar
  7. 7.
    Boyer, R. S. and Kaufmann, M.: On the feasibility of mechanically verifying SASL programs, Tech. Rep. ARC 84-16, Burroughs Research Center, 1984.Google Scholar
  8. 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.Google Scholar
  9. 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. 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. 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.psGoogle Scholar
  12. 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. 13.
    Brauburger, J. and Giesl, J.: Approximating the domains of functional and imperative programs, Sci. Comput. Programming 35 (1999), 113-136.Google Scholar
  14. 14.
    Bronsard, F., Reddy, U. S., and Hasker, R. W.: Induction using term orders, J. Automated Reasoning 16 (1996), 3-37.Google Scholar
  15. 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. 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. 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. 18.
    Busch, H.: Unification-based induction, in Proc. 6th Int. Workshop Higher Order Logic Theorem Proving Appl., Vancouver, Canada, Elsevier, 1993.Google Scholar
  19. 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. 20.
    Dershowitz, N.: Termination of rewriting, J. Symbolic Comput. 3 (1987), 69-115.Google Scholar
  21. 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. 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. 23.
    Gardner, M.: Wheels, Life And Other Mathematical Amusements, W. H. Freeman and Company, 1983.Google Scholar
  24. 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. 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. 26.
    Giesl, J.: Termination of nested and mutually recursive algorithms, J. Automated Reasoning 19 (1997), 1-29.Google Scholar
  27. 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.psGoogle Scholar
  28. 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.Google Scholar
  29. 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. 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.Google Scholar
  31. 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.Google Scholar
  32. 32.
    Gordon, M. J. C. and Melham, T. F.: Introduction to HOL: A Theorem-Proving Environment for Higher-Order Logic, Cambridge Univ. Press, 1993.Google Scholar
  33. 33.
    Guttag, J. V.: Abstract data types and the development of data structures, Comm. ACM 20 (1977) 396-404.Google Scholar
  34. 34.
    Huet, G.: Confluent reductions: Abstract properties and applications to term rewriting systems, J. ACM 27 (1980), 797-821.Google Scholar
  35. 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. 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. 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. 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. 39.
    Kapur, D. and Musser, D. R.: Inductive reasoning with incomplete specifications, in Proc. 1st IEEE Symp. Logic in Computer Science, IEEE Press, 1986.Google Scholar
  40. 40.
    Kapur, D. and Musser, D. R.: Proof by consistency, Artif. Intell. 31 (1987), 125-157.Google Scholar
  41. 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. 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. 43.
    Kapur, D. and Subramaniam, M.: Automating induction over mutually recursive functions, in Proc. 5th Int. Conf. Algebraic Meth. and Software Technology, Springer, 1996.Google Scholar
  44. 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.Google Scholar
  45. 45.
    Kaufmann, M.: A sound theorem prover for a higher-order functional language, Technical Report ARC 86-01, Burroughs Research Center, 1986.Google Scholar
  46. 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. 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. 48.
    Kleene, S. C.: Introduction to Metamathematics, Van Nostrand, 1952.Google Scholar
  49. 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.Google Scholar
  50. 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. 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. 52.
    Loeckx, J. and Sieber, K.: The Foundations of Program Verification, Wiley-Teubner, 1987.Google Scholar
  53. 53.
    Lucas, S.: Context-sensitive computations in functional and functional logic programs, J. Functional and Logic Programming 1 (1998), 1-61.Google Scholar
  54. 54.
    Manna, Z.: Mathematical Theory of Computation, McGraw-Hill, 1974.Google Scholar
  55. 55.
    Manna, Z. and Waldinger, R.: Deductive synthesis of the unification algorithm, Sci. Comput. Programming 1 (1981), 5-48.Google Scholar
  56. 56.
    McCarthy, J.: Recursive functions of symbolic expressions and their computation by machine, Comm. ACM 3 (1960), 184-195.Google Scholar
  57. 57.
    Morris, J. H. and Wegbreit, B.: Subgoal induction, Comm. ACM 20 (1977) 209-222.Google Scholar
  58. 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.Google Scholar
  59. 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. 60.
    Padawitz, P.: Inductive expansion, Internal Report MIP-8907, Universität Passau, Germany, 1989.Google Scholar
  61. 61.
    Paulson, L. C.: Verifying the unification algorithm in LCF, Sci. of Comput. Programming 5 (1985), 143-169.Google Scholar
  62. 62.
    Paulson, L. C.: Logic and Computation, Cambridge Univ. Press, 1987.Google Scholar
  63. 63.
    Paulson, L. C.: ISABELLE: A Generic Theorem Prover, Lecture Notes in Comput. Sci. 828, Springer, 1994.Google Scholar
  64. 64.
    Plümer, L.: Termination Proofs for Logic Programs, Lecture Notes in Artif. Intell. 446, Springer, 1990.Google Scholar
  65. 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. 66.
    Reichel, H.: Initial Computability, Algebraic Specifications and Partial Algebras, Oxford Univ. Press, 1987.Google Scholar
  67. 67.
    Robinson, J. A.: A machine oriented logic based on the resolution principle, J. ACM 12 (1965), 23-41.Google Scholar
  68. 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. 69.
    Shankar, N.: A mechanical proof of the Church-Rosser theorem, J. ACM 35 (1988), 475-522.Google Scholar
  70. 70.
    Shankar, N.: A logical basis for functional programming, Draft, Stanford University, 1989.Google Scholar
  71. 71.
    Shankar, N.: Recursive programming and proving, Course Notes CS 306, SRI International, 1990.Google Scholar
  72. 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. 73.
    Steinbach, J.: Simplification orderings: History of results, Fund. Inform. 24 (1995), 47-87.Google Scholar
  74. 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. 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.Google Scholar
  76. 76.
    Walther, C.: On proving the termination of algorithms by machine, Artif. Intell. 71 (1994), 101-157.Google Scholar
  77. 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. 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. 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

Copyright information

© Kluwer Academic Publishers 2001

Authors and Affiliations

  • Jürgen Giesl
    • 1
  1. 1.Computer Science Department, Farris Engineering CenterUniversity of New MexicoAlbuquerqueU.S.A.

Personalised recommendations