Analytical Inductive Functional Programming

  • Emanuel Kitzelmann
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5438)


We describe a new method to induce functional programs from small sets of non-recursive equations representing a subset of their input-output behaviour. Classical attempts to construct functional Lisp programs from input/output-examples are analytical, i.e., a Lisp program belonging to a strongly restricted program class is algorithmically derived from examples. More recent approaches enumerate candidate programs and only test them against the examples until a program which correctly computes the examples is found. Theoretically, large program classes can be induced generate-and-test based, yet this approach suffers from combinatorial explosion. We propose a combination of search and analytical techniques. The method described in this paper is search based in order to avoid strong a-priori restrictions as imposed by the classical analytical approach. Yet candidate programs are computed based on analytical techniques from the examples instead of being generated independently from the examples. A prototypical implementation shows first that programs are inducible which are not in scope of classical purely analytical techniques and second that the induction times are shorter than in recent generate-and-test based methods.


Logic Program Target Function Function Symbol Recursive Function Recursive Call 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Gold, E.M.: Language identification in the limit. Information and Control 10(5), 447–474 (1967)MathSciNetCrossRefzbMATHGoogle Scholar
  2. 2.
    Summers, P.D.: A methodology for LISP program construction from examples. Journal of the ACM 24(1), 161–175 (1977)MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
    Smith, D.R.: The synthesis of LISP programs from examples: A survey. In: Biermann, A.W., Guiho, G., Kodratoff, Y. (eds.) Automatic Program Construction Techniques, pp. 307–324. Macmillan, Basingstoke (1984)Google Scholar
  4. 4.
    Kitzelmann, E., Schmid, U.: Inductive synthesis of functional programs: An explanation based generalization approach. Journal of Machine Learning Research 7, 429–454 (2006)MathSciNetzbMATHGoogle Scholar
  5. 5.
    Katayama, S.: Systematic search for lambda expressions. In: van Eekelen, M.C.J.D. (ed.) Revised Selected Papers from the Sixth Symposium on Trends in Functional Programming, TFP 2005, Intellect, vol. 6, pp. 111–126 (2007)Google Scholar
  6. 6.
    Koopman, P.W.M., Plasmeijer, R.: Systematic synthesis of functions. In: Nilsson, H. (ed.) Revised Selected Papers from the Seventh Symposium on Trends in Functional Programming, TFP 2006, Intellect, vol. 7, pp. 35–54 (2007)Google Scholar
  7. 7.
    Olsson, J.R.: Inductive functional programming using incremental program transformation. Artificial Intelligence 74(1), 55–83 (1995)MathSciNetCrossRefGoogle Scholar
  8. 8.
    Muggleton, S.H., Raedt, L.D.: Inductive logic programming: Theory and methods. Journal of Logic Programming 19-20, 629–679 (1994)MathSciNetCrossRefzbMATHGoogle Scholar
  9. 9.
    Muggleton, S.H., Feng, C.: Efficient induction of logic programs. In: Proceedings of the First Conference on Algorithmic Learning Theory, Tokyo, Japan, Ohmsha, pp. 368–381 (1990)Google Scholar
  10. 10.
    Quinlan, J.R., Cameron-Jones, R.M.: FOIL: A midterm report. In: Brazdil, P.B. (ed.) ECML 1993. LNCS, vol. 667, pp. 3–20. Springer, Heidelberg (1993)Google Scholar
  11. 11.
    Bergadano, F., Gunetti, D.: Inductive Logic Programming: From Machine Learning to Software Engineering. MIT Press, Cambridge (1995)Google Scholar
  12. 12.
    Flener, P., Yilmaz, S.: Inductive synthesis of recursive logic programs: Achievements and prospects. The Journal of Logic Programming 41(2-3), 141–195 (1999)MathSciNetCrossRefzbMATHGoogle Scholar
  13. 13.
    Plotkin, G.D.: A note on inductive generalization. Machine Intelligence 5, 153–163 (1970)MathSciNetzbMATHGoogle Scholar
  14. 14.
    Lapointe, S., Matwin, S.: Sub-unification: a tool for efficient induction of recursive programs. In: ML 1992: Proceedings of the Ninth International Workshop on Machine Learning, pp. 273–281. Morgan Kaufmann Publishers Inc., San Francisco (1992)CrossRefGoogle Scholar
  15. 15.
    Terese: Term Rewriting Systems. Cambridge Tracts in Theoretical Computer Science, vol. 55. Cambridge University Press, Cambridge (2003)Google Scholar
  16. 16.
    Clavel, M., Durán, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J., Talcott, C.: The maude 2.0 system. In: Nieuwenhuis, R. (ed.) RTA 2003. LNCS, vol. 2706, pp. 76–87. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  17. 17.
    Mitchell, T.M.: Machine Learning. McGraw-Hill Higher Education, New York (1997)zbMATHGoogle Scholar
  18. 18.
    Hofmann, M., Kitzelmann, E., Schmid, U.: Analysis and evaluation of inductive programming systems in a higher-order framework. In: Dengel, A.R., Berns, K., Breuel, T.M., Bomarius, F., Roth-Berghofer, T.R. (eds.) KI 2008. LNCS, vol. 5243, pp. 78–86. Springer, Heidelberg (2008)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Emanuel Kitzelmann
    • 1
  1. 1.University of BambergBambergGermany

Personalised recommendations