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.
Similar content being viewed by others
References
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.
Bachmair, L.: Proof by consistency in equational theories, in Proc. 3rd IEEE Symp. Logic in Computer Science, Edinburgh, Scotland, IEEE Press, 1988.
Birkhoff, G.: On the structure of abstract algebras, Proc. Cambridge Philos. Soc. 31 (1934), 433-454.
Bouhoula, A. and Rusinowitch, M.: Implicit induction in conditional theories, J. Automated Reasoning 14 (1995), 189-235.
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.
Boyer, R. S. and Moore, J S.: A Computational Logic, Academic Press, 1979.
Boyer, R. S. and Kaufmann, M.: On the feasibility of mechanically verifying SASL programs, Tech. Rep. ARC 84-16, Burroughs Research Center, 1984.
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.
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.
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.
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
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.
Brauburger, J. and Giesl, J.: Approximating the domains of functional and imperative programs, Sci. Comput. Programming 35 (1999), 113-136.
Bronsard, F., Reddy, U. S., and Hasker, R. W.: Induction using term orders, J. Automated Reasoning 16 (1996), 3-37.
Bundy, A.: A rational reconstruction and extension of recursion analysis, in Proc. 11th Int. Joint Conf. AI, Detroit, MI, Morgan Kaufmann, 1989.
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.
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.
Busch, H.: Unification-based induction, in Proc. 6th Int. Workshop Higher Order Logic Theorem Proving Appl., Vancouver, Canada, Elsevier, 1993.
De Schreye, D. and Decorte, S.: Termination of logic programs: the never-ending story, J. Logic Programming 19, 20 (1994), 199-260.
Dershowitz, N.: Termination of rewriting, J. Symbolic Comput. 3 (1987), 69-115.
Farmer, W. M.: A partial function's version of Church's simple theory of types, J. Symbolic Logic 55 (1990), 1269-1291.
Finn, S., Fourman, M. P., and Longley, J.: Partial functions in a total setting, J. Automated Reasoning 18 (1997), 85-104.
Gardner, M.: Wheels, Life And Other Mathematical Amusements, W. H. Freeman and Company, 1983.
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.
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.
Giesl, J.: Termination of nested and mutually recursive algorithms, J. Automated Reasoning 19 (1997), 1-29.
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
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.
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.
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.
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.
Gordon, M. J. C. and Melham, T. F.: Introduction to HOL: A Theorem-Proving Environment for Higher-Order Logic, Cambridge Univ. Press, 1993.
Guttag, J. V.: Abstract data types and the development of data structures, Comm. ACM 20 (1977) 396-404.
Huet, G.: Confluent reductions: Abstract properties and applications to term rewriting systems, J. ACM 27 (1980), 797-821.
Huet, G. and Hullot, J.-M.: Proofs by induction in equational theories with constructors, J. Comput. and System Sci. 25 (1982) 239-266.
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.
Jouannaud, J.-P. and Kounalis, E.: Automatic proofs by induction in theories without constructors, Inform. and Comput. 82 (1989) 1-33.
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.
Kapur, D. and Musser, D. R.: Inductive reasoning with incomplete specifications, in Proc. 1st IEEE Symp. Logic in Computer Science, IEEE Press, 1986.
Kapur, D. and Musser, D. R.: Proof by consistency, Artif. Intell. 31 (1987), 125-157.
Kapur, D. and Zhang, H.: An overview of rewrite rule laboratory (RRL), J. Comput. and Math. Appl. 29 (1995) 91-114.
Kapur, D. and Subramaniam, M.: New uses of linear arithmetic in automated theorem proving by induction, J. Automated Reasoning 16 (1996), 39-78.
Kapur, D. and Subramaniam, M.: Automating induction over mutually recursive functions, in Proc. 5th Int. Conf. Algebraic Meth. and Software Technology, Springer, 1996.
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.
Kaufmann, M.: A sound theorem prover for a higher-order functional language, Technical Report ARC 86-01, Burroughs Research Center, 1986.
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.
Kerber, M. and Kohlhase, M.: A tableau calculus for partial functions, Collegium Logicum-Annals of the Kurt Gödel-Society 2 (1996), 21-49.
Kleene, S. C.: Introduction to Metamathematics, Van Nostrand, 1952.
Knuth, D. E. and Bendix, P. B.: Simple word problems in universal algebras, in J. Leech (ed.), Computational Problems in Abstract Algebra, Pergamon, 1970.
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.
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.
Loeckx, J. and Sieber, K.: The Foundations of Program Verification, Wiley-Teubner, 1987.
Lucas, S.: Context-sensitive computations in functional and functional logic programs, J. Functional and Logic Programming 1 (1998), 1-61.
Manna, Z.: Mathematical Theory of Computation, McGraw-Hill, 1974.
Manna, Z. and Waldinger, R.: Deductive synthesis of the unification algorithm, Sci. Comput. Programming 1 (1981), 5-48.
McCarthy, J.: Recursive functions of symbolic expressions and their computation by machine, Comm. ACM 3 (1960), 184-195.
Morris, J. H. and Wegbreit, B.: Subgoal induction, Comm. ACM 20 (1977) 209-222.
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.
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.
Padawitz, P.: Inductive expansion, Internal Report MIP-8907, Universität Passau, Germany, 1989.
Paulson, L. C.: Verifying the unification algorithm in LCF, Sci. of Comput. Programming 5 (1985), 143-169.
Paulson, L. C.: Logic and Computation, Cambridge Univ. Press, 1987.
Paulson, L. C.: ISABELLE: A Generic Theorem Prover, Lecture Notes in Comput. Sci. 828, Springer, 1994.
Plümer, L.: Termination Proofs for Logic Programs, Lecture Notes in Artif. Intell. 446, Springer, 1990.
Reddy, U. S.: Term rewriting induction, in Proc. 10th Int. Conf. Automated Deduction, Kaiserslautern, Germany, Lecture Notes in Comput. Sci. 449, Springer, 1990.
Reichel, H.: Initial Computability, Algebraic Specifications and Partial Algebras, Oxford Univ. Press, 1987.
Robinson, J. A.: A machine oriented logic based on the resolution principle, J. ACM 12 (1965), 23-41.
Scott, D. S.: A type-theoretic alternative to CUCH, ISWIM, PWHY, Notes, Oxford, 1969. Annotated version in Theoret. Comput. Sci. 121 (1993), 411-440.
Shankar, N.: A mechanical proof of the Church-Rosser theorem, J. ACM 35 (1988), 475-522.
Shankar, N.: A logical basis for functional programming, Draft, Stanford University, 1989.
Shankar, N.: Recursive programming and proving, Course Notes CS 306, SRI International, 1990.
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.
Steinbach, J.: Simplification orderings: History of results, Fund. Inform. 24 (1995), 47-87.
Ullman, J. D. and van Gelder, A.: Efficient tests for top-down termination of logical rules, J. ACM 35 (1988), 345-373.
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.
Walther, C.: On proving the termination of algorithms by machine, Artif. Intell. 71 (1994), 101-157.
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.
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.
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.
Author information
Authors and Affiliations
Rights 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
Issue Date:
DOI: https://doi.org/10.1023/A:1006408829523