Automated termination analysis for logic programs by term rewriting

被引:13
|
作者
Schneider-Kamp, Peter [1 ]
Giesl, Juergen [1 ]
Serebrenik, Alexander [2 ]
Thiemann, Rene [1 ]
机构
[1] Rhein Westfal TH Aachen, LuFG Informat 2, Ahornstr 55, D-52074 Aachen, Germany
[2] Eindhoven Univ Technol, Dept Math & Comp Sci, NL-5600 MB Eindhoven, Netherlands
关键词
D O I
10.1007/978-3-540-71410-1_13
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
There are two kinds of approaches for termination analysis of logic programs: "transformational" and "direct" ones. Direct approaches prove termination directly on the basis of the logic program. Transformational approaches transform a logic program into a term rewrite system (TRS) and then analyze termination of the resulting TRS instead. Thus, transformational approaches make all methods previously developed for TRSs available for logic programs as well. However, the applicability of most existing transformations is quite restricted, as they can only be used for certain subclasses of logic programs. (Most of them are restricted to well-moded programs.) In this paper we improve these transformations such that they become applicable for any definite logic program. To simulate the behavior of logic programs by TRSs, we slightly modify the notion of rewriting by permitting infinite terms. We show that our transformation results in TRSs which are indeed suitable for automated termination analysis. In contrast to most other methods for termination of logic programs, our technique is also sound for logic programming without occur check, which is typically used in practice. We implemented our approach in the termination prover AProVE and successfully evaluated it on a large collection of examples.
引用
收藏
页码:177 / +
页数:3
相关论文
共 50 条
  • [41] Termination of Term Rewriting by Semantic Labelling
    Zantema, H.
    Fundamenta Informaticae, 1995, 24 (1-2): : 89 - 105
  • [42] Non-transformational termination analysis of logic programs, based on general term-orderings
    Serebrenik, A
    De Schreye, D
    LOGIC BASED PROGRAM SYNTHESIS AND TRANSFORMATION, 2001, 2042 : 69 - 85
  • [43] Termination of Graph and Term Graph Rewriting
    Koenig, Barbara
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2016, (225): : 2 - 2
  • [44] Proving Termination of Integer Term Rewriting
    Fuhs, Carsten
    Giesl, Juergen
    Pluecker, Martin
    Schneider-Kamp, Peter
    Falke, Stephan
    REWRITING TECHNIQUES AND APPLICATIONS, 2009, 5595 : 32 - +
  • [45] Tuple Interpretations for Termination of Term Rewriting
    Yamada, Akihisa
    Journal of Automated Reasoning, 2022, 66 (04): : 667 - 688
  • [46] Termination of fair computations in term rewriting
    Lucas, S
    Meseguer, J
    LOGIC FOR PROGRAMMING, ARTIFICIAL INTELLIGENCE, AND REASONING, PROCEEDINGS, 2005, 3835 : 184 - 198
  • [47] From Linear Term Rewriting to Graph Rewriting with Preservation of Termination
    Overbeek, Roy
    Endrullis, Jorg
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2021, (350): : 19 - 34
  • [48] Executable rewriting logic semantics of Orc and formal analysis of Orc programs
    AlTurki, Musab A.
    Meseguer, Jose
    JOURNAL OF LOGICAL AND ALGEBRAIC METHODS IN PROGRAMMING, 2015, 84 (04) : 505 - 533
  • [49] A practical analysis of non-termination in large logic programs
    Liang, Senlin
    Kifer, Michael
    THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2013, 13 : 705 - 719
  • [50] Non-termination analysis of logic programs with integer arithmetics
    Voets, Dean
    De Schreye, Danny
    THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2011, 11 : 521 - 536