Skip to main content

2017 | OriginalPaper | Buchkapitel

A Productivity Checker for Logic Programming

verfasst von : Ekaterina Komendantskaya, Patricia Johann, Martin Schmidt

Erschienen in: Logic-Based Program Synthesis and Transformation

Verlag: Springer International Publishing

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Automated analysis of recursive derivations in logic programming is known to be a hard problem. Both termination and non-termination are undecidable problems in Turing-complete languages. However, some declarative languages offer a practical work-around for this problem, by making a clear distinction between whether a program is meant to be understood inductively or coinductively. For programs meant to be understood inductively, termination must be guaranteed, whereas for programs meant to be understood coinductively, productive non-termination (or “productivity”) must be ensured. In practice, such classification helps to better understand and implement some non-terminating computations.
Logic programming was one of the first declarative languages to make this distinction: in the 1980’s, Lloyd and van Emden’s “computations at infinity” captured the big-step operational semantics of derivations that produce infinite terms as answers. In modern terms, computations at infinity describe “global productivity” of computations in logic programming. Most programming languages featuring coinduction also provide an observational, or small-step, notion of productivity as a computational counterpart to global productivity. This kind of productivity is ensured by checking that finite initial fragments of infinite computations can always be observed to produce finite portions of their infinite answer terms.
In this paper we introduce a notion of observational productivity for logic programming as an algorithmic approximation of global productivity, give an effective procedure for semi-deciding observational productivity, and offer an implemented automated observational productivity checker for logic programs.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Fußnoten
1
All proofs are in Appendix A, and corresponding pseudocode algorithms are in Appendix B, of the version of the paper at https://​arxiv.​org/​abs/​1608.​04415.
 
