Abstract
Since the early days of programming and automated reasoning, researchers have developed methods for systematically constructing programs from their specifications. Especially the last decade has seen a flurry of activities including the advent of specialized conferences, such as LOPSTR, covering the synthesis of programs in computational logic. In this paper we analyze and compare three state-of-the-art methods for synthesizing recursive programs in computational logic. The three approaches are constructive/deductive synthesis, schema-guided synthesis, and inductive synthesis. Our comparison is carried out in a systematic way where, for each approach, we describe the key ideas and synthesize a common running example. In doing so, we explore the synergies between the approaches, which we believe are necessary in order to achieve progress over the next decade in this field.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Anderson, P., Basin, D.: Program development schemata as derived rules. Journal of Symbolic Computation 30(1), 5–36 (2000)
Ayari, A., Basin, D.: Generic system support for deductive program development. In: Margaria, T., Steffen, B. (eds.) TACAS 1996. LNCS, vol. 1055, pp. 313–328. Springer, Heidelberg (1996)
Ayari, A., Basin, D.: A higher-order interpretation of deductive tableau. Journal of Symbolic Computation (2002) (to appear)
Balzer, R.: A 15 year perspective on automatic programming. IEEE Transactions. on Software Engineering 11(11), 1257–1268 (1985)
Barendregt, H.P.: The Lambda Calculus: Its Syntax and Semantics, 2nd revised edn. Studies in Logic, vol. 103. North-Holland, Amsterdam (1984)
Basin, D.: IsaWhelk: Whelk interpreted in Isabelle. In: Van Hentenryck, P. (ed.) Proc. of ICLP 1994, p. 741. The MIT Press, Cambridge (1994)
Basin, D.: Logic frameworks for logic programs. In: Fribourg, L., Turini, F. (eds.) LOPSTR 1994 and META 1994. LNCS, vol. 883, pp. 1–16. Springer, Heidelberg (1994)
Basin, D.: Logical-framework-based program development. ACM Computing Surveys 30(3es), 1–4 (1998)
Basin, D., Friedrich, S.: Modeling a hardware synthesis methodology in Isabelle. Formal Methods in Systems Design 15(2), 99–122 (1999)
Basin, D., Krieg-Brückner, B.: Formalization of the development process. In: Astesiano, E., Kreowski, H.-J., Krieg-Brückner, B. (eds.) Algebraic Foundations of System Specification, pp. 521–562. Springer, Heidelberg (1998)
Basin, D., Matthews, S.: Adding metatheoretic facilities to first-order theories. Journal of Logic and Computation 6(6), 835–849 (1996)
Basin, D., Walsh, T.: Annotated rewriting in inductive theorem proving. Journal of Automated Reasoning 16(1–2), 147–180 (1996)
Biermann, A.W.: Automatic programming. In: Shapiro, S.C. (ed.) Encyclopedia of Artificial Intelligence, 2nd extended edn., pp. 59–83. John Wiley, Chichester (1992)
Biermann, A.W., Guiho, G., Kodratoff, Y. (eds.): Automatic Program Construction Techniques. Macmillan, Basingstoke (1984)
Blaine, L., Gilham, L., Liu, J., Smith, D.R., Westfold, S.: PlanWare: Domainspecific synthesis of high-performance schedulers. In: Proc. of ASE 1998, pp. 270–279. IEEE Computer Society Press, Los Alamitos (1998)
Bundy, A., Smaill, A., Wiggins, G.A.: The synthesis of logic programs from inductive proofs. In: Lloyd, J.W. (ed.) Computational Logic. Esprit Basic Research Series, pp. 135–149. Springer, Heidelberg (1990)
Bundy, A., Stevens, A., van Harmelen, F., Ireland, A., Smaill, A.: Rippling: A heuristic for guiding inductive proofs. Artificial Intelligence 62(2), 185–253 (1993)
Buntine, W.: Generalized subsumption and its application to induction and redundancy. Artificial Intelligence 36(2), 375–399 (1988)
Chang, C.-L., Lee, R.C.-T.: Symbolic Logic and Mechanical Theorem Proving. Academic Press, London (1973)
Chasseur, E., Deville, Y.: Logic program schemas, constraints and semiunification. In: Fuchs, N.E. (ed.) LOPSTR 1997. LNCS, vol. 1463, pp. 69–89. Springer, Heidelberg (1998)
Christiansen, H.: Implicit program synthesis by a reversible metainterpreter. In: Fuchs, N.E. (ed.) LOPSTR 1997. LNCS, vol. 1463, pp. 90–110. Springer, Heidelberg (1998)
Clarke, E.M., Wing, J.M.: Formal methods: State of the art and future directions. ACM Computing Surveys 28(4), 626–643 (1996)
Coen, M.D.: Interactive program derivation. Technical Report 272, Cambridge University Computer Laboratory, UK (1992)
Coquand, T., Huet, G.: The calculus of constructions. In: Information and Computation, pp. 95–120 (1988)
Deville, Y.: Logic Programming: Systematic Program Development. International Series in Logic Programming. Addison-Wesley, Reading (1990)
Deville, Y., Lau, K.-K.: Logic program synthesis. Journal of Logic Programming 19-20, 321–350 (1994)
Felty, A., Miller, D.: Specifying theorem provers in a higher-order logic programming language. In: Lusk, E.‘., Overbeek, R. (eds.) CADE 1988. LNCS, vol. 310, pp. 61–80. Springer, Heidelberg (1988)
Flener, P.: Logic Program Synthesis from Incomplete Information. Kluwer Academic Publishers, Dordrecht (1995)
Flener, P.: Achievements and prospects of program synthesis. In: Kakas, A.C., Sadri, F. (eds.) Computational Logic: Logic Programming and Beyond. LNCS (LNAI), vol. 2407, pp. 310–346. Springer, Heidelberg (2002)
Flener, P., Deville, Y.: Logic program synthesis from incomplete specifications. Journal of Symbolic Computation 15(5-6), 775–805 (1993)
Flener, P., Lau, K.-K., Ornaghi, M.: Correct-schema-guided synthesis of steadfast programs. In: Proc. of ASE 1997, pp. 153–160. IEEE Computer Society Press, Los Alamitos (1997)
Flener, P., Lau, K.-K., Ornaghi, M.: On correct program schemas. In: Fuchs, N.E. (ed.) LOPSTR 1997. LNCS, vol. 1463, pp. 124–143. Springer, Heidelberg (1998)
Flener, P., Lau, K.-K., Ornaghi, M., Richardson, J.D.C.: An abstract formalisation of correct schemas for program synthesis. Journal of Symbolic Computation 30(1), 93–127 (2000)
Flener, P., Partridge, D.: Inductive programming. Automated Software Engineering 8(2), 131–137 (2001)
Flener, P., Richardson, J.D.C.: A unified view of programming schemas and proof methods. In: Bossi, A. (ed.) Proc. of LOPSTR 1999, pp. 75–82. Tech. rept. CS-99-16, Univ. of Venice, Italy (1999); Also see Technical Report 2003-008 at the Department of Information Technology, Uppsala University, Sweden (2003)
Flener, P., Yılmaz, S.: Inductive synthesis of recursive logic programs: Achievements and prospects. Journal of Logic Programming 41(2-3), 141–195 (1999)
Flener, P., Zidoum, H., Hnich, B.: Schema-guided synthesis of CLP programs. In: Proc. of ASE 1998, pp. 168–176. IEEE Computer Society Press, Los Alamitos (1998)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Gegg-Harrison, T.S.: Extensible logic program schemata. In: Gallagher, J.P. (ed.) LOPSTR 1996. LNCS, vol. 1207, pp. 256–274. Springer, Heidelberg (1997)
Goldberg, A.T.: Knowledge-based programming: A survey of program design and construction techniques. IEEE Transactions on Software Engineering 12(7), 752–768 (1986)
Gordon, M.J., Milner, R., Wadsworth, C.P.: Edinburgh LCF: A Mechanized Logic of Computation. In: Gordon, M., Wadsworth, C.P., Milner, R. (eds.) Edinburgh LCF. LNCS, vol. 78, Springer, Heidelberg (1979)
Green, C.: Application of theorem proving to problem solving. In: Proc. of IJCAI 1969, pp. 219–239. Morgan Kaufmann, San Francisco (1969)
Hamfelt, A., Fischer Nilsson, J.: Inductive metalogic programming. In: Jelitsch, R., Lange, O., Haupt, D., Juling, W., Händler, W. (eds.) CONPAR 1986. LNCS, vol. 237, pp. 85–96. Springer, Heidelberg (1986)
Hamfelt, A., Fischer Nilsson, J.: Declarative logic programming with primitive recursive relations on lists. In: Maher, M.J. (ed.) Proc. of JICSLP 1996, pp. 230–243. The MIT Press, Cambridge (1996)
Hamfelt, A., Fischer Nilsson, J.: Towards a logic programming methodology based on higher-order predicates. New Generation Computing 15(4), 421–448 (1997)
Hamfelt, A., Fischer Nilsson, J., Oldager, N.: Logic program synthesis as problem reduction using combining forms. Automated Software Engineering 8(2), 167–193 (2001)
Hill, P., Lloyd, J.W.: The Gödel Programming Language. MIT Press, Cambridge (1994)
Hindley, J.R., Seldin, J.P.: Introduction to Combinators and the λ-Calculus. Cambridge University Press, Cambridge (1986)
Howe, D.J.: On computational open-endedness in Martin-Löf’s type theory. In: Proc. of LICS 1991, pp. 162–172. IEEE Computer Society Press, Los Alamitos (1991)
Kraan, I., Basin, D., Bundy, A.: Logic program synthesis via proof planning. In: Lau, K.-K., Clement, T. (eds.) Proc. of LOPSTR 1992, Workshops in Computing Series, pp. 1–14. Springer, Heidelberg (1993)
Kraan, I., Basin, D., Bundy, A.: Middle-out reasoning for synthesis and induction. Journal of Automated Reasoning 16(1-2), 113–145 (1996)
Lau, K.-K., Ornaghi, M.: On specification frameworks and deductive synthesis of logic programs. In: Fribourg, L., Turini, F. (eds.) LOPSTR 1994 and META 1994. LNCS, vol. 883, pp. 104–121. Springer, Heidelberg (1994)
Lau, K.-K., Ornaghi, M.: S.-˚A. Tärnlund. Steadfast logic programs. Journal of. Logic Programming 38(3), 259–294 (1999)
Lisett, C.L., Rumelhart, D.E.: Facial recognition using a neural network. In: Proc. of the 11th International Florida AI Research Symposium FLAIRS 1998, pp. 328–332 (1998)
Maher, M.J.: Equivalences of logic programs. In: Minker, J. (ed.) Foundations of Deductive Databases and Logic Programming, Morgan Kaufmann, San Francisco (1987)
Martin-Löf, P.: Constructive mathematics and computer programming. In: Proc. of the Sixth International Congress for Logic, Methodology, and Philosophy of Science, pp. 153–175. North-Holland, Amsterdam (1982)
Minton, S.: Automatically configuring constraint satisfaction programs: A case study. Constraints 1(1-2), 7–43 (1996)
Muggleton, S.: Inverse entailment and Progol. New Generation Computing 13(3-4), 245–286 (1995)
Paulson, L.C.: Isabelle. LNCS, vol. 828. Springer, Heidelberg (1994)
Pettorossi, A., Proietti, M.: Transformation of logic programs. In: Gabbay, D.M., Hogger, C.J., Robinson, J.A. (eds.) Handbook of Logic in Artificial Intelligence and Logic Programming, Clarendon Press (1998)
Pfenning, F.: Logic programming in the LF logical framework. In: Logical Frameworks, pp. 149–181. Cambridge University Press, Cambridge (1991)
Plotkin, G.D.: A note on inductive generalization. In: Meltzer, B., Michie, D. (eds.) Machine Intelligence, vol. 5, pp. 153–163. Edinburgh University Press (1970)
Reynolds, J.C.: Transformational systems and the algebraic structure of atomic formulas. In: Meltzer, B., Michie, D. (eds.) Machine Intelligence, vol. 5, pp. 135–151. Edinburgh University Press (1970)
Smith, D.R.: The structure of divide and conquer algorithms. Technical Report 52-83-002, Naval Postgraduate School, Monterey, California, USA (1983)
Smith, D.R.: Top-down synthesis of divide-and-conquer algorithms. Artificial Intelligence 27(1), 43–96 (1985)
Smith, D.R.: KIDS: A semiautomatic program development system. IEEE Transactions. on Software Engineering 16(9), 1024–1043 (1990)
Smith, D.R.: Toward a classification approach to design. In: Nivat, M., Wirsing, M. (eds.) AMAST 1996. LNCS, vol. 1101, pp. 62–84. Springer, Heidelberg (1996)
Somogyi, Z., Henderson, F., Conway, T.: The execution algorithm of Mercury: An efficient purely declarative logic programming language. Journal of Logic Programming 29(1-3), 17–64 (1996)
van Lamsweerde, A.: Formal specification: A roadmap. In: Finkelstein, A. (ed.) The Future of Software Engineering, pp. 147–159. ACM Press, New York (2000)
Vasconcelos, W.W., Fuchs, N.E.: An opportunistic approach for logic program analysis and optimisation using enhanced schema-based transformations. In: Proietti, M. (ed.) LOPSTR 1995. LNCS, vol. 1048, pp. 174–188. Springer, Heidelberg (1996)
Wiggins, G.A.: Synthesis and transformation of logic programs in the Whelk proof development system. In: Apt, K.R. (ed.) Proc. of JICSLP 1992, pp. 351–365. The MIT Press, Cambridge (1992)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Basin, D., Deville, Y., Flener, P., Hamfelt, A., Fischer Nilsson, J. (2004). Synthesis of Programs in Computational Logic. In: Bruynooghe, M., Lau, KK. (eds) Program Development in Computational Logic. Lecture Notes in Computer Science, vol 3049. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-25951-0_2
Download citation
DOI: https://doi.org/10.1007/978-3-540-25951-0_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-22152-4
Online ISBN: 978-3-540-25951-0
eBook Packages: Springer Book Archive