Results 1  10
of
23
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 46 (32 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 ...
A Survey of Rewriting Strategies in Program Transformation Systems
 In Workshop on Reduction Strategies in Rewriting and Programming (WRS’01), volume 57 of Electronic Notes in Theoretical Computer Science
, 2001
"... Program transformation is used in a wide range of applications including compiler construction, optimization, program synthesis, refactoring, software renovation, and reverse engineering. Complex program transformations are achieved through a number of consecutive modifications of a program. Transfo ..."
Abstract

Cited by 35 (1 self)
 Add to MetaCart
(Show Context)
Program transformation is used in a wide range of applications including compiler construction, optimization, program synthesis, refactoring, software renovation, and reverse engineering. Complex program transformations are achieved through a number of consecutive modifications of a program. Transformation rules define basic modifications. A transformation strategy is an algorithm for choosing a path in the rewrite relation induced by a set of rules. This paper surveys the support for the definition of strategies in program transformation systems. After a discussion of kinds of program transformation and choices in program representation, the basic elements of a strategy system are discussed and the choices in the design of a strategy language are considered. Several styles of strategy systems as provided in existing languages are then analyzed.
Termination of ondemand rewriting and termination of OBJ programs
 In Proc. of 3rd International Conference on Principles and Practice of Declarative Programming, PPDP'01
, 2001
"... Declarative languages such as OBJ*, CafeOBJ, and Maude use syntactic annotations to introduce replacement restrictions aimed at improving termination or efficiency of computations. Unfortunately, there is a lack of formal techniques for proving such benefits. We show that contextsensitive rewriting ..."
Abstract

Cited by 33 (21 self)
 Add to MetaCart
(Show Context)
Declarative languages such as OBJ*, CafeOBJ, and Maude use syntactic annotations to introduce replacement restrictions aimed at improving termination or efficiency of computations. Unfortunately, there is a lack of formal techniques for proving such benefits. We show that contextsensitive rewriting and ondemand rewriting provide a suitable framework to address this problem. We provide methods to analyze termination of ondemand rewriting and apply them to analyze termination of OBJ*, CafeOBJ, and Maude programs. Keywords Program analysis, replacement restrictions, term rewriting, termination 1.
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
(Show Context)
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.
Demandness in Rewriting and Narrowing
 Proc. of the 11th Int’l Workshop on Functional and (Constraint) Logic Programming WFLP’02, volume 76 of Electronic Notes in Theoretical Computer Science. Elsevier Sciences Publisher
, 2002
"... The traditional investigation of rewriting and narrowing strategies aims at establishing fundamental properties, such as soundness, completeness and/or optimality, of a strategy. In this work, we analyze and compare rewriting and narrowing strategies from the point of view of the information tak ..."
Abstract

Cited by 11 (4 self)
 Add to MetaCart
The traditional investigation of rewriting and narrowing strategies aims at establishing fundamental properties, such as soundness, completeness and/or optimality, of a strategy. In this work, we analyze and compare rewriting and narrowing strategies from the point of view of the information taken into account by a strategy to compute a step. The notion of demandness provides a suitable framework for presenting and comparing wellknown strategies. We find the existence of an almost linear sequence of strategies that take into account more and more information. We show on examples that, as we progress on this sequence, a strategy becomes more focused and avoids some useless steps computed by strategies preceding it in this sequence. Our work, which is still in progress, clarifies the behavior of similar or related strategies and it promises to simplify the transfer of some results from one strategy to another. It also suggests that the notion of demandness is both atomic and fundamental to the study of strategies.
Compact Normalisation Trace via Lazy Rewriting
, 2001
"... Innermost strategies are usually used in compiling term rewriting systems (TRSs) since they allow to eciently build result terms in a bottomup fashion. However, innermost strategies do not always give the shortest normalising derivation. In many cases, using an appropriate laziness annotation on th ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
Innermost strategies are usually used in compiling term rewriting systems (TRSs) since they allow to eciently build result terms in a bottomup fashion. However, innermost strategies do not always give the shortest normalising derivation. In many cases, using an appropriate laziness annotation on the arguments of function symbols, we evaluate lazy arguments only if it is necessary and hence, get a shorter derivation to normal forms while avoiding nonterminating reductions. We provide in this work a transformation of annotated TRSs, that allows to compute normal forms using an innermost strategy and to extract lazy derivations in the original TRS from normalising derivations in the transformed TRS. We apply our result to improve the eciency of equational reasoning in the Coq proof assistant using ELAN as an external rewriting engine.
Strategic Computation and Deduction
, 2009
"... I'd like to conclude by emphasizing what a wonderful eld this is to work in. Logical reasoning plays such a fundamental role in the spectrum of intellectual activities that advances in automating logic will inevitably have a profound impact in many intellectual disciplines. Of course, these thi ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
(Show Context)
I'd like to conclude by emphasizing what a wonderful eld this is to work in. Logical reasoning plays such a fundamental role in the spectrum of intellectual activities that advances in automating logic will inevitably have a profound impact in many intellectual disciplines. Of course, these things take time. We tend to be impatient, but we need some historical perspective. The study of logic has a very long history, going back at least as far as Aristotle. During some of this time not very much progress was made. It's gratifying to realize how much has been accomplished in the less than fty years since serious e orts to mechanize logic began.
How to Give Local Strategies to Function Symbols for Equality of Two Implementations of the Estrategy with and without Evaluated Flags
 Proceedings of Asian Symposium on Computer Mathematics
, 1998
"... . The evaluation strategy (abbr. the Estrategy) initiated by OBJ2 is one of compromises between outermost and innermost reduction strategies. Although rewriting with the Estrategy is intuitively easytounderstand, the straightforward implementation cannot lead to efficient rewriting. Then, the im ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
(Show Context)
. The evaluation strategy (abbr. the Estrategy) initiated by OBJ2 is one of compromises between outermost and innermost reduction strategies. Although rewriting with the Estrategy is intuitively easytounderstand, the straightforward implementation cannot lead to efficient rewriting. Then, the implementations of OBJ3 and CafeOBJ use evaluated flags to implement reasonably rewriting with the Estrategy. However, rewriting with evaluated flags is not always equivalent to that without evaluated flags, which depends on local strategies given to function symbols. So far we did not have any useful guidelines on how to give local strategies to function symbols. In this paper, we present a sufficient but reasonable condition (i.e. how to give local strategies to function symbols) that two implementations of the Estrategy with and without evaluated flags are equivalent, and give its proof. 1. Introduction A reduction strategy is a function that takes a set of rewrite rules (i.e. a term rew...
Termination of Lazy Rewriting Revisited
, 2007
"... Lazy rewriting is a proper restriction of term rewriting that dynamically restricts the reduction of certain arguments of functions in order to obtain termination. In contrast to contextsensitive rewriting, reductions at such argument positions are not completely forbidden but delayed. Based on the ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
(Show Context)
Lazy rewriting is a proper restriction of term rewriting that dynamically restricts the reduction of certain arguments of functions in order to obtain termination. In contrast to contextsensitive rewriting, reductions at such argument positions are not completely forbidden but delayed. Based on the observation that the only existing (nontrivial) approach to prove termination of such lazy rewrite systems is flawed, we develop a modified approach for transforming lazy rewrite systems into contextsensitive ones that is sound and complete with respect to termination. First experimental results with this transformation based technique are encouraging.
ContextSensitive Rewriting, Lazy Rewriting, and Ondemand Rewriting
 ChristianAlbrechtsUniversitat zu Kiel
, 2001
"... Ondemand rewriting provides an operational model for term rewriting controlled by annotations consisting of (sets of) positive and negative integers referring the arguments of function symbols. Contextsensitive rewriting and lazy rewriting provide (different) operational models for positive ann ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
(Show Context)
Ondemand rewriting provides an operational model for term rewriting controlled by annotations consisting of (sets of) positive and negative integers referring the arguments of function symbols. Contextsensitive rewriting and lazy rewriting provide (different) operational models for positive annotations. In this paper we prove that, under certain conditions, the three operational models coincide. In this case, it makes sense using contextsensitive rewriting as it is the simplest one. This fact also permits proving termination of lazy rewriting by proving termination of contextsensitive rewriting for a transformed rewrite system.