Results 1  10
of
38
ContextSensitive Rewriting Strategies
, 1997
"... Contextsensitive rewriting is a simple restriction of rewriting which is formalized by imposing fixed restrictions on replacements. Such a restriction is given on a purely syntactic basis: it is (explicitly or automatically) specified on the arguments of symbols of the signature and inductively ..."
Abstract

Cited by 44 (31 self)
 Add to MetaCart
Contextsensitive rewriting is a simple restriction of rewriting which is formalized by imposing fixed restrictions on replacements. Such a restriction is given on a purely syntactic basis: it is (explicitly or automatically) specified on the arguments of symbols of the signature and inductively extended to arbitrary positions of terms built from those symbols. Termination is not only preserved but usually improved and several methods have been developed to formally prove it. In this paper, we investigate the definition, properties, and use of contextsensitive rewriting strategies, i.e., particular, fixed sequences of contextsensitive rewriting steps. We study how to define them in order to obtain efficient computations and to ensure that contextsensitive computations terminate whenever possible. We give conditions enabling the use of these strategies for rootnormalization, normalization, and infinitary normalization. We show that this theory is suitable for formalizing ...
Automated Termination Analysis for Haskell: From Term Rewriting to Programming Languages
 In Proc. RTA ’06, LNCS
, 2006
"... Abstract. 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 in order to prove termin ..."
Abstract

Cited by 34 (10 self)
 Add to MetaCart
Abstract. 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 in order to prove termination of programs in the functional language Haskell. 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. 1
Contextsensitive dependency pairs
 In the 26th Conference on Foundations of Software Technology and Theoretical Computer Science
, 2006
"... Abstract. Termination is one of the most interesting problems when dealing with contextsensitive rewrite systems. Although there is a good number of techniques for proving termination of contextsensitive rewriting (CSR), the dependency pair approach, one of the most powerful techniques for proving ..."
Abstract

Cited by 27 (11 self)
 Add to MetaCart
(Show Context)
Abstract. Termination is one of the most interesting problems when dealing with contextsensitive rewrite systems. Although there is a good number of techniques for proving termination of contextsensitive rewriting (CSR), the dependency pair approach, one of the most powerful techniques for proving termination of rewriting, has not been investigated in connection with proofs of termination of CSR. In this paper, we show how to use dependency pairs in proofs of termination of CSR. The implementation and practical use of the developed techniques yield a novel and powerful framework which improves the current stateoftheart of methods for proving termination of CSR.
muterm: A Tool for Proving Termination of ContextSensitive Rewriting
 Proc. of 15h International Conference on Rewriting Techniques and Applications, RTA’04, LNCS 3091:200209
, 2004
"... Restrictions of rewriting can eventually achieve termination by pruning all in nite rewrite sequences issued from every term. Contextsensitive rewriting (CSR) is an example of such a restriction. In CSR, the replacements in some arguments of the function symbols are permanently forbidden. This ..."
Abstract

Cited by 25 (22 self)
 Add to MetaCart
(Show Context)
Restrictions of rewriting can eventually achieve termination by pruning all in nite rewrite sequences issued from every term. Contextsensitive rewriting (CSR) is an example of such a restriction. In CSR, the replacements in some arguments of the function symbols are permanently forbidden. This paper describes muterm, a tool which can be used to automatically prove termination of CSR. The tool implements the generation of the appropriate orderings for proving termination of CSR by means of polynomial interpretations over the rational numbers.
Polynomials for Proving Termination of ContextSensitive Rewriting
 In Proc. of FOSSACS’04, LNCS 2987:318332
, 2004
"... We show how to generate wellfounded and stable term orderings based on polynomial interpretations over the real numbers. Monotonicity (another usual requirement in termination proofs) can, then, be gradually introduced in the interpretations to deal with dierent applications. ..."
Abstract

Cited by 24 (16 self)
 Add to MetaCart
(Show Context)
We show how to generate wellfounded and stable term orderings based on polynomial interpretations over the real numbers. Monotonicity (another usual requirement in termination proofs) can, then, be gradually introduced in the interpretations to deal with dierent applications.
Proving Termination of ContextSensitive Rewriting with MUTERM
, 2007
"... Contextsensitive rewriting (CSR) is a restriction of rewriting which forbids reductions on selected arguments of functions. Proving termination of CSR is an interesting problem with several applications in the fields of term rewriting and programming languages. Several methods have been developed f ..."
Abstract

Cited by 17 (15 self)
 Add to MetaCart
