Localized Operational Termination in General Logics
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.
KeywordsGeneral Logics Operational Termination Program Termination
Unable to display preview. Download preview PDF.
- 1.Aczel, P.: Schematic Consequence. In: Gabbay, D. (ed.) What is a Logical System, pp. 261–272. Oxford University Press (1994)Google Scholar
- 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.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.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
- 16.Meseguer, J.: General Logics. In: Ebbinghaus, H.-D., et al. (eds.) Logic Colloquium’87, pp. 275–329. North-Holland (1989)Google Scholar
- 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
- 24.Wirsing, M.: Algebraic Specification. In: Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics (B), pp. 675–788 (1990)Google Scholar