Results 1  10
of
27
Constructorbased Conditional Narrowing
 In Proc. of the 3rd International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming (PPDP 2001
, 2001
"... We define a transformation from a leftlinear constructorbased conditional rewrite system into an overlapping inductively sequential rewrite system. This transformation is sound and complete for the computations in the source system. Since there exists a sound and complete narrowing strategy for t ..."
Abstract

Cited by 54 (23 self)
 Add to MetaCart
We define a transformation from a leftlinear constructorbased conditional rewrite system into an overlapping inductively sequential rewrite system. This transformation is sound and complete for the computations in the source system. Since there exists a sound and complete narrowing strategy for the target system, the combination of these results offers the first procedure for provably sound and complete narrowing computations for the whole class of the leftlinear constructorbased conditional rewrite systems. We address the differences between demand driven and lazy strategies and between narrowing strategies and narrowing calculi. In this context, we analyze the efficiency and practicality of using our transformation for the implementation of functional logic programming languages. The results of this paper complement, extend, and occasionally rectify, previously published results in this area. Categories and Subject Descriptors D.1.1 [Programming Techniques]: Applicative (Functional) Programming; D.1.6 [Programming Techniques]: Logic Programming; D.3.3 [Programming Languages]: Language Constructs and FeaturesControl structures; D.3.4 [Programming Languages ]: ProcessorsOptimization; F.4.2 [Mathematical Logic and Formal Languages]: Grammars and Other Rewriting Systems; I.1.1 [Algebraic Manipulation]: Expressions and Their Representation Simplification of expressions; I.2.2 [Automatic Programming ]: Program transformation General Terms Algorithms, Languages, Performance, Theory Keywords Functional Logic Programming Languages, Rewrite Systems, Narrowing Strategies, CallByNeed This work has been supported in part by the National Science Foundation grant INT9981317. 1.
Verification of Erlang Processes by Dependency Pairs
, 2001
"... Erlang is a functional programming language developed by Ericsson Telecom, which is particularly well suited for implementing concurrent processes. In this paper we show how methods from the area of term rewriting are presently used at Ericsson. To verify properties of processes, such a property is ..."
Abstract

Cited by 14 (12 self)
 Add to MetaCart
Erlang is a functional programming language developed by Ericsson Telecom, which is particularly well suited for implementing concurrent processes. In this paper we show how methods from the area of term rewriting are presently used at Ericsson. To verify properties of processes, such a property is transformed into a termination problem of a conditional term rewriting system (CTRS). Subsequently, this termination proof can be performed automatically using dependency pairs. The paper illustrates how the dependency pair technique can be applied for termination proofs of conditional TRSs. Secondly, we present three refinements of this technique, viz. narrowing, rewriting, and instantiating dependency pairs. These refinements are not only of use in the industrial applications sketched in this paper, but they are generally applicable to arbitrary (C)TRSs. Thus, in this way dependency pairs can be used to prove termination of even more (C)TRSs automatically.
Partial inversion of constructor term rewriting systems
 In Proc. of the 16th Int’l Conf. on Term Rewriting and Applications (RTA 2005
, 2005
"... Abstract. Partialinversion compilers generate programs which compute some unknown inputs of given programs from a given output and the rest of inputs whose values are already given. In this paper, we propose a partialinversion compiler of constructor term rewriting systems. The compiler automatica ..."
Abstract

Cited by 11 (3 self)
 Add to MetaCart
Abstract. Partialinversion compilers generate programs which compute some unknown inputs of given programs from a given output and the rest of inputs whose values are already given. In this paper, we propose a partialinversion compiler of constructor term rewriting systems. The compiler automatically generates a conditional term rewriting system, and then unravels it to an unconditional system. To improve the efficiency of inverse computation, we show that innermost strategy is usable to obtain all solutions if the generated system is rightlinear. 1
Transforming Conditional Rewrite Systems with Extra Variables into Unconditional Systems
 In: Proc. LPAR '99, Tblisi
, 1999
"... . Deterministic conditional rewrite systems are interesting because they permit extra variables on the righthand sides of the rules. If such a system is quasireductive, then it is terminating and has a computable rewrite relation. It will be shown that every deterministic CTRS R can be transformed ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
. Deterministic conditional rewrite systems are interesting because they permit extra variables on the righthand sides of the rules. If such a system is quasireductive, then it is terminating and has a computable rewrite relation. It will be shown that every deterministic CTRS R can be transformed into an unconditional TRS U(R) such that termination of U(R) implies quasireductivity of R. The main theorem states that quasireductivity of R implies innermost termination of U(R). These results have interesting applications in two different areas: modularity in term rewriting and termination proofs of wellmoded logic programs. 1 Introduction Conditional term rewriting systems (CTRSs) are the basis of functional logic programming; see [Han94] for an overview of this field. In CTRSs variables on the righthand side of a rewrite rule which do not occur on the lefthand side are often forbidden. This is because it is in general not clear how to instantiate them. On the other hand, a rest...
Translating Logic Programs Into Conditional Rewriting Systems
 PROCEEDINGS OF THE 14TH INTERNATIONAL CONFERENCE ON LOGIC PROGRAMMING
, 1998
"... In this paper a translation from a subclass of logic programs consisting of the simply moded logic programs into rewriting systems is defined. In these rewriting systems conditions and explicit substitutions may be present. We argue that our translation is more natural than previously studied ones a ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
In this paper a translation from a subclass of logic programs consisting of the simply moded logic programs into rewriting systems is defined. In these rewriting systems conditions and explicit substitutions may be present. We argue that our translation is more natural than previously studied ones and establish a result showing its correctness.
On Deterministic Conditional Rewriting
 MIT LABORATORY FOR COMPUTER SCIENCE
, 1997
"... The class of Deterministic Conditional Term Rewriting Systems (DCTRSs) is of utmost importance for the tight relationships exhibited with functional programming, logic programming and inductive reasoning. However, its analysis is extremely difficult, and to date there are only very few works on the ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
The class of Deterministic Conditional Term Rewriting Systems (DCTRSs) is of utmost importance for the tight relationships exhibited with functional programming, logic programming and inductive reasoning. However, its analysis is extremely difficult, and to date there are only very few works on the subject, each analyzing a particular aspect of DCTRSs. In this paper, we perform a thorough analysis of DCTRSs, ranging from the study of termination criteria, to new verification methods for the major properties of DCTRSs like termination and confluence, to the identification of subclasses of DTCRSs that exhibit a particularly nice behaviour. Moreover, we also address the study of modularity of DCTRSs, providing a number of new powerful results. This is particularly important, since to the best of our knowledge there is so far not a single result on the modularity of DCTRSs, and of 3CTRSs in general. Finally, most of the analysis of the paper is performed relying on the recent tool of unra...
Transformations of Conditional Rewrite Systems Revisited (Extended Abstract)
"... We revisit known transformations of conditional rewrite systems to unconditional ones in a systematic way. We present a unified framework for describing and classifying such transformations, discuss the major problems arising, provide simplified (old) and new counterexamples to certain (desirable) p ..."
Abstract

Cited by 5 (4 self)
 Add to MetaCart
We revisit known transformations of conditional rewrite systems to unconditional ones in a systematic way. We present a unified framework for describing and classifying such transformations, discuss the major problems arising, provide simplified (old) and new counterexamples to certain (desirable) properties of specific transformations, and finally present a new transformation which has some advantages as compared to a quite recent approach, namely the one of [1]. 1 In this abstract, due to lack of space we focus on the latter contribution, after briefly discussing major general issues with such transformation approaches. Conditional term rewrite systems (CTRSs) and conditional equational specifications are very important in algebraic specification, prototyping, implementation and programming. They naturally occur in most practical applications. Yet, compared to unconditional term rewrite systems (TRSs), CTRSs are much more complicated, both in theory (especially concerning criteria and proof techniques for major properties of such systems like confluence and termination) and practice (implementing conditional rewriting in a clever way is far from being
VMTL  A Modular Termination Laboratory
"... The automated analysis of termination of term rewriting systems (TRSs) has drawn a lot of attention in the scientific community during the last decades and many different methods and approaches have been developed for this purpose. We present VMTL (Vienna Modular Termination Laboratory), a tool imp ..."
Abstract

Cited by 5 (2 self)
 Add to MetaCart
The automated analysis of termination of term rewriting systems (TRSs) has drawn a lot of attention in the scientific community during the last decades and many different methods and approaches have been developed for this purpose. We present VMTL (Vienna Modular Termination Laboratory), a tool implementing some of the most recent and powerful algorithms for termination analysis of TRSs, while providing an open interface that allows users to easily plug in new algorithms in a modular fashion according to the widely adopted dependency pair framework. Apart from modular extensibility, VMTL focuses on analyzing the termination behaviour of conditional term rewriting systems (CTRSs). Using one of the latest transformational techniques, the resulting restricted termination problems (for unconditional contextsensitive TRSs) are processed with dedicated algorithms.
Program inversion for tail recursive functions
 of LIPIcs
, 2011
"... Program inversion is a fundamental problem that has been addressed in many different programming settings and applications. In the context of term rewriting, several methods already exist for computing the inverse of an injective function. These methods, however, usually return nonterminating inver ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Program inversion is a fundamental problem that has been addressed in many different programming settings and applications. In the context of term rewriting, several methods already exist for computing the inverse of an injective function. These methods, however, usually return nonterminating inverted functions when the considered function is tail recursive. In this paper, we propose a direct and intuitive approach to the inversion of tail recursive functions. Our new technique is able to produce good results even without the use of an additional postprocessing of determinization or completion. Moreover, when combined with a traditional approach to program inversion, it constitutes a promising approach to define a general method for program inversion. Our experimental results confirm that the new technique compares well with previous approaches.