Advertisement

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

  • Pierre Flener
  • Lubos Popelínský
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 883)

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.

Keywords

Logic Program Inductive Reasoning Inductive Inference Inductive Logic Deductive Reasoning 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [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. [2]
    Dana Angluin. Queries and concept learning. Machine Learning 2(4):319–342, April 1988.Google Scholar
  3. [3]
    Dana Angluin and Carl H. Smith. Inductive inference: Theory and methods. Computing Surveys 15(3):237–269, September 1983.CrossRefGoogle Scholar
  4. [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. [5]
    Francesco Bergadano and Daniele Gunetti. Inductive synthesis of logic programs and inductive logic programming. In [25], pages 45–56.Google Scholar
  6. [6]
    Wolfgang Bibel. Syntax-directed, semantics-supported program synthesis. Artificial Intelligence 14(3):243–261, October 1980.Google Scholar
  7. [7]
    Alan W. Biermann. On the inference of Turing machines from sample computations. Artificial Intelligence 3(3):181–198, Fall 1972.Google Scholar
  8. [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. [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. [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. [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. [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. [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. [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. [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. [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. [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.CrossRefGoogle Scholar
  18. [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. [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. [20]
    Luc De Raedt. Interactive Theory Revision: An Inductive Logic Programming Approach. Academic Press, 1992.Google Scholar
  21. [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. [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. [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. [24]
    Yves Deville. Logic Programming: Systematic Program Development. International Series in Logic Programming, Addison Wesley, 1990.Google Scholar
  25. [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. [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. [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. [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. [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. [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. [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. [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. [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. [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. [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. [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. [37]
    Norbert E. Fuchs. Hoare logic, executable specifications, and logic programs. Structured Programming 13:129–135, 1992.Google Scholar
  38. [38]
    Norbert E. Fuchs. Specifications are (preferably) executable. Software Engineering Journal 7:323–334, September 1992.Google Scholar
  39. [39]
    Norbert E. Fuchs. Private communications, March–June 1994.Google Scholar
  40. [40]
    Norbert E. Fuchs and Markus P. J. Fromherz. Schema-based transformations of logic programs. In [19], pages 111–125.Google Scholar
  41. [41]
    E. Mark Gold. Language identification in the limit. Information and Control 10(5):447–474, 1967.CrossRefGoogle Scholar
  42. [42]
    Cordell Green and David R. Barstow. On program synthesis knowledge. Artificial Intelligence 10(3):241–270, November 1978.Google Scholar
  43. [43]
    Marko Grobelnik. Induction of Prolog programs with Markus. In [25], pages 57–63.Google Scholar
  44. [44]
    A. Guessoum and John W. Lloyd. Updating knowledge bases. New Generation Computing 8:71–88, 1990.Google Scholar
  45. [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. [46]
    åke Hansson. A Formal Development of Programs. Ph.D. Thesis, University of Stockholm (Sweden), 1980.Google Scholar
  47. [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. [48]
    Christopher J. Hogger. Derivation of logic programs. Journal of the ACM 28(2):372–392, April 1981.Google Scholar
  49. [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. [50]
    Jean-Marie Jacquet (editor). Constructing Logic Programs. John Wiley, 1993.Google Scholar
  51. [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. [52]
    Alípio M. Jorge and Pavel Brazdil. Learning by refining algorithm sketches. Proceedings of ECAI'94. 1994.Google Scholar
  53. [53]
    Jyrki Kivinen and Heikki Mannila. Approximate dependency inference from relations. In Proceedings of the 1992 International Conference on Database Theory.Google Scholar
  54. [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. [55]
    Robert A. Kowalski. Logic for Problem Solving. North Holland, 1979.Google Scholar
  56. [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. [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. [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. [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. [60]
    Kung-Kiu Lau and Mario Ornaghi. On specification frameworks and deductive synthesis of logic programs. In this volume.Google Scholar
  61. [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. [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. [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. [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. [65]
    Stephen Muggleton. Inductive logic programming. New Generation Computing 8(4):295–317, 1991.Google Scholar
  66. [66]
    Stephen Muggleton (editor). Inductive Logic Programming. Volume APIC-38, Academic Press, 1992.Google Scholar
  67. [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. [68]
    Leonard Pitt and Leslie G. Valiant. Computational limits on learning from examples. Journal of the ACM 35(4):965–984, October 1988.CrossRefGoogle Scholar
  69. [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. [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. [71]
    Proceedings of the International Workshop on Machine Learning'92 Workshop on Biases in Inductive Learning. Aberdeen (Scotland, UK), 1992.Google Scholar
  72. [72]
    Charles Rich and Richard C. Waters. Automatic programming: Myths and prospects. IEEE Computer 21(8):40–51, August 1988.Google Scholar
  73. [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. [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. [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. [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. [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. [78]
    Douglas R. Smith. Top-down synthesis of divide-and-conquer algorithms. Artificial Intelligence 27(1):43–96, 1985.CrossRefMathSciNetGoogle Scholar
  79. [79]
    Douglas R. Smith. KIDS: A semiautomatic program development system. IEEE Transactions on Software Engineering 16(9):1024–1043, September 1990.Google Scholar
  80. [80]
    Leon S. Sterling and Marc Kirschenbaum. Applying techniques to skeletons. In [50], pages 127–140.Google Scholar
  81. [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. [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. [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. [84]
    Nancy L. Tinkham. Induction of Schemata for Program Synthesis. Ph.D. Thesis, Duke University, Durham (NC, USA), 1990.Google Scholar
  85. [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. [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

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Pierre Flener
    • 1
  • Lubos Popelínský
    • 2
  1. 1.Department of Computer Engineering and Information Science Faculty of EngineeringBilkent UniversityBilkent, AnkaraTurkey
  2. 2.Department of Computing Science Faculty of InformaticsMasaryk UniversityBrnoCzech Republic

Personalised recommendations