Skip to main content

On the use of inductive reasoning in program synthesis: Prejudice and prospects

  • Conference paper
  • First Online:
Book cover Logic Program Synthesis and Transformation — Meta-Programming in Logic (META 1994, LOPSTR 1994)

Abstract

In this position paper, we give a critical analysis of the deductive and inductive approaches to program synthesis, and of the current research in these fields. From the shortcomings of these approaches and works, we identify future research directions for these fields, as well as a need for cooperation and cross-fertilization between them.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. David W. Aha, Stéphane Lapointe, Charles X. Ling, and Stan Matwin. Inverting implication with small training sets. In F. Bergadano and L. De Raedt (editors), Proceedings of the 1994 European Conference on Machine Learning, pages 31–48. LNCS 784, Springer-Verlag, 1994.

    Google Scholar 

  2. Dana Angluin. Queries and concept learning. Machine Learning 2(4):319–342, April 1988.

    Google Scholar 

  3. Dana Angluin and Carl H. Smith. Inductive inference: Theory and methods. Computing Surveys 15(3):237–269, September 1983.

    Article  Google Scholar 

  4. Francesco Bergadano et al. Inductive test case generation. In Proceedings of International Workshop on Inductive Logic Programming'93, pages 11–24.

    Google Scholar 

  5. Francesco Bergadano and Daniele Gunetti. Inductive synthesis of logic programs and inductive logic programming. In [25], pages 45–56.

    Google Scholar 

  6. Wolfgang Bibel. Syntax-directed, semantics-supported program synthesis. Artificial Intelligence 14(3):243–261, October 1980.

    Google Scholar 

  7. Alan W. Biermann. On the inference of Turing machines from sample computations. Artificial Intelligence 3(3):181–198, Fall 1972.

    Google Scholar 

  8. Alan W. Biermann. The inference of regular LISP programs from examples. IEEE Transactions on Systems, Man, and Cybernetics 8(8):585–600, 1978.

    Google Scholar 

  9. Alan W. Biermann. Dealing with search. In Alan W. Biermann, Gérard Guiho, and Yves Kodratoff (editors). Automatic Program Construction Techniques, pages 375–392. Macmillan, 1984.

    Google Scholar 

  10. Alan W. Biermann. Fundamental mechanisms in machine learning and inductive inference. In W. Bibel and Ph. Jorrand (editors), Fundamentals of Artificial Intelligence, pages 133–169. LNCS 232, Springer-Verlag, 1986.

    Google Scholar 

  11. Alan W. Biermann. Automatic programming. In S. C. Shapiro (editor), Encyclopedia of Artificial Intelligence, pages 59–83. John Wiley, 1992. Second, extended edition.

    Google Scholar 

  12. Alan W. Biermann and Douglas R. Smith. A production rule mechanism for generating LISP code. IEEE Transactions on Systems, Man, and Cybernetics 9(5):260–276, May 1979.

    Google Scholar 

  13. Ivan Bratko and Marko Grobelnik. Inductive learning applied to program construction and verification. In Proceedings of International Workshop on Inductive Logic Programming'93, pages 279–292.

    Google Scholar 

  14. Maurice Bruynooghe and Danny De Schreye. Some thoughts on the role of examples in program transformation and its relevance for explanation-based learning. In K. P. Jantke (editor), Proceedings of the 1989 International Workshop on Analogical and Inductive Inference, pages 60–77. LNCS 397, Springer-Verlag, 1989.

    Google Scholar 

  15. FranÇois Bry. Intensional updates: Abduction via deduction. In D. H. D. Warren and P. Szeredi (editors), Proceedings of International Conference on Logic Programming'90, pages 561–578. The MIT Press, 1990.

    Google Scholar 

  16. Alan Bundy, Alan Smaill, and Geraint Wiggins. The synthesis of logic programs from inductive proofs. In J. W. Lloyd (editor), Proceedings of the ESPRIT Symposium on Computational Logic, pages 135–149. Springer-Verlag, 1990.

    Google Scholar 

  17. Alan Bundy, Andrew Stevens, Frank van Harmelen, Andrew Ireland, and Alan Smaill. Rippling: A heuristic for guiding inductive proofs. Artificial Intelligence 62(2):185–253, 1993.

    Article  Google Scholar 

  18. Keith L. Clark. The synthesis and verification of logic programs. Technical Report DOC-81/36, Imperial College, London (UK), September 1981.

    Google Scholar 

  19. Tim Clement and Kung-Kiu Lau (editors), Proceedings of International Workshop on Logic Program Synthesis and TRansformation'91. Workshops in Computing Series, Springer-Verlag, 1992.

    Google Scholar 

  20. Luc De Raedt. Interactive Theory Revision: An Inductive Logic Programming Approach. Academic Press, 1992.

    Google Scholar 

  21. Luc De Raedt and Maurice Bruynooghe. Belief updating from integrity constraints and queries. Artificial Intelligence 53(2–3):291–307, February 1992.

    Google Scholar 

  22. Luc De Raedt and Maurice Bruynooghe. A theory of clausal discovery. In Proceedings of International Workshop on Inductive Logic Programming'93, pages 25–40.

    Google Scholar 

  23. Nachum Dershowitz and Yuh-Jeng Lee. Logical debugging. Journal of Symbolic Computation 15(5–6):745–773, May/June 1993. Early version, entitled “Deductive debugging”, in Proceedings of Symposium on Logic Programming'87, pages 298–306.

    Google Scholar 

  24. Yves Deville. Logic Programming: Systematic Program Development. International Series in Logic Programming, Addison Wesley, 1990.

    Google Scholar 

  25. Yves Deville (editor), Proceedings of International Workshop on LOgic Program Synthesis and TRansformation'93. Workshops in Computing Series, Springer-Verlag, 1994.

    Google Scholar 

  26. Yves Deville and Jean Burnay. Generalization and program schemata: A step towards computer-aided construction of logic programs. In E. L. Lusk and R. A. Overbeek (editors), Proceedings of the North American Conference on Logic Programming'89, pages 409–425. The MIT Press.

    Google Scholar 

  27. Yves Deville and Kung-Kiu Lau. Logic program synthesis: A survey. Journal of Logic Programming, Special Issue on 10 Years of Logic Programming, 1994.

    Google Scholar 

  28. Wlodek Drabent, Simin Nadjm-Tehrani, and Jan Maluszynski. Algorithmic debugging with assertions. In H. Abramson and M. H. Rogers (editors), Meta-Programming in Logic Programming: Proceedings of META'88, pages 501–521. The MIT Press.

    Google Scholar 

  29. Agneta Eriksson and Anna-Lena Johansson. Computer-based synthesis of logic programs. In M. Dezani-Ciancaglini and U. Montanari (editors), Proceedings of an International Symposium on Programming, pages 105–115. LNCS 137, Springer-Verlag, 1982.

    Google Scholar 

  30. Peter Flach. Predicate invention in inductive data engineering. In Proceedings of the 1993 European Conference on Machine Learning, pages 83–94. LNAI 667, Springer-Verlag, 1993.

    Google Scholar 

  31. Pierre Flener. Logic Algorithm Synthesis from Examples and Properties. Ph.D. Thesis, Université Catholique de Louvain, Louvain-la-Neuve (Belgium), June 1993.

    Google Scholar 

  32. Pierre Flener and Yves Deville. Logic program synthesis from incomplete specifications. Journal of Symbolic Computation 15(5–6):775–805, May/June 1993.

    Google Scholar 

  33. Marta Franová. Fundamentals of a new method for inductive theorem proving: CM—construction of atomic formulae. In Proceedings of the 1988 European Conference on Artificial Intelligence.

    Google Scholar 

  34. Marta Franová and Yves Kodratoff. Predicate synthesis from formal specifications or using mathematical induction for finding the preconditions of theorems. Technical Report 646, LRI, Université Paris-Sud, 1991.

    Google Scholar 

  35. Laurent Fribourg. Extracting logic programs from proofs that use extended Prolog execution and induction. In D. H. D. Warren and P. Szeredi (editors), Proceedings of International Conference on Logic Programming'90, pages 685–699. The MIT Press, 1990. Updated and revised version in [50], pages 39–66.

    Google Scholar 

  36. Laurent Fribourg. Automatic generation of simplification lemmas for inductive proofs. In V. Saraswat and K. Ueda (editors), Proceedings of Symposium on Logic Programming'91, pages 103–116. The MIT Press, 1991.

    Google Scholar 

  37. Norbert E. Fuchs. Hoare logic, executable specifications, and logic programs. Structured Programming 13:129–135, 1992.

    Google Scholar 

  38. Norbert E. Fuchs. Specifications are (preferably) executable. Software Engineering Journal 7:323–334, September 1992.

    Google Scholar 

  39. Norbert E. Fuchs. Private communications, March–June 1994.

    Google Scholar 

  40. Norbert E. Fuchs and Markus P. J. Fromherz. Schema-based transformations of logic programs. In [19], pages 111–125.

    Google Scholar 

  41. E. Mark Gold. Language identification in the limit. Information and Control 10(5):447–474, 1967.

    Article  Google Scholar 

  42. Cordell Green and David R. Barstow. On program synthesis knowledge. Artificial Intelligence 10(3):241–270, November 1978.

    Google Scholar 

  43. Marko Grobelnik. Induction of Prolog programs with Markus. In [25], pages 57–63.

    Google Scholar 

  44. A. Guessoum and John W. Lloyd. Updating knowledge bases. New Generation Computing 8:71–88, 1990.

    Google Scholar 

  45. Masami Hagiya. Programming by example and proving by example using higher-order unification. In M. E. Stickel (editor), Proceedings of the 1990 Conference on Automated Deduction, pages 588–602. LNCS 449, Springer-Verlag, 1990.

    Google Scholar 

  46. åke Hansson. A Formal Development of Programs. Ph.D. Thesis, University of Stockholm (Sweden), 1980.

    Google Scholar 

  47. I.J. Hayes and C.B. Jones. Specifications are not (necessarily) executable. Software Engineering Journal 4(6):330–338, November 1989.

    Google Scholar 

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

    Google Scholar 

  49. Andrew Ireland. The use of planning critics in mechanizing inductive proofs. In A. Voronkov (editor), Proceedings of International Conference Logic Programming and Automated Reasoning'92, pages 178–189. LNCS 624, Springer-Verlag, 1992.

    Google Scholar 

  50. Jean-Marie Jacquet (editor). Constructing Logic Programs. John Wiley, 1993.

    Google Scholar 

  51. Klaus P. Jantke. Algorithmic learning from incomplete information: Principles and problems. In J. Dassow and J. Kelemen (editors), Machines, Languages, and Complexity, pages 188–207. LNCS 381, Springer-Verlag, 1989.

    Google Scholar 

  52. Alípio M. Jorge and Pavel Brazdil. Learning by refining algorithm sketches. Proceedings of ECAI'94. 1994.

    Google Scholar 

  53. Jyrki Kivinen and Heikki Mannila. Approximate dependency inference from relations. In Proceedings of the 1992 International Conference on Database Theory.

    Google Scholar 

  54. Andonakis C. Kakas, Robert A. Kowalski, and F. Toni. Abductive logic programming. Journal of Logic and Computation 2:719–770, 1992.

    Google Scholar 

  55. Robert A. Kowalski. Logic for Problem Solving. North Holland, 1979.

    Google Scholar 

  56. Ina Kraan, David Basin, and Alan Bundy. Middle-out reasoning for logic program synthesis. In D.S. Warren (editor), Proceedings of International Conference on Logic Programming'93, pages 441–455. The MIT Press, 1993.

    Google Scholar 

  57. Kung-Kiu Lau and Tim Clement (editors), Proceedings of International Workshop on LOgic Program Synthesis and TRansformation'92. Workshops in Computing Series, Springer-Verlag, 1993.

    Google Scholar 

  58. Kung-Kiu Lau and Mario Ornaghi. An incompleteness result for deductive synthesis of logic programs. In D.S. Warren (editor), Proceedings of International Conference on Logic Programming'93, pages 456–477. The MIT Press, 1993.

    Google Scholar 

  59. Kung-Kiu Lau and Mario Ornaghi. A formal view of specification, deductive synthesis and transformation of logic programs. In [25], pages 10–31.

    Google Scholar 

  60. Kung-Kiu Lau and Mario Ornaghi. On specification frameworks and deductive synthesis of logic programs. In this volume.

    Google Scholar 

  61. Kung-Kiu Lau, Mario Ornaghi, and Sten-åke TÄrnlund. The halting problem for deductive synthesis of logic programs. In P. van Hentenryck (editor), Proceedings of International Conference on Logic Programming'94, pages 665–683. The MIT Press, 1994.

    Google Scholar 

  62. Kung-Kiu Lau and S. D. Prestwich. Top-down synthesis of recursive logic procedures from first-order logic specifications. In D. H. D. Warren and P. Szeredi (editors), Proceedings of International Conference on Logic Programming'90, pages 667–684. The MIT Press, 1990.

    Google Scholar 

  63. Baudouin Le Charlier. Réflexions sur le problème de la correction des programmes. Ph.D. Thesis (in French), Facultés Universitaires Notre-Dame de la Paix, Namur (Belgium), 1985.

    Google Scholar 

  64. Raul Monroy, Alan Bundy, and Andrew Ireland. Proof plans for the correction of false conjectures. In F. Pfenning (editor), Proceedings of International Conference Logic Programming and Automated Reasoning'94. LNCS, Springer-Verlag, 1994.

    Google Scholar 

  65. Stephen Muggleton. Inductive logic programming. New Generation Computing 8(4):295–317, 1991.

    Google Scholar 

  66. Stephen Muggleton (editor). Inductive Logic Programming. Volume APIC-38, Academic Press, 1992.

    Google Scholar 

  67. Stephen Muggleton and Luc De Raedt. Inductive logic programming: Theory and methods. Journal of Logic Programming, Special Issue on 10 Years of Logic Programming, 1994.

    Google Scholar 

  68. Leonard Pitt and Leslie G. Valiant. Computational limits on learning from examples. Journal of the ACM 35(4):965–984, October 1988.

    Article  Google Scholar 

  69. Gordon D. Plotkin. A note on inductive generalization. In B. Meltzer and D. Michie (editors). Machine Intelligence 5:153–163, 1970. Edinburgh University Press, Edinburgh (UK).

    Google Scholar 

  70. Lubos Popelínský, Pierre Flener, and Olga Stepánková. International Workshop on Inductive Logic Programming and automatic programming: Towards three approaches. Submitted to International Workshop on Inductive Logic Programming'94, Bonn (Germany).

    Google Scholar 

  71. Proceedings of the International Workshop on Machine Learning'92 Workshop on Biases in Inductive Learning. Aberdeen (Scotland, UK), 1992.

    Google Scholar 

  72. Charles Rich and Richard C. Waters. Automatic programming: Myths and prospects. IEEE Computer 21(8):40–51, August 1988.

    Google Scholar 

  73. Taisuke Sato and Hisao Tamaki. Transformational logic program synthesis. In Proceedings of the International Conference on Fifth-Generation Computer Systems, pages 195–201, 1984.

    Google Scholar 

  74. Taisuke Sato and Hisao Tamaki. First-order compiler: A deterministic logic program synthesis algorithm. Journal of Symbolic Computation 8(6):605–627, 1989.

    Google Scholar 

  75. Iztok Savnik and Peter Flach. Bottom-up induction of functional dependencies from relations. In Proceedings of the AAAI'93 Workshop on Knowledge Discovery in Databases.

    Google Scholar 

  76. Ehud Y. Shapiro. Algorithmic Program Debugging. Ph.D. Thesis, Yale University, New Haven (CT, USA), 1982. Published under the same title by The MIT Press, 1983.

    Google Scholar 

  77. Douglas R. Smith. The synthesis of LISP programs from examples: A survey. In Alan W. Biermann, Gérard Guiho, and Yves Kodratoff (editors). Automatic Program Construction Techniques, pages 307–324. Macmillan, 1984.

    Google Scholar 

  78. Douglas R. Smith. Top-down synthesis of divide-and-conquer algorithms. Artificial Intelligence 27(1):43–96, 1985.

    Article  MathSciNet  Google Scholar 

  79. Douglas R. Smith. KIDS: A semiautomatic program development system. IEEE Transactions on Software Engineering 16(9):1024–1043, September 1990.

    Google Scholar 

  80. Leon S. Sterling and Marc Kirschenbaum. Applying techniques to skeletons. In [50], pages 127–140.

    Google Scholar 

  81. Phillip D. Summers. A methodology for LISP program construction from examples. Journal of the ACM 24(1):161–175, January 1977.

    Google Scholar 

  82. William R. Swartout and Robert Balzer. On the inevitable intertwining of specification and implementation. Communications of the ACM 25:438–440, 1982.

    Google Scholar 

  83. Yukihide Takayama. Writing programs as QJ proof and compiling into Prolog programs. In Proceedings of Symposium on Logic Programming'87, pages 278–287.

    Google Scholar 

  84. Nancy L. Tinkham. Induction of Schemata for Program Synthesis. Ph.D. Thesis, Duke University, Durham (NC, USA), 1990.

    Google Scholar 

  85. Axel van Lamsweerde. Learning machine learning. In A. Thayse (editor), From Natural Language Processing to Logic for Expert Systems, pages 263–356. John Wiley, 1991.

    Google Scholar 

  86. Geraint Wiggins. Synthesis and transformation of logic programs in the Whelk proof development system. In K. Apt (editor), Proceedings of the Joint International Conference and Symposium on Logic Programming'92, pages 351–365. The MIT Press, 1992.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Laurent Fribourg Franco Turini

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Flener, P., Popelínský, L. (1994). On the use of inductive reasoning in program synthesis: Prejudice and prospects. In: Fribourg, L., Turini, F. (eds) Logic Program Synthesis and Transformation — Meta-Programming in Logic. META LOPSTR 1994 1994. Lecture Notes in Computer Science, vol 883. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58792-6_5

Download citation

  • DOI: https://doi.org/10.1007/3-540-58792-6_5

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-58792-7

  • Online ISBN: 978-3-540-49104-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics