Results 1 -
6 of
6
Termination of Term Rewriting Using Dependency Pairs
- Comput. Sci
, 2000
"... We present techniques to prove termination and innermost termination of term rewriting systems automatically. In contrast to previous approaches, we do not compare left- and right-hand sides of rewrite rules, but introduce the notion of dependency pairs to compare left-hand sides with special subter ..."
Abstract
-
Cited by 195 (49 self)
- Add to MetaCart
We present techniques to prove termination and innermost termination of term rewriting systems automatically. In contrast to previous approaches, we do not compare left- and right-hand sides of rewrite rules, but introduce the notion of dependency pairs to compare left-hand sides with special subterms of the right-hand sides. This results in a technique which allows to apply existing methods for automated termination proofs to term rewriting systems where they failed up to now. In particular, there are numerous term rewriting systems where a direct termination proof with simplification orderings is not possible, but in combination with our technique, well-known simplification orderings (such as the recursive path ordering, polynomial orderings, or the Knuth-Bendix ordering) can now be used to prove termination automatically. Unlike previous methods, our technique for proving innermost termination automatically can also be applied to prove innermost termination of term rewriting systems that are not terminating. Moreover, as innermost termination implies termination for certain classes of term rewriting systems, this technique can also be used for termination proofs of such systems.
Termination of Nested and Mutually Recursive Algorithms
, 1996
"... This paper deals with automated termination analysis for functional programs. Previously developed methods for automated termination proofs of functional programs often fail for algorithms with nested recursion and they cannot handle algorithms with mutual recursion. We show that termination proofs ..."
Abstract
-
Cited by 38 (9 self)
- Add to MetaCart
This paper deals with automated termination analysis for functional programs. Previously developed methods for automated termination proofs of functional programs often fail for algorithms with nested recursion and they cannot handle algorithms with mutual recursion. We show that termination proofs for nested and mutually recursive algorithms can be performed without having to prove the correctness of the algorithms simultaneously. Using this result, nested and mutually recursive algorithms do no longer constitute a special problem and the existing methods for automated termination analysis can be extended to nested and mutual recursion in a straightforward way. We give some examples of algorithms whose termination can now be proved automatically (including well-known challenge problems such as McCarthy's f_91 function).
Termination analysis for functional programs using term orderings
- IN PROCEEDINGS OF THE SECOND INTERNATIONAL STATIC ANALYSIS SYMPOSIUM, LNCS 983
, 1995
"... To prove the termination of a functional program there has to be a well-founded ordering such that the arguments in each recursive call are smaller than the corresponding inputs. In this paper we present a procedure for automated termination proofs of functional programs. In contrast to previously p ..."
Abstract
-
Cited by 31 (12 self)
- Add to MetaCart
To prove the termination of a functional program there has to be a well-founded ordering such that the arguments in each recursive call are smaller than the corresponding inputs. In this paper we present a procedure for automated termination proofs of functional programs. In contrast to previously presented methods a suited well-founded ordering does not have to be fixed in advance by the user, but can be synthesized automatically. For that purpose we use approaches developed in the area of term rewriting systems for the automated generation of suited well-founded term orderings. But unfortunately term orderings cannot be directly used for termination proofs of functional programs which call other algorithms in the arguments of their recursive calls. The reason is that while for the termination of term rewriting systems orderings between terms are needed, for functional programs we need orderings between objects of algebraic data types. Our method solves this problem and enables term orderings to be used for termination proofs of functional programs.
Automated Termination Proofs with Measure Functions
- In Proc. 19th Annual German Conf. on AI, LNAI 981
, 1995
"... . This paper deals with the automation of termination proofs for recursively defined algorithms (i.e. algorithms in a pure functional language). Previously developed methods for their termination proofs either had a low degree of automation or they were restricted to one single fixed measure functio ..."
Abstract
-
Cited by 10 (6 self)
- Add to MetaCart
. This paper deals with the automation of termination proofs for recursively defined algorithms (i.e. algorithms in a pure functional language). Previously developed methods for their termination proofs either had a low degree of automation or they were restricted to one single fixed measure function to compare data objects. To overcome these drawbacks we introduce a calculus for automated termination proofs which is able to handle arbitrary measure functions based on polynomial norms. 1 Introduction Termination of algorithms is a central problem in software development. For an automation of program verification, termination proofs have to be performed mechanically, i.e. without human support. Of course, as the halting problem is undecidable, there is no procedure to prove or disprove termination of all algorithms. In this paper we focus on recursively defined algorithms, i.e. algorithms in a pure (eager) functional language without iterative loops. An algorithm f(x) terminates, if ...
New Criteria for Strong and Innermost Normalisation
, 1996
"... In this paper we present a technique for automated termination proofs of term rewriting systems (TRS). More precisely, we introduce criteria for both strong and innermost normalisation and we show how these criteria can be checked automatically. In this way, termination of numerous (also nonsimply t ..."
Abstract
- Add to MetaCart
In this paper we present a technique for automated termination proofs of term rewriting systems (TRS). More precisely, we introduce criteria for both strong and innermost normalisation and we show how these criteria can be checked automatically. In this way, termination of numerous (also nonsimply terminating) TRSs resp. innermost normalisation of many (also nonterminating) TRSs can be proved fully automatically. 1 Introduction One of the most interesting properties of a term rewriting system is termination (or strong normalisation), cf. e.g. [DJ90]. While in general this problem is undecidable [HL78], several methods for proving termination have been developed (e.g. path orderings [Pla78, Der82, DH95, Ste95b], Knuth-Bendix orderings [KB70, DKM90], semantic interpretations [Lan79, BL87, BL93, Ste94, Zan94, Gie95], transformation orderings [BD86, BL90, Ste95a], semantic labelling [Zan95] etc. --- for surveys see e.g. [Der87, Ste95b]). Moreover, termination properties of rewriting unde...

