Results 1  10
of
36
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 97 (39 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 49 (23 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 31 (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 25 (11 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 18 (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
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 5 (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 5 (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.
Rewriting Techniques for Analysing Termination and Complexity Bounds of Safe Programs ⋆
"... Abstract. Safe is a firstorder eager functional language with facilities for programmercontrolled destruction and copying of data structures and is intended for compiletime analysis of memory consumption. In Safe, heap and stack memory consumption depends on the length of recursive calls chains. ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
(Show Context)
Abstract. Safe is a firstorder eager functional language with facilities for programmercontrolled destruction and copying of data structures and is intended for compiletime analysis of memory consumption. In Safe, heap and stack memory consumption depends on the length of recursive calls chains. Ensuring termination of Safe programs (or of particular function calls) is therefore essential to implement these features. Furthermore, being able to give bounds to the chain length required by such terminating calls becomes essential in computing space bounds. In this paper, we investigate how to analyze termination of Safe programs by using standard term rewriting techniques, i.e., by transforming Safe programs into term rewriting systems whose termination can be automatically analysed by means of existing tools. Furthermore, we investigate how to use proofs of termination which combine the dependency pairs approach with polynomial interpretations to obtain suitable bounds to the length of chains of recursive calls in Safe programs.
Programming errors in traversal programs over structured data
"... Traversal strategies provide an established means of describing automated queries, analyses, transformations, and other nontrivial computations on deeply structured data (including, most notably, data representations of software artifacts such as programs). The resulting traversal programs are pron ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
(Show Context)
Traversal strategies provide an established means of describing automated queries, analyses, transformations, and other nontrivial computations on deeply structured data (including, most notably, data representations of software artifacts such as programs). The resulting traversal programs are prone to programming errors. We are specifically concerned with errors that go beyond classic type errors, in particular: (i) divergence of traversal, (ii) unintentional extent of traversal into data, (iii) trivial traversal results, (iv) inapplicability of the constituents of a traversal program along traversal. We deliver a taxonomy of programming errors, and start attacking some of them by refinements of traversal programming.
Abstractionrefinement for termination
 In 12th International Static Analysis Symposium(SAS’05
, 2005
"... In contrast to popular belief, proving ..."