Advertisement

Localized Operational Termination in General Logics

  • Salvador Lucas
  • José Meseguer
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8950)

Abstract

Termination can be thought of as the property of programs ensuring that every input is given an answer in finite time. There are, however, many different (combinations of) programming paradigms and languages for these paradigms. Is a common formal definition of termination of programs in any (or most) of these programming languages possible? The notion of operational termination provides a general definition of termination which relies on the logic-based description of (the operational semantics of) a programming language. The key point is capturing termination as the absence of infinite inference, that is: all proof attempts must either successfully terminate, or they must fail in finite time. This global notion is well-suited for most declarative languages, where programs are theories in a logic whose inference system is specialized to each theory to characterize its computations. Other programming languages (e.g., imperative languages) and applications (e.g., the evaluation of specific expressions and goals in functional and logic programs) require a more specialized treatment which pays attention not just to theories, but to specific formulas to be proved within the given theory. For instance, the execution of an imperative program can be viewed as a proof of an specific formula (representing the program) within the computational logic describing the operational semantics of the programming language. In such cases, an appropriate definition of termination should focus on proving the absence of infinite proofs for computations localized to specific goals. In this paper we generalize the global notion of operational termination to this new setting and adapt the recently introduced OT-framework for mechanizing proofs of operational termination to support proofs of localized operational termination.

Keywords

