Results 1  10
of
19
Optimal NonDeterministic Functional Logic Computations
 In Proc. International Conference on Algebraic and Logic Programming (ALP’97
, 1298
"... Abstract. We show that nondeterminism simplifies coding certain problems into programs. We define a nonconfluent, but wellbehaved class of rewrite systems for supporting nondeterministic computations in functional logic programming. We show the benefits of using this class on a few examples. We ..."
Abstract

Cited by 63 (34 self)
 Add to MetaCart
Abstract. We show that nondeterminism simplifies coding certain problems into programs. We define a nonconfluent, but wellbehaved class of rewrite systems for supporting nondeterministic computations in functional logic programming. We show the benefits of using this class on a few examples. We define a narrowing strategy for this class of systems and prove that our strategy is sound, complete, and optimal, modulo nondeterministic choices, for appropriate definitions of these concepts. We compare our strategy with related work and show that our overall approach is fully compatible with the current proposal of a universal, broadbased functional logic language. 1
Towards Maude 2.0
, 2000
"... Maude 2.0 is the new version of the Maude rewriting logic language currently under development. Maude 2.0's three main goals are: (i) greater generality and expressiveness; (ii) efficient support for a wider range of programming applications; and (iii) usability as a key component for developing int ..."
Abstract

Cited by 25 (9 self)
 Add to MetaCart
Maude 2.0 is the new version of the Maude rewriting logic language currently under development. Maude 2.0's three main goals are: (i) greater generality and expressiveness; (ii) efficient support for a wider range of programming applications; and (iii) usability as a key component for developing internet programming and mobile computing systems. To meet these goals, a number of new features have been added. The membership equational logic of functional modules and the rewriting logic of system modules are now supported in their greatest possible generality, and the operational semantics of objectoriented modules guarantees object and message fairness. Module operations in Full Maude are also more general thanks to parameterized theories and views. Efficient support for a wider range of programming applications is provided both by the Maude compilerwhich can reach up to 15 million rewrites per second on a 667MHz Xeonand by a library of new builtin modules. Besides new builtin functional modules, a key new feature is builtin objectoriented modules that provide flexible interaction with external objects such as file systems, window systems, and internet sockets. In particular, builtin internet sockets will provide excellent support for a new declarative style of internet programming in Maude, and will be used as a key building block to implement the Mobile Maude language.
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.
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...
A Complete Selection Function for Lazy Conditional Narrowing
 Journal of Functional and Logic Programming
, 2002
"... . This paper is concerned with the lazy conditional narrowing calculus lcnc. In an earlier paper we proved that this calculus is complete with respect to normalizable solutions for the class of conuent but not necessarily terminating conditional rewrite systems without socalled extra variables ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
. This paper is concerned with the lazy conditional narrowing calculus lcnc. In an earlier paper we proved that this calculus is complete with respect to normalizable solutions for the class of conuent but not necessarily terminating conditional rewrite systems without socalled extra variables in the conditional parts of the rewrite rules. Unfortunately, the proof does not provide any useful complete selection function, hence in implementations we need to backtrack over the choice of equations in goals in order to guarantee that all solutions are enumerated. This is in contrast to the unconditional case where completeness with respect to the leftmost selection function is known. In this paper we close the gap by proving the completeness of lcnc with respect to the leftmost selection strategy for the abovementioned class of conditional rewrite systems. 1 Introduction Narrowing (Fay [5], Hullot [16]) was originally invented as a general method for solving unication prob...
Applying Rewriting Techniques to the Verification of Erlang Processes
 IN CSL
, 1999
"... 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 propert ..."
Abstract

Cited by 3 (0 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 two refinements of this technique, viz. narrowing and rewriting dependency pairs. These refinements are not only of use in the industrial application 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.
Logicality of Conditional Rewrite Systems
, 2000
"... A conditional term rewriting system is called logical if it has the same logical strength as the underlying conditional equational system. In this paper we summarize known logicality results and we present new sufficient conditions for logicality of the important class of oriented conditional term ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
A conditional term rewriting system is called logical if it has the same logical strength as the underlying conditional equational system. In this paper we summarize known logicality results and we present new sufficient conditions for logicality of the important class of oriented conditional term rewriting systems.
Specialization of Functional Logic Programs
"... Languages that integrate functional and logic programming with a complete operational semantics are based on narrowing, a unificationbased goalsolving mechanism which subsumes the reduction principle of functional languages and the resolution principle of logic languages. In this article, we prese ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
Languages that integrate functional and logic programming with a complete operational semantics are based on narrowing, a unificationbased goalsolving mechanism which subsumes the reduction principle of functional languages and the resolution principle of logic languages. In this article, we present a partial evaluation scheme for functional logic languages based on an automatic unfolding algorithm which builds narrowing trees. The method is formalized within the theoretical framework established by Lloyd and Shepherdson for the partial deduction of logic programs, which we have generalized for dealing with functional computations. A generic specialization algorithm is proposed which does not depend on the eager or lazy nature of the narrower being used. To the best of our knowledge, this is the first generic algorithm for the specialization of functional logic programs. We study the semantic properties of the transformation and the conditions under which the technique terminates, is...
Conditional Term Graph Rewriting
 In Proceedings of the 6th International Conference on Algebraic and Logic Programming
, 1997
"... . For efficiency reasons, term rewriting is usually implemented by graph rewriting. It is known that graph rewriting is a sound and complete implementation of (almost) orthogonal term rewriting systems; see [BEG + 87]. In this paper, we extend the result to properly oriented orthogonal conditional ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
. For efficiency reasons, term rewriting is usually implemented by graph rewriting. It is known that graph rewriting is a sound and complete implementation of (almost) orthogonal term rewriting systems; see [BEG + 87]. In this paper, we extend the result to properly oriented orthogonal conditional systems with strict equality. In these systems extra variables are allowed in conditions and righthand sides of rules. 1 Introduction Attempts to combine the functional and logic programming paradigms have recently been receiving increasing attention; see [Han94b] for an overview of the field. It has been argued in [Han95] that strict equality is the only sensible notion of equality for possibly nonterminating programs. In this paper, we adopt this point of viewso every functional logic program is regarded as an orthogonal conditional term rewriting system (CTRS) with strict equality. The standard operational semantics for functional (or equational) logic programming is conditional narr...
On soundness conditions for unraveling deterministic conditional rewrite systems
, 2012
"... We study (un)soundness of transformations of conditional term rewriting systems (CTRSs) into unconditional term rewriting systems (TRSs). The focus here is on analyzing (un)soundness of socalled unravelings, the most basic and natural class of such transformations. We extend our previous analysis f ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
We study (un)soundness of transformations of conditional term rewriting systems (CTRSs) into unconditional term rewriting systems (TRSs). The focus here is on analyzing (un)soundness of socalled unravelings, the most basic and natural class of such transformations. We extend our previous analysis from normal 1CTRSs to the more general class of deterministic CTRSs (DCTRSs) where extra variables in righthand sides of rules are allowed to a certain extent. We prove that the previous soundness results based on weak leftlinearity and on rightlinearity can be extended from normal 1CTRSs to DCTRSs. Counterexamples show that such an extension to DCTRSs does not work for the previous criteria which were based on confluence and on nonerasingness, not even for rightstable systems. Yet, we prove weaker versions of soundness criteria based on confluence and on nonerasingness. Finally, we compare our approach and results with other recently established soundness criteria for unraveling DCTRSs.