Skip to main content
Log in

Automated Synthesis of Recursive Programs from a ∀∃ Logical Specification

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

Abstract

The specification of a function is often given by a logical formula, called a ∀∃-formula, of the following form: ∀x∃yΦ(x,y). More precisely, a specification is given in the context of a certain theory E and is stated by the judgment

E ⊢ ∀x∃y Φ(x,y).

In this paper, we consider the case in which E is an equational theory. It is divided into two parts. In the first part, we develop a theory for the automated proof of such judgments in the initial model ofE . The validity in the initial model means that we consider not only equational theorems but also inductive ones. From our theory we deduce an automated method for the proof of a class of such judgments. In the second part, we present an automatedmethod for program synthesis. We show how the previous proof method can be used to generate a recursive program for a function f that satisfies a judgment

E ⊢ ∀x Φ(x, f(x)).

We illustrate our method with the automated synthesis of some recursive programs on domains such as integers and lists. Finally, we describe our system LEMMA, which is an implementation in Common Lisp of these new methods.

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.

Similar content being viewed by others

References

  1. Bachmair, L.: Proof by consistency in equational theories, in 3rd Symposium on Logic in Computer Science, IEEE, Edinburgh (UK), 1988, pp. 228–233.

  2. Barras, B., Boutin, S., Cornes, C., Courant, J., Filliâtre, J.-C., Giménez, E., Herbelin, H., Huet, G., Muñoz, C., Murthy, C., Parent, C., Paulin-Mohring, C., Saïbi, A., and Werner, B.: The Coq proof assistant, reference manual: Version 6.1, Technical Report RT-0203, INRIA, 1996.

  3. Bellegarde, F.: Automating synthesis by completion, in C. Queinnec, V. Viguie Donzeau-Gouge, and P. Weiss (eds), Journées Francophones des Langages Applicatifs, Vol. 13 of Collection didactique, INRIA, January 1995, pp. 177–202.

  4. Biundo, S.: A synthesis system mechanizing proofs by induction, in B. Du Boulay, D. Hogg, and L. Steels (eds), Advances in Artificial Intelligence, Vol. 2, Elsevier Science Publishers B.V. (North-Holland), 1987, pp. 287–296.

    Google Scholar 

  5. Biundo, S.: Automated synthesis of recursive algorithms as a theorem proving tool, in Y. Kodratoff (ed.), 8th European Conference on Artificial Intelligence, Munich (Germany), August 1988, pp. 553–558.

  6. Bouhoula, A.: Preuves automatiques par récurrence dans les théories conditionnelles, Ph.D. thesis, Université de Nancy I, March 1994.

  7. Bouhoula, A., Kounalis, E., and Rusinowitch, M.: Automated mathematical induction, Journal of Logic and Computation 5(5) (1995), 631–668.

    Google Scholar 

  8. Bouhoula, A. and Rusinowitch, M.: Implicit induction in conditional theories, Journal of Automated Reasoning 14 (1995), 189–235.

    Google Scholar 

  9. Boyer, R. and Moore, J.: A Computational Logic, Academic Press, New York (USA), 1979.

    Google Scholar 

  10. Bundy, A., Smaill, A., and Wiggins, G.: The synthesis of logic programs from inductive proofs, in J. Lloyd (ed.), Symposium on Computational Logic, Esprit Basic Research Series, Springer-Verlag, 1990, pp. 135–149.

  11. Bundy, A., Stevens, S., van Harmelen, F., Ireland, A., and Smaill, A.: Rippling: A heuristic for guiding inductive proofs, Artificial Intelligence 62 (1993), 185–253.

    Google Scholar 

  12. Bundy, A., van Harmelen, F., Horn, C., and Smaill, A.: The Oyster-Clam system, in M. E. Stickel (ed.), 10th Conference on Automated Deduction, LNCS 449, Springer-Verlag, Kaiserslautern (Germany), July 1990, pp. 647–648.

    Google Scholar 

  13. Burstall, R.: Proving properties of programs by structural induction, Computer Journal 12(1) (1969), 41–48.

    Google Scholar 

  14. Burstall, R. and Darlington, J.: A transformation system for developing recursive programs, Journal of the ACM 24(1) (1977), 44–67.

    Google Scholar 

  15. Chazarain, J. and Kounalis, E.: Mechanizable inductive proofs for a classs of ∀ ∃ formulas, in A. Bundy (ed.), 12th Conference on Automated Deduction, LNCS 814, Springer-Verlag, Nancy (France), 1994, pp. 118–132.

    Google Scholar 

  16. Chazarain, J. and Muller, S.: Lemma: A system for automated synthesis of recursive programs in equational theories, in J. Hsiang (ed.), 6th International Conference on Rewriting Techniques and Applications, RTA-95, LNCS 914, Springer-Verlag, Kaiserslautern (Germany), April 1995, pp. 420–425.

    Google Scholar 

  17. Constable, R. L., Allen, S. F., Bromley, H. M., Cleaveland, W., Cremer, J., Harper, R., Howe, D., Knoblock, T., Mendler, N. P., Panangaden, P., Sasaki, J., and Smith, S.: Implementing Mathematics with the NuPrl Proof Development System, Prentice Hall, 1986.

  18. Darlington, J.: An experimental program transformation and synthesis system, Artificial Intelligence 16(1) (1981), 1–46.

    Google Scholar 

  19. Dershowitz, N.: Computing with rewrite systems, Information and Control 65(2–3) (1985), 122–157.

    Google Scholar 

  20. Dershowitz, N.: Synthesis by completion, in 9th International Joint Conference on Artificial Intelligence, Vol. 1, Los Angeles (USA), 1985, pp. 208–214.

    Google Scholar 

  21. Dershowitz, N.: Termination of rewriting, Journal of Symbolic Computation 3(1–2) (1987), 69–116.

    Google Scholar 

  22. Dershowitz, N. and Manna, Z.: Proving termination with multiset orderings, Communications of the ACM 22(8) (1979), 465–476.

    Google Scholar 

  23. Dershowitz, N. and Pinchover, E.: Inductive synthesis of equational programs, in 8th National Conference on Artificial Intelligence (AAAI-90), MIT Press, Boston (USA), 1990, pp. 234–239.

    Google Scholar 

  24. Dershowitz, N. and Reddy, U.: Deductive and inductive synthesis of equational programs, Journal of Symbolic Computation 15 (1993), 467–494.

    Google Scholar 

  25. Fribourg, L.: A strong restriction of the inductive completion procedure, Journal of Symbolic Computation 8(3) (1989), 253–276.

    Google Scholar 

  26. Fribourg, L.: Extracting logic programs from proofs that use extended Prolog execution and induction, in J.-M. Jacquet (ed.), Constructing Logic Programs, Chapter 2, Wiley, 1993, pp. 39–66.

  27. Garland, M. and Guttag, J.: Inductive methods for reasoning about abstract data types, in 15th Symposium on Principles of Programming Languages, ACM, San Diego (USA), 1988, pp. 219–228.

    Google Scholar 

  28. Green, C. C.: Application of theorem-proving to problem solving, in 1st International Joint Conference on Artificial Intelligence, Washington, DC (USA), May 1969, pp. 219–239.

  29. Hesketh, J., Bundy, A., and Smaill, A.: Using middle-out reasoning to control the synthesis of tail-recursive programs, in D. Kapur (ed.), 11th Conference on Automated Deduction, LNCS 607, Springer-Verlag, Saratoga Springs, NY, June 1992, pp. 310–324.

    Google Scholar 

  30. Hogger, C. J.: Derivation of logic programs, Journal of the ACM 28(2) (1981), 372–392.

    Google Scholar 

  31. Huet, G. and Hullot, J.-M.: Proofs by induction in equational theories with constructors, Journal of Computer and System Sciences 25(2) (1982), 239–266.

    Google Scholar 

  32. Hullot, J.-M.: Compilation de formes canoniques dans des théories équationnelles, Ph.D. thesis, Université Paris-Sud, November 1980.

  33. Jouannaud, J.-P. and Kounalis, E.: Proofs by induction in equational theories without constructors, in 1st Symposium on Logic in Computer Science, IEEE, June 1986, pp. 358–366. Full paper in Information and Computation 82 (1989).

  34. Kapur, D., Narendran, P., and Zhang, H.: Proof by induction using test sets, in J. H. Siekmann (ed.), 8th Conference on Automated Deduction, LNCS 230, Springer-Verlag, Oxford (UK), July 1986, pp. 99–117.

    Google Scholar 

  35. Kounalis, E.: A simplification-based approach to program synthesis, in 10th European Conference on Artificial Intelligence (ECAI 92), Vienna (Austria), August 1992, pp. 82–86.

  36. Kounalis, E.: Testing for the ground (co)-reducibility property in term rewriting systems, Theoretical Computer Science 106 (1992), 87–117.

    Google Scholar 

  37. Kounalis, E. and Rusinowitch, M.: Mechanizing inductive reasoning, Bulletin of the European Association for Theoretical Computer Science 41 (1990), 216–226.

    Google Scholar 

  38. Kraan, I., Basin, D., and Bundy, A.: Middle-out reasoning for synthesis and induction, Journal of Automated Reasoning 16 (1996), 113–145.

    Google Scholar 

  39. Manna, Z. and Waldinger, R.: A deductive approach to program synthesis, ACM Transactions on Programming Languages and Systems 2(1) (1980), 90–121.

    Google Scholar 

  40. Manna, Z. and Waldinger, R.: Fundamentals of deductive program synthesis, IEEE Transactions on Software Engineering 18(8) (1992), 674–704.

    Google Scholar 

  41. Musser, D.: On proving inductive properties of abstract data types, in 7th Symposium on Principles of Programming Languages, Las Vegas (USA), Association for Computing Machinery, 1980, pp. 154–162.

  42. Padawitz, P.: Computing in Horn Clause Theories, EATCS Monographs on Theoretical Computer Science 16, Springer-Verlag, 1988.

  43. Reddy, U.: Rewriting techniques for program synthesis, in N. Dershowitz (ed.), 3rd International Conference on Rewriting Techniques and Applications, LNCS 355, Springer-Verlag, Chapel Hill (USA), 1989, pp. 388–403.

    Google Scholar 

  44. Reddy, U.: Term rewriting induction, in M. E. Stickel (ed.), 10th Conference on Automated Deduction, LNCS 449, Springer-Verlag, Kaiserslautern (Germany), July 1990, pp. 162–177.

    Google Scholar 

  45. Smith, D.: Derived preconditions and their use in program synthesis, in D. W. Loveland (ed.), 6th Conference on Automated Deduction, LNCS 138, Springer-Verlag, New York (USA), 1982.

    Google Scholar 

  46. Traugott, J.: Deductive synthesis of sorting programs, Journal of Symbolic Computation 7 (1989), 533–572.

    Google Scholar 

  47. Walther, C.: Argument-bounded algorithms as a basis for automated termination proofs, in E. Lusk and R. Overbeek (eds), 9th Conference on Automated Deduction, LNCS 310, Springer-Verlag, Argonne (USA), May 1988, pp. 602–621.

    Google Scholar 

  48. Zhang, H., Kapur, D., and Krishnamoorthy, M. S.: A mechanizable induction principle for equational specifications, in E. Lusk and R. Overbeek (eds), 9th Conference on Automated Deduction, LNCS 310, Springer-Verlag, Argonne (USA), May 1988, pp. 162–181.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Chazarain, J., Muller, S. Automated Synthesis of Recursive Programs from a ∀∃ Logical Specification. Journal of Automated Reasoning 21, 233–275 (1998). https://doi.org/10.1023/A:1005903504159

Download citation

  • Issue Date:

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

Navigation