Skip to main content
Log in

An approach to automatic deductive synthesis of functional programs

  • Published:
Annals of Mathematics and Artificial Intelligence Aims and scope Submit manuscript

Abstract

The work deals with automatic deductive synthesis of functional programs. Formal specification of a program is taken as a mathematical existence theorem and while proving it, we derive a program and simultaneously prove that this program corresponds to given specification. Several problems have to be resolved for automatic synthesis: the choice of synthesis rules that allows us to derive the basic constructions of a functional program, order of rule application and choice of a particular induction rule. The method proposed here is based on the deductive tableau method. The basic method gives rules for functional program construction. To determine the proof strategy we use some external heuristics, including rippling. And for the induction hypothesis formation the combination of rippling and the deductive tableau method became very useful. The proposed techniques are implemented in the system ALISA (Automatic Lisp Synthesizer) and used for automatic synthesis of several functions in the Lisp language.

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. Armando, A., Smaill, A.,Green, I.: Automatic synthesis of recursive programs: the proof-planning paradigm. Autom. Softw. Eng. 6(4), 329–356 (1999)

    Article  Google Scholar 

  2. Ayari, A., Basin, D.: A higher-order interpretation of deductive tableau. J. Symb. Comput. 31(5), 487–520 (2001)

    Article  MATH  MathSciNet  Google Scholar 

  3. Basin, D., Walsh, T.: Difference unification. In: Bajcsy, R. (ed.) Proceedings of the 13th IJCAI, pp. 116–122. Morgan Kaufmann (1993)

  4. Basin, D., Walsh, T.: A calculus for and termination of rippling. J. Autom. Reason. 16, 147–180 (1996)

    Article  MATH  MathSciNet  Google Scholar 

  5. Biermann, A., Krishnaswamy, R.: Constructing programs from example computations. IEEE Trans. Softw. Eng. 2(3), 141–153 (1976)

    Article  MathSciNet  Google Scholar 

  6. Bundy, A., van Harmelen, F., Horn, C., Smaill, A.: The Oyster-Clam system. In: Stickel, M.E. (ed.) Proceedings of the 10th International Conference on Automated Deduction. Lecture Notes in Artificial Intelligence, vol. 449, pp. 647–648 (1990)

  7. Bundy, A., Stevens A., van Harmelen, F., Ireland, A., Smaill, A.: Rippling: a heuristic for guiding inductive proofs. Artif. Intell. 62 (1993)

  8. Bundy, A.: The Automation of Proof by Mathematical Induction. Handbook of Automated Reasoning, vol. 1. Elsevier Science Publishers B.V. (2001)

  9. Bundy, A., Basin, D., Hutter, D., Ireland, A.: Rippling: Meta-level Guidance for Mathematical Reasoning. Cambridge University Press (2005)

  10. Bundy, A., Dixon, L., Gow, J., Fleuriot, J.: Constructing induction rules for deductive synthesis proofs. Electronic Notes in Theor. Comp. Sci. 153(1), 3–21 (2006)

    Article  Google Scholar 

  11. Burback, R., Manna, Z., Waldinger, R., et al.: Using the Deductive Tableau System. MacIntosh Educational Software Collection, Chariot Software Group (1990)

  12. Chang, C.-L., Lee, R.: Symbolic Logic and Mechanical Theorem Proving. Academic, New York (1973)

    MATH  Google Scholar 

  13. Constable, R.L., Allen, S.F., Brompley, H.M., et al.: Implementing Mathematics in Nuprl Proof Development System. Prentice Hall (1986)

  14. Howard, W.A.: The formulae-as-types notion of construction. In: Seldin, J.P., Hindley, J.R. (eds.) To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism, pp. 479–490. Academic (1980)

  15. Kitzelmann, E., Schmid, U.: Inductive synthesis of functional programs: an explanation based generalization approach. J. Mach. Learn. Res. 7, 429–454 (2006)

    MathSciNet  Google Scholar 

  16. Korukhova, Y.: Planning proof in the deductive tableau using rippling. In: Proceedings of the 5th International Conference RASC, pp. 384–389. Nottingham Trent University, UK (2004)

    Google Scholar 

  17. Korukhova, Y.: Automatic deductive synthesis of list programs in the system ALISA. Proceedings of 10th European Conference JELIA. Lecture Notes in Artificial Intelligence, pp. 242–252. Springer, Berlin (2006)

    Google Scholar 

  18. Kraan, I., Basin, D., Bundy, A.: Middle-out reasoning for synthesis and induction. J. Symb. Comput. 16(1–2), 113–145 (1996)

    MATH  MathSciNet  Google Scholar 

  19. Lee, R.C.T., Chang, C.L., Waldinger, R.J.: An improved program synthesizing algorithm and its correctness. Comm. ACM 17(4), 211–217 (1974)

    Article  MATH  MathSciNet  Google Scholar 

  20. Manna, Z., Waldinger, R.: A deductive approach to program synthesis. ACM Trans. Program. Lang. Syst. 2(1), 90–121 (1980)

    Article  MATH  Google Scholar 

  21. Manna, Z., Waldinger, R.: Fundamentals of deductive program synthesis. IEEE Trans. Softw. Eng. 18(8), 674–704 (1992)

    Article  Google Scholar 

  22. Paulson, L.C.: Isabelle: a generic theorem prover. Lecture Notes in Computer Science, vol. 828, pp. xvii–321 (1994)

  23. Pientka, B., Kreitz, C.: Automating inductive specification proofs. Fundam. Inform. 39(1–2), 189–208. IOS Press (1999)

    MATH  MathSciNet  Google Scholar 

  24. Simon, H.A.: Experiments with a heuristic compiler. J. ACM 10(4), 493–506 (1963)

    Article  MATH  Google Scholar 

  25. Traugott, J.: Deductive synthesis of sorting programs. J. Symb. Comput. 7, 533–572 (1989)

    MATH  Google Scholar 

  26. Tyugu, E.H.: Konceptual’noe Programmirovanie (Conceptual Programming). Moscow, Nauka (1984) (in Russian)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Yulia Korukhova.

Additional information

The work has been partially supported by RFBR grant 05-01-00948a.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Korukhova, Y. An approach to automatic deductive synthesis of functional programs. Ann Math Artif Intell 50, 255–271 (2007). https://doi.org/10.1007/s10472-007-9079-9

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10472-007-9079-9

Keywords

Mathematics Subject Classification

Navigation