Automated Software Engineering

, Volume 8, Issue 2, pp 167–193 | Cite as

Logic Program Synthesis as Problem Reduction Using Combining Forms

  • Andreas Hamfelt
  • Jørgen Fischer Nilsson
  • Nikolaj Oldager


This paper presents an approach to inductive synthesis of logic programs from examples using problem decomposition and problem reduction principles. This is in contrast to the prevailing logic program induction paradigm, which relies on generalization of programs from examples. The problem reduction is accomplished as a constrained top-down search process, which eventually is to reach trivial problems.

Our induction scheme applies a distinguished logic programming language in which programs are combined from elementary predicates by means of combinators conceived of as problem reduction operators including list recursion forms. The operator form admits inductive synthesis as a top-down piecewise composition of semantically meaningful program elements according to the compositional semantics principle and with appeals neither to special generalization mechanisms nor to alternative forms of resolution and unification, or predicate invention.

The search space is reduced by subjecting the induction process to various constraints concerning syntactical form, modes, data types, and computational resources. This is illustrated in the paper with well-modedness constraints with the aim of synthesising well-moded, procedurally acceptable programs.

Preliminary experiments with the proposed induction method lead us to tentatively conclude that the presented approach forms a viable alternative to the prevailing inductive logic programming methods applying generalization from examples.

