Results 1  10
of
35
Mechanizing and Improving Dependency Pairs
 Journal of Automated Reasoning
, 2006
"... Abstract. The dependency pair technique [1, 11, 12] is a powerful method for automated termination and innermost termination proofs of term rewrite systems (TRSs). For any TRS, it generates inequality constraints that have to be satisfied by wellfounded orders. We improve the dependency pair techni ..."
Abstract

Cited by 82 (36 self)
 Add to MetaCart
(Show Context)
Abstract. The dependency pair technique [1, 11, 12] is a powerful method for automated termination and innermost termination proofs of term rewrite systems (TRSs). For any TRS, it generates inequality constraints that have to be satisfied by wellfounded orders. We improve the dependency pair technique by considerably reducing the number of constraints produced for (innermost) termination proofs. Moreover, we extend transformation techniques to manipulate dependency pairs which simplify (innermost) termination proofs significantly. In order to fully mechanize the approach, we show how transformations and the search for suitable orders can be mechanized efficiently. We implemented our results in the automated termination prover AProVE and evaluated them on large collections of examples.
SAT Solving for Termination Analysis with Polynomial Interpretations
, 2007
"... Polynomial interpretations are one of the most popular techniques for automated termination analysis and the search for such interpretations is a main bottleneck in most termination provers. We show that one can obtain speedups in orders of magnitude by encoding this task as a SAT problem and by a ..."
Abstract

Cited by 41 (21 self)
 Add to MetaCart
(Show Context)
Polynomial interpretations are one of the most popular techniques for automated termination analysis and the search for such interpretations is a main bottleneck in most termination provers. We show that one can obtain speedups in orders of magnitude by encoding this task as a SAT problem and by applying modern SAT solvers.
Automated termination analysis for logic programs with cut
, 2010
"... Termination is an important and wellstudied property for logic programs. However, almost all approaches for automated termination analysis focus on definite logic programs, whereas realworld Prolog programs typically use the cut operator. We introduce a novel preprocessing method which automatica ..."
Abstract

Cited by 28 (14 self)
 Add to MetaCart
Termination is an important and wellstudied property for logic programs. However, almost all approaches for automated termination analysis focus on definite logic programs, whereas realworld Prolog programs typically use the cut operator. We introduce a novel preprocessing method which automatically transforms Prolog programs into logic programs without cuts, where termination of the cutfree program implies termination of the original program. Hence after this preprocessing, any technique for proving termination of definite logic programs can be applied. We implemented this preprocessing in our
AUTOMATED TERMINATION ANALYSIS OF JAVA BYTECODE BY TERM REWRITING
, 2010
"... We present an automated approach to prove termination of Java Bytecode (JBC) programs by automatically transforming them to term rewrite systems (TRSs). In this way, the numerous techniques and tools developed for TRS termination can now be used for imperative objectoriented languages like Java, ..."
Abstract

Cited by 20 (10 self)
 Add to MetaCart
(Show Context)
We present an automated approach to prove termination of Java Bytecode (JBC) programs by automatically transforming them to term rewrite systems (TRSs). In this way, the numerous techniques and tools developed for TRS termination can now be used for imperative objectoriented languages like Java, which can be compiled into JBC.
Proving termination of integer term rewriting
 In Proc. RTA ’09, LNCS 5595
, 2009
"... Abstract. When using rewrite techniques for termination analysis of programs, a main problem are predefined data types like integers. We extend term rewriting by builtin integers and adapt the dependency pair framework to prove termination of integer term rewriting automatically. 1 ..."
Abstract

Cited by 17 (11 self)
 Add to MetaCart
(Show Context)
Abstract. When using rewrite techniques for termination analysis of programs, a main problem are predefined data types like integers. We extend term rewriting by builtin integers and adapt the dependency pair framework to prove termination of integer term rewriting automatically. 1
Abstractionrefinement for termination
 In 12th International Static Analysis Symposium(SAS’05
, 2005
"... In contrast to popular belief, proving ..."
C.: Loops under Strategies
 Proc. of the 20th International Conference on Rewriting Techniques and Applications, RTA’09. LNCS
, 2009
"... Abstract. Most techniques to automatically disprove termination of term rewrite systems search for a loop. Whereas a loop implies nontermination for full rewriting, this is not necessarily the case if one considers rewriting under strategies. Therefore, in this paper we first generalize the notion o ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
(Show Context)
Abstract. Most techniques to automatically disprove termination of term rewrite systems search for a loop. Whereas a loop implies nontermination for full rewriting, this is not necessarily the case if one considers rewriting under strategies. Therefore, in this paper we first generalize the notion of a loop to a loop under a given strategy. In a second step we present two novel decision procedures to check whether a given loop is a contextsensitive or an outermost loop. We implemented and successfully evaluated our method in the termination prover T T T 2. 1
Deciding Innermost Loops
 PROC. RTA '08
, 2008
"... We present the first method to disprove innermost termination of term rewrite systems automatically. To this end, we first develop a suitable notion of an innermost loop. Second, we show how to detect innermost loops: One can start with any technique amenable to find loops. Then our novel procedur ..."
Abstract

Cited by 4 (4 self)
 Add to MetaCart
(Show Context)
We present the first method to disprove innermost termination of term rewrite systems automatically. To this end, we first develop a suitable notion of an innermost loop. Second, we show how to detect innermost loops: One can start with any technique amenable to find loops. Then our novel procedure can be applied to decide whether a given loop is an innermost loop. We implemented and successfully evaluated our method in the termination prover AProVE.
OrderSorted Dependency Pairs
, 2008
"... Types (or sorts) are pervasive in computer science and in rewritingbased programming languages, which often support subtypes (subsorts) and subtype polymorphism. Programs in these languages can be modeled as ordersorted term rewriting systems (OSTRSs). Often, termination of such programs heavily d ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
Types (or sorts) are pervasive in computer science and in rewritingbased programming languages, which often support subtypes (subsorts) and subtype polymorphism. Programs in these languages can be modeled as ordersorted term rewriting systems (OSTRSs). Often, termination of such programs heavily depends on sort information. But few techniques are currently available for proving termination of OSTRSs; and they often fail for interesting OSTRSs. In this paper we generalize the dependency pairs approach to prove termination of OSTRSs. Preliminary experiments suggest that this technique can succeed where existing ones fail, yielding easier and simpler termination proofs.
Termination of Narrowing via Termination of Rewriting
"... Narrowing extends rewriting with logic capabilities by allowing logic variables in terms and by replacing matching with unification. Narrowing has been widely used in different contexts, ranging from theorem proving (e.g., protocol verification) to language design (e.g., it forms the basis of funct ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Narrowing extends rewriting with logic capabilities by allowing logic variables in terms and by replacing matching with unification. Narrowing has been widely used in different contexts, ranging from theorem proving (e.g., protocol verification) to language design (e.g., it forms the basis of functional logic languages). Surprisingly, the termination of narrowing has been mostly overlooked. In this work, we present a novel approach for analyzing the termination of narrowing in leftlinear constructor systems—a widely accepted class of systems—that allows us to reuse existing methods in the literature on termination of rewriting.