Contextsensitive rewriting (CSR) is a restriction of rewriting which forbids reductions on selected arguments of functions. Proving termination of CSR is an interesting problem with several applications in the fields of term rewriting and programming languages. Several methods have been developed for proving termination of CSR. The new version of MUTERM which we present here implements all currently known techniques. Furthermore, we show how to combine them to furnish MUTERM with an expert which is able to automatically perform the termination proofs. Finally, we provide a first experimental evaluation of the tool.
Lazy Rewriting and ContextSensitive Rewriting
 Electronic Notes in Theoretical Computer Science, volume 64. Elsevier Sciences
, 2002
"... Lazy rewriting (LR) is intended to improve the termination behavior of TRSs. This is attempted by restricting reductions for selected arguments of functions. Similarly, contextsensitive rewriting (CSR) forbids any reduction on those arguments. We show that, under certain conditions, LR and CSR coin ..."
Abstract

Cited by 14 (10 self)
 Add to MetaCart
Lazy rewriting (LR) is intended to improve the termination behavior of TRSs. This is attempted by restricting reductions for selected arguments of functions. Similarly, contextsensitive rewriting (CSR) forbids any reduction on those arguments. We show that, under certain conditions, LR and CSR coincide. On the basis of this result, we also describe a transformation which permits proving termination of LR as termination of CSR for the transformed system. Since there is a number of different techniques for proving termination of CSR, this provides a (first) formal framework for proving termination of lazy rewriting.
Termination of (Canonical) ContextSensitive Rewriting
 Proc. of 13th International Conference on Rewriting Techniques and Applications, RTA'02, LNCS
, 2002
"... Contextsensitive rewriting (CSR) is a restriction of rewriting which forbids reductions on selected arguments of functions. A replacement map discriminates, for each symbol of the signature, the argument positions on which replacements are allowed. If the replacement restrictions are less restr ..."
Abstract

Cited by 10 (6 self)
 Add to MetaCart
(Show Context)
Contextsensitive rewriting (CSR) is a restriction of rewriting which forbids reductions on selected arguments of functions. A replacement map discriminates, for each symbol of the signature, the argument positions on which replacements are allowed. If the replacement restrictions are less restrictive than those expressed by the socalled canonical replacement map, then CSR can be used for computing (infinite) normal forms of terms. Termination of such canonical CSR is desirable when using CSR for these purposes. Existing transformations for proving termination of CSR fulfill a number of new properties when used for proving termination of canonical CSR.
Improving the Contextsensitive Dependency Graph
, 2007
"... The dependency pairs method is one of the most powerful technique for proving termination of rewriting and it is currently central in most automatic termination provers. Recently, it has been adapted to be used in proofs of termination of contextsensitive rewriting. The use of collapsing dependency ..."
Abstract

Cited by 10 (5 self)
 Add to MetaCart
The dependency pairs method is one of the most powerful technique for proving termination of rewriting and it is currently central in most automatic termination provers. Recently, it has been adapted to be used in proofs of termination of contextsensitive rewriting. The use of collapsing dependency pairs i.e., having a single variable in the righthand side is a novel and essential feature to obtain a correct framework in this setting. Unfortunately, dependency pairs behave as a kind of glue in the contextsensitive dependency graph which makes the cycles bigger, thus making some proofs of termination harder. In this paper we show that this effect can be safely mitigated by removing some arcs from the graph, thus leading to faster and easier proofs. Narrowing dependency pairs is also introduced and used here to eventually simplify the treatment of the contextsensitive dependency graph. We show the practicality of the new techniques with some benchmarks.
Modular termination of contextsensitive rewriting
 IN PROC. 4TH PPDP
, 2002
"... Contextsensitive rewriting (CSR) has recently emerged as an interesting and flexible paradigm that provides a bridge between the abstract world of general rewriting and the (more) applied setting of declarative specification and programming languages such as OBJ*, CafeOBJ, ELAN, and Maude. A natura ..."
Abstract

Cited by 9 (6 self)
 Add to MetaCart
Contextsensitive rewriting (CSR) has recently emerged as an interesting and flexible paradigm that provides a bridge between the abstract world of general rewriting and the (more) applied setting of declarative specification and programming languages such as OBJ*, CafeOBJ, ELAN, and Maude. A natural approach to study properties of programs written in these languages is to model them as contextsensitive rewriting systems. Here we are especially interested in proving termination of such systems, and thereby providing methods to establish termination of e.g. OBJ* programs. For proving termination of contextsensitive rewriting, there exist a few transformation methods, that reduce the problem to termination of a transformed ordinary term rewriting system (TRS). These transformations, however, have some serious drawbacks. In particular, most of them do not seem to support a modular analysis of the termination problem. In this paper we will show that a substantial part of the wellknown theory of modular term rewriting can be extended to CSR, via a thorough analysis of the additional complications arising from contextsensitivity. More precisely, we will mainly concentrate on termination (properties). The obtained modularity results correspond nicely to the fact that in the above languages the modular design of programs and specifications is explicitly promoted, since it can now also be complemented by modular analysis techniques.