predicate combinators recursion operators synthesis by composition and specialization inductive synthesis program schemata 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Aha, D.W., Lapointe, S., Ling, C.X., and Matwin, S. 1994. Learning recursive relations with randomly selected small training sets. In W.W. Cohen and H. Hirsh, editors, Proc. of ICML '94, Morgan Kaufmann.Google Scholar
  2. Apt, K. and Marchiori, E. 1994. Reasoning about prolog programs: From modes through types to assertions. J. Formal Aspects of Computing, 6A:743–764.Google Scholar
  3. Bacon, J. 1985. The completeness of predicate–functor logic. J. Symbolic Logic, 50(4):903–926.Google Scholar
  4. Basin, D., Deville, Y., Flener, P., Hamfelt, A., and Nilsson, J.F. Synthesis of programs in computational logic. Submitted for publication.Google Scholar
  5. Bird, R. and de Moor, O. 1997. Algebra of Programming. Prentice Hall.Google Scholar
  6. Cohen., W.W. 1993. PAC–learning a restricted class of recursive logic programs. In S. Muggleton editor, Proc. of ILP'93, Technical Report IJS–DP–6707. Stefan Institute, Ljubljana, Slovenia, pp. 73–86.Google Scholar
  7. Flener, P. Inductive logic program synthesis with Dialogs. In Muggleton, S. editor, 1996, pp. 175–198.Google Scholar
  8. Flener, P. 1995. Logic Program Synthesis from Incomplete Information. Kluwer, Boston, Kluwer Academic Publishers.Google Scholar
  9. Flener, P. and Yilmaz, S. 1999. Inductive synthesis of recursive logic programs: Achievements and prospects. J. of Logic Programming, 41:141–195.Google Scholar
  10. Hamfelt, A. and Fischer Nilsson, J. 1994. Inductive metalogic programming. In S. Wrobel, editor, Procs. Fourth International Workshop on Inductive Logic programming (ILP–94), Bad Honnef/Bonn, GMD–Studien Nr. 237, pp. 85–96.Google Scholar
  11. Hamfelt, A. and Fischer Nilsson, J. 1997. Towards a logic programming methodology based on higher–order predicates. J. New Generation Computing, 15(4):421–448.Google Scholar
  12. Hamfelt, A. and Fischer Nilsson, J. 1996. Declarative logic programming with primitive recursive relations on lists. In M. Maher, editor, Procs. Joint International Conference and Symposium on Logic Programming 1996, MIT Press, London, pp. 230–242.Google Scholar
  13. Hamfelt, A. and Fischer Nilsson, J. 1999a. Inductive synthesis of logic programs by composition of combinatory program schemes. In P. Flener, editor, Procs. Workshop on Logic Based Program Transformation and Synthesis 1998, Springer–Verlag, pp. 143–158. Lecture Notes in Computer Science 1559.Google Scholar
  14. Hamfelt, A. and Fischer Nilsson, J. 1999b. Inductive logic programming with well–modedness constraints. In R. Echahed, editor, Proc. Eighth International Workshop on Functional and Logic Programming 1999, Rapport de recherche, RR 1021–I, Laboratoire Leibniz, Institut IMAG.Google Scholar
  15. Hamfelt, A., Fischer Nilsson, J., and Vitoria, A. 1999. A combinatory form of pure logic programs and its compositional semantics. Submitted for publication.Google Scholar
  16. Idestam–Almquist, P. 1996. Efficient induction of recursive definitions by structural analysis of saturations. In L. De Raedt, editor, Advances in Inductive Logic Programming. IOS Press, pp. 192–205.Google Scholar
  17. Lapointe, S., Ling, C., and Matwin, S. 1993. Constructive inductive logic programming. In S. Muggleton, editor. Proc. of ILP'93 Technical Report IJS–DP–6707. Stefan Institute, Ljubljana, Slovenia, pp. 255–264.Google Scholar
  18. Lavrač, N. and Džeroski, S. 1994. Inductive Logic Programming. New York: Ellis Horwood, 1994.Google Scholar
  19. Muggleton, S., (Ed): 1992. Inductive Logic Programming. London: Academic Press, 1992.Google Scholar
  20. Muggleton, S. 1995. Inverse entailment and progol. New Generation Computing, 13:245–286.Google Scholar
  21. Muggleton, S. (Ed): 1996. Inductive logic programming. In Proceedings of the 6th International Workshop on Inductive Logic Programming, Springer, 1996. Lecture Notes in Artificial Intelligence, vol 1314.Google Scholar
  22. Nienhuys–Cheng, S.–H. and de Wolf, R. 1997. Foundations of inductive logic programming Springer, 1997. Lecture Notes in Artificial Intelligence, vol 1228.Google Scholar
  23. Petorossi, A. and Proietti, M. 1998. Transformation of logic programs. In D. M. Gabbay, C. J. Hogger, and J. A. Robinson, editor, Handbook of Logic in Artificial Intelligence and Logic Programming. Oxford, Clarendon Press.Google Scholar
  24. Plotkin, G. 1969. A Note on inductive generalization. In B. Meltzer and D. Michie, editors, Machine Intelligence vol. 5. Edinburgh: Edingburgh University Press, pp. 153–161.Google Scholar
  25. Quine, W.V. 1971. Predicate–functor Logic. In J.E. Fenstad, editor, Procs. Second Scandinavian Logic Symposium. North–Holland, pp. 309–315.Google Scholar
  26. Reade, C. 1989. Elements of Functional Programming. Addison–Wesley, 1989.Google Scholar
  27. Shapiro, E. 1991. Inductive inference of theories from facts. In J.–L. Lassez, and G.D. Plotkin, editors, Computational Logic: Essays in Honor of Alan Robinson. The MIT Press: Cambridge, Massachusetts, London England.Google Scholar
  28. Warren, D.H.D. 1982. Higher–order extensions to PROLOG: are they needed? In D. Michie, editor, Machine Intelligence vol 10. Ellis Horwood and Edinburgh University Press, pp. 441–454.Google Scholar
  29. Wirth, R. and O'Rorke, P. Constraints for predicate invention. In Inductive Logic Programming, S., Muggleton, editor, pp. 299–318.Google Scholar

Copyright information

© Kluwer Academic Publishers 2001

Authors and Affiliations

  • Andreas Hamfelt
    • 1
  • Jørgen Fischer Nilsson
    • 2
  • Nikolaj Oldager
    • 2
  1. 1.Department of Information Science, Division of Computer ScienceUppsala University, BoxUppsalaSweden
  2. 2.Department of Information TechnologyTechnical University of DenmarkLyngbyDenmark

Personalised recommendations