Results 1 
6 of
6
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
A Term Rewriting Approach to the Automated Termination Analysis of Imperative Programs
"... Abstract. An approach based on term rewriting techniques for the automated termination analysis of imperative programs operating on integers is presented. An imperative program is transformed into rewrite rules with constraints from quantifierfree Presburger arithmetic. Any computation in the imper ..."
Abstract

Cited by 10 (3 self)
 Add to MetaCart
(Show Context)
Abstract. An approach based on term rewriting techniques for the automated termination analysis of imperative programs operating on integers is presented. An imperative program is transformed into rewrite rules with constraints from quantifierfree Presburger arithmetic. Any computation in the imperative program corresponds to a rewrite sequence, and termination of the rewrite system thus implies termination of the imperative program. Termination of the rewrite system is analyzed using a decision procedure for Presburger arithmetic that identifies possible chains of rewrite rules, and automatically generated polynomial interpretations are used to show finiteness of such chains. An implementation of the approach has been evaluated on a large collection of imperative programs, thus demonstrating its effectiveness and practicality. 1
Operational termination of conditional rewriting with builtin numbers and semantic data structures
, 2007
"... Abstract. Rewrite systems on free data structures have limited expressive power since semantic data structures like sets or multisets cannot be modeled elegantly. In this work we define a class of rewrite systems that allows the use of semantic data structures. Additionally, builtin natural numbers ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
Abstract. Rewrite systems on free data structures have limited expressive power since semantic data structures like sets or multisets cannot be modeled elegantly. In this work we define a class of rewrite systems that allows the use of semantic data structures. Additionally, builtin natural numbers, including (dis)equality, ordering, and divisibility constraints, are supported. The rewrite mechanism is a combination of normalized equational rewriting with evaluation of conditions and validity checking of instantiated constraints. The framework is highly expressive and allows modeling of algorithms in a natural way. Termination is one of the most important properties of conditional normalized equational rewriting. For this it is not sufficient to only show wellfoundedness of the rewrite relation, but it also has to be ensured that evaluation of the conditions does not loop. The notion of operational termination is a way to capture these properties. In this work we show that it is possible to transform a conditional constrained equational rewrite system into an unconditional one such that termination of the latter implies operational termination of the former. Methods for showing termination of unconditional constrained equational rewrite system are presented in a companion paper. 1
Termination of ContextSensitive Rewriting with BuiltIn Numbers and Collection Data Structures ⋆
"... Abstract. Contextsensitive rewriting is a restriction of rewriting that can be used to elegantly model declarative specification and programming languages such as Maude. Furthermore, it can be used to model lazy evaluation in functional languages such as Haskell. Building upon our previous work on ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
Abstract. Contextsensitive rewriting is a restriction of rewriting that can be used to elegantly model declarative specification and programming languages such as Maude. Furthermore, it can be used to model lazy evaluation in functional languages such as Haskell. Building upon our previous work on an expressive and elegant class of rewrite systems (called CERSs) that contains builtin numbers and supports the use of collection data structures such as sets or multisets, we consider contextsensitive rewriting with CERSs in this paper. This integration results in a natural way for specifying algorithms in the rewriting framework. In order to prove termination of this kind of rewriting automatically, we develop a dependency pair framework for contextsensitive rewriting with CERSs, resulting in a flexible termination method that can be automated effectively. Several powerful termination techniques are developed within this framework. An implementation in the termination prover AProVE has been successfully evaluated on a large collection of examples. 1
Automated Termination Proofs for Haskell . . .
, 2010
"... There are many powerful techniques for automated termination analysis of term rewriting. However, up to now they have hardly been used for real programming languages. We present a new approach which permits the application of existing techniques from term rewriting to prove termination of most funct ..."
Abstract
 Add to MetaCart
There are many powerful techniques for automated termination analysis of term rewriting. However, up to now they have hardly been used for real programming languages. We present a new approach which permits the application of existing techniques from term rewriting to prove termination of most functions defined in Haskell programs. In particular, we show how termination techniques for ordinary rewriting can be used to handle those features of Haskell which are missing in term rewriting (e.g., lazy evaluation, polymorphic types, and higherorder functions). We implemented our results in the termination prover AProVE and successfully evaluated them on existing Haskelllibraries.
References
"... This erratum corrects the proof of Lemma 12. For the definition of ∼E∪PA, recall that PA is the following set of equations given in the beginning of Section 2: PA = {x + (y + z) ≈ (x + y) + z, x + y ≈ y + x, x + 0 ≈ x} We use the standard definition of relation composition, i.e., we let x(P ◦ Q)z i ..."
Abstract
 Add to MetaCart
This erratum corrects the proof of Lemma 12. For the definition of ∼E∪PA, recall that PA is the following set of equations given in the beginning of Section 2: PA = {x + (y + z) ≈ (x + y) + z, x + y ≈ y + x, x + 0 ≈ x} We use the standard definition of relation composition, i.e., we let x(P ◦ Q)z iff there is a y such that xPy and yQz. Lemma 12. Let (R, S, E) be a CCES. Then ∼E∪PA ◦ S → PA‖E\R ⊆ S → PA‖E\R ◦ ∼E∪PA. Furthermore, the S → PA‖E\R steps are performed using the same conditional constrained rewrite rule and PAbased substitution. Proof. Assume s ′ ∼E∪PA s S → PA‖E\R t. We then need to show that s ′ S → PA‖E\R t ′ ∼E∪PA t for some t ′. From s S → PA‖E\R t we get s = C[f(u ∗)] for some context C and some f ∈ D(R), where f(u ∗ ) <ε