General Logics Operational Termination Program Termination 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Aczel, P.: Schematic Consequence. In: Gabbay, D. (ed.) What is a Logical System, pp. 261–272. Oxford University Press (1994)Google Scholar
  2. 2.
    Alarcón, B., Gutiérrez, R., Lucas, S., Navarro-Marset, R.: Proving Termination Properties with mu-term. In: Johnson, M., Pavlovic, D. (eds.) AMAST 2010. LNCS, vol. 6486, pp. 201–208. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  3. 3.
    Boronat, A., Knapp, A., Meseguer, J., Wirsing, M.: What Is a Multi-modeling Language? In: Corradini, A., Montanari, U. (eds.) WADT 2008. LNCS, vol. 5486, pp. 71–87. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  4. 4.
    Broy, M., Wirsing, M., Pepper, P.: On the Algebraic Definition of Programming Languages. ACM Transactions on Programming Languages and Systems 9(1), 54–99 (1987)CrossRefzbMATHGoogle Scholar
  5. 5.
    Codish, M., Taboch, C.: A semantic basis for the termination analysis of logic programs. Journal of Logic Programming 41, 103–123 (1999)MathSciNetCrossRefzbMATHGoogle Scholar
  6. 6.
    Cook, B., Rybalchenko, A., Podelski, A.: Proving Program Termination. Communications of the ACM 54(5), 88–98 (2011)CrossRefGoogle Scholar
  7. 7.
    Dershowitz, N., Lindenstrauss, N., Sagiv, Y., Serebrenik, A.: A General Framework for Automatic Termination of Logic Programs. Applicable Algebra in Engineering, Communication and Computing 12, 117–156 (2001)MathSciNetCrossRefzbMATHGoogle Scholar
  8. 8.
    Durán, F., Lucas, S., Meseguer, J.: MTT: The Maude Termination Tool (System Description). In: Armando, A., Baumgartner, P., Dowek, G. (eds.) IJCAR 2008. LNCS (LNAI), vol. 5195, pp. 313–319. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  9. 9.
    Durán, F., Lucas, S., Marché, C., Meseguer, J., Urbain, X.: Proving Operational Termination of Membership Equational Programs. Higher-Order and Symbolic Computation 21(1-2), 59–88 (2008)CrossRefzbMATHGoogle Scholar
  10. 10.
    Endrullis, J., de Vrijer, R., Waldmann, J.: Local termination: theory and practice. Logical Methods in Computer Science 6(3:20), 1–37 (2010)MathSciNetzbMATHGoogle Scholar
  11. 11.
    Giesl, J., Thiemann, R., Schneider-Kamp, P., Falke, S.: Mechanizing and Improving Dependency Pairs. Journal of Automatic Reasoning 37(3), 155–203 (2006)MathSciNetCrossRefzbMATHGoogle Scholar
  12. 12.
    Giesl, J., Swiderski, P., Schneider-Kamp, P., Thiemann, R.: Automated Termination Proofs for Haskell by Term Rewriting. ACM Transactions on Programming languages and Systems 33(2), Article 7 (2011)Google Scholar
  13. 13.
    Lucas, S., Meseguer, J.: Strong and Weak Operational Termination of Order-Sorted Rewrite Theories. In: Escobar, S. (ed.) WRLA 2014. LNCS, vol. 8663, pp. 178–194. Springer, Heidelberg (2014)Google Scholar
  14. 14.
    Lucas, S., Meseguer, J.: Proving Operational Termination Of Declarative Programs In General Logics. In: Danvy, O. (ed.) Proc. of the 16th International Symposium on Principles and Practice of Declarative Programming, PPDP 2014. ACM Press (to appear, 2014)Google Scholar
  15. 15.
    Lucas, S., Marché, C., Meseguer, J.: Operational termination of conditional term rewriting systems. Information Processing Letters 95, 446–453 (2005)MathSciNetCrossRefzbMATHGoogle Scholar
  16. 16.
    Meseguer, J.: General Logics. In: Ebbinghaus, H.-D., et al. (eds.) Logic Colloquium’87, pp. 275–329. North-Holland (1989)Google Scholar
  17. 17.
    Meseguer, J.: A Logical Theory of Concurrent Objects and its realization in the Maude Language. In: Agha, G., Wegner, P., Yonezawa, A. (eds.) Research Directions in Concurrent Object-Oriented Programming, pp. 314–390. The MIT Press (1993)Google Scholar
  18. 18.
    Meseguer, J., Rosu, G.: The Rewriting Logic Semantics Project: A Progress Report. Information and Computation 231, 38–69 (2013)MathSciNetCrossRefzbMATHGoogle Scholar
  19. 19.
    Nguyen, M.T., Giesl, J., Schneider-Kamp, P., De Schreye, D.: Termination Analysis of Logic Programs Based on Dependency Graphs. In: King, A. (ed.) LOPSTR 2007. LNCS, vol. 4915, pp. 8–22. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  20. 20.
    de Scheye, D., Decorte, S.: Termination of Logic Programs: The Never-Ending Story. Journal of Logic Programming 19, 199–260 (1994)MathSciNetCrossRefzbMATHGoogle Scholar
  21. 21.
    Schneider-Kamp, P., Giesl, J., Nguyen, M.T.: The Dependency Triple Framework for Termination of Logic Programs. In: De Schreye, D. (ed.) LOPSTR 2009. LNCS, vol. 6037, pp. 37–51. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  22. 22.
    Winskel, G.: The Formal Semantics of Programming Languages. The MIT Press, Cambrige Massachusetts (1993)zbMATHGoogle Scholar
  23. 23.
    Wirsing, M.: Structured Algebraic Specifications: A Kernel Language. Theoretical Computer Science 42, 123–249 (1986)MathSciNetCrossRefzbMATHGoogle Scholar
  24. 24.
    Wirsing, M.: Algebraic Specification. In: Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics (B), pp. 675–788 (1990)Google Scholar
  25. 25.
    Wirsing, M., Knapp, A.: A formal approach to object-oriented software engineering. Theoretical Computer Science 285(2), 519–560 (2002)MathSciNetCrossRefzbMATHGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • Salvador Lucas
    • 1
    • 2
  • José Meseguer
    • 1
  1. 1.CS Dept.University of Illinois at Urbana-ChampaignUSA
  2. 2.DSICUniversitat Politècnica de ValènciaSpain

Personalised recommendations