Literatur
3.
Zurück zum Zitat de Schreye, D., Decorte, S.: Termination of logic programs: the never-ending story. J. Logic Program. 19–20(Supplement 1), 199–260 (1994)MathSciNetCrossRefMATH de Schreye, D., Decorte, S.: Termination of logic programs: the never-ending story. J. Logic Program. 19–20(Supplement 1), 199–260 (1994)MathSciNetCrossRefMATH
5.
Zurück zum Zitat Endrullis, J., et al.: A coinductive framework for infinitary rewriting and equational reasoning. In: RTA, pp. 143–159 (2015) Endrullis, J., et al.: A coinductive framework for infinitary rewriting and equational reasoning. In: RTA, pp. 143–159 (2015)
6.
Zurück zum Zitat Fu, P., Komendantskaya, E.: Operational semantics of resolution and productivity in horn clause logic. Formal Aspects of Computing (2016) Fu, P., Komendantskaya, E.: Operational semantics of resolution and productivity in horn clause logic. Formal Aspects of Computing (2016)
7.
Zurück zum Zitat Gupta, G., Bansal, A., Min, R., Simon, L., Mallya, A.: Coinductive logic programming and its applications. In: Dahl, V., Niemelä, I. (eds.) ICLP 2007. LNCS, vol. 4670, pp. 27–44. Springer, Heidelberg (2007). doi:10.1007/978-3-540-74610-2_4 CrossRef Gupta, G., Bansal, A., Min, R., Simon, L., Mallya, A.: Coinductive logic programming and its applications. In: Dahl, V., Niemelä, I. (eds.) ICLP 2007. LNCS, vol. 4670, pp. 27–44. Springer, Heidelberg (2007). doi:10.​1007/​978-3-540-74610-2_​4 CrossRef
9.
Zurück zum Zitat Johann, P., et al.: Structural resolution for logic programming. In: Technical Communications of ICLP (2015) Johann, P., et al.: Structural resolution for logic programming. In: Technical Communications of ICLP (2015)
10.
Zurück zum Zitat Komendantskaya, E., et al.: Exploiting parallelism in coalgebraic logic programming. Electron. Notes Theor. Comput. Sci. 33, 121–148 (2014)CrossRefMATH Komendantskaya, E., et al.: Exploiting parallelism in coalgebraic logic programming. Electron. Notes Theor. Comput. Sci. 33, 121–148 (2014)CrossRefMATH
11.
Zurück zum Zitat Komendantskaya, E., et al.: Coalgebraic logic programming: from semantics to implementation. J. Logic Comput. 26(2), 745–783 (2016)MathSciNetCrossRefMATH Komendantskaya, E., et al.: Coalgebraic logic programming: from semantics to implementation. J. Logic Comput. 26(2), 745–783 (2016)MathSciNetCrossRefMATH
12.
Zurück zum Zitat Komendantskaya, E., Li, Y.: Productive corecursion in logic programming. In: Proceedings of ICLP 2017 (2017). arXiv:1707.01541. To appear in Journal of Theory and Practice of Logic Programming Komendantskaya, E., Li, Y.: Productive corecursion in logic programming. In: Proceedings of ICLP 2017 (2017). arXiv:​1707.​01541. To appear in Journal of Theory and Practice of Logic Programming
14.
Zurück zum Zitat Lloyd, J.W.: Foundations of Logic Programming, 2nd edn. Springer, Heidelberg (1988)MATH Lloyd, J.W.: Foundations of Logic Programming, 2nd edn. Springer, Heidelberg (1988)MATH
15.
Zurück zum Zitat Nguyen, M.T., et al.: Termination analysis of logic programs based on dependency graphs. In: LPOSTR, pp. 8–22 (2007) Nguyen, M.T., et al.: Termination analysis of logic programs based on dependency graphs. In: LPOSTR, pp. 8–22 (2007)
16.
Zurück zum Zitat Pfenning, F.: Types in Logic Programming. The MIT Press, Cambridge (1992) Pfenning, F.: Types in Logic Programming. The MIT Press, Cambridge (1992)
17.
Zurück zum Zitat Reynolds, A., Blanchette, J.C.: A decision procedure for (co)datatypes in SMT solvers. In: Felty, A.P., Middeldorp, A. (eds.) CADE 2015. LNCS (LNAI), vol. 9195, pp. 197–213. Springer, Cham (2015). doi:10.1007/978-3-319-21401-6_13 CrossRef Reynolds, A., Blanchette, J.C.: A decision procedure for (co)datatypes in SMT solvers. In: Felty, A.P., Middeldorp, A. (eds.) CADE 2015. LNCS (LNAI), vol. 9195, pp. 197–213. Springer, Cham (2015). doi:10.​1007/​978-3-319-21401-6_​13 CrossRef
18.
Zurück zum Zitat Rohwedder, E., Pfenning, F.: Model and termination checking for higher-order logic programs. In: ESOP, pp. 296–310 (1996) Rohwedder, E., Pfenning, F.: Model and termination checking for higher-order logic programs. In: ESOP, pp. 296–310 (1996)
20.
Zurück zum Zitat Schneider-Kamp, P., Giesl, J., Serebrenik, A., Thiemann, R.: Automated termination analysis for logic programs by term rewriting. In: Puebla, G. (ed.) LOPSTR 2006. LNCS, vol. 4407, pp. 177–193. Springer, Heidelberg (2007). doi:10.1007/978-3-540-71410-1_13 CrossRef Schneider-Kamp, P., Giesl, J., Serebrenik, A., Thiemann, R.: Automated termination analysis for logic programs by term rewriting. In: Puebla, G. (ed.) LOPSTR 2006. LNCS, vol. 4407, pp. 177–193. Springer, Heidelberg (2007). doi:10.​1007/​978-3-540-71410-1_​13 CrossRef
21.
Zurück zum Zitat Simon, L., Bansal, A., Mallya, A., Gupta, G.: Co-logic programming: extending logic programming with coinduction. In: Arge, L., Cachin, C., Jurdziński, T., Tarlecki, A. (eds.) ICALP 2007. LNCS, vol. 4596, pp. 472–483. Springer, Heidelberg (2007). doi:10.1007/978-3-540-73420-8_42 CrossRef Simon, L., Bansal, A., Mallya, A., Gupta, G.: Co-logic programming: extending logic programming with coinduction. In: Arge, L., Cachin, C., Jurdziński, T., Tarlecki, A. (eds.) ICALP 2007. LNCS, vol. 4596, pp. 472–483. Springer, Heidelberg (2007). doi:10.​1007/​978-3-540-73420-8_​42 CrossRef
22.
Zurück zum Zitat Terese: Term Rewriting Systems. Cambridge University Press, New York (2003) Terese: Term Rewriting Systems. Cambridge University Press, New York (2003)
Metadaten
Titel
A Productivity Checker for Logic Programming
verfasst von
Ekaterina Komendantskaya
Patricia Johann
Martin Schmidt
Copyright-Jahr
2017
DOI
https://doi.org/10.1007/978-3-319-63139-4_10