# A needed narrowing strategy

@article{Antoy2000ANN, title={A needed narrowing strategy}, author={Sergio Antoy and Rachid Echahed and Michael Hanus}, journal={Journal of the ACM}, year={2000}, volume={47}, pages={776-822} }

The narrowing relation over terms constitutes the basis of the most important operational semantics of languages that integrate functional and logic programming paradigms. It also plays an important role in the definition of some algorithms of unification modulo equational theories that are defined by confluent term rewriting systems. Due to the inefficiency of simple narrowing, many refined narrowing strategies have been proposed in the last decade. This paper presents a new narrowing strategy…

## Figures from this paper

## 69 Citations

Termination of Narrowing: Automated Proofs and Modularity Properties

- Computer Science
- 2013

This method generalizes the current state-of-the-art, enabling the study of termination of logic programs in terms of the termination of narrowing, something which was not possible previously.

Fast narrowing-driven partial evaluation for inductively sequential programs

- Computer ScienceICFP '05
- 2005

This work introduces a faster partial evaluation scheme by ensuring the termination of the process offline and introduces an annotation algorithm for a broader class of programs so that they behave like quasi-terminating programs w.r.t. an extension of needed narrowing.

Constructor-based conditional narrowing

- Computer SciencePPDP '01
- 2001

The efficiency and practicality of using the transformation defined in this paper for the implementation of functional logic programming languages and the differences between demand driven and lazy strategies and between narrowing strategies and narrowing calculi are analyzed.

An Evaluation Semantics for Narrowing-Based Functional Logic Languages

- Computer ScienceJ. Funct. Log. Program.
- 2001

We introduce a semantic characterization of narrowing, the computational engine of many functional logic languages. We use a functional domain for giving a denotation to the narrowing space…

Complete Strategies for Term Graph Narrowing

- Computer ScienceWADT
- 1998

This paper addresses basic narrowing and shows its completeness for innermost normalizing and confluent graph rewriting, and considers the combination of basic narrowing with two strategies for controlling sharing, obtaining minimally collapsing and maximally collapsing basic narrowing.

A rewrite-based computational model for functional logic programming

- Computer ScienceSCSS
- 2016

This work considers a recent proposal by Antoy and Hanus, of translating CB-CTRSs into an equivalent class of programs where computation can be performed by mere rewriting, and proposes two adjustments of their computational models, which are capable to compute non-ground answers.

An Abstract Machine Based System for a Lazy Narrowing Calculus

- Computer ScienceFLOPS
- 2001

This paper proposes the integration of a lazy narrowing calculus for goal solving in the context of CRWL, a rewriting logic for functional logic programming that deals with non-deterministic functions and the JUMP-machine, an abstract machine model for the efficient implementation of functional logic languages.

Adding Data to Curry

- Computer ScienceDECLARE
- 2019

A new type class "Data" is introduced which is associated with specific algebraic data types, logic variables, and strict equality and its implications on various concepts of Curry, like unification, functional patterns, and program optimization are discussed.

Specializing Narrowing for Timetable Generation: A Case Study

- Computer SciencePADL
- 2005

An algorithm is proposed, obtained as an integration of three known optimization algorithms for the linear assignment problem (LAP), enumerating solutions to the LAP in order of increasing weight, such that resolution of goals is complete again.

## References

SHOWING 1-10 OF 65 REFERENCES

A needed narrowing strategy

- Computer SciencePOPL '94
- 1994

A notion of a needed narrowing step that is sound and complete for a large class of rewrite systems, is optimal w.r.t. the cost measure that counts the number of distinct steps of a derivation, computes only independent unifiers, and is efficiently implemented by pattern matching.

Parallel Evaluation Strategies for Functional Logic Languages

- Computer ScienceICLP
- 1997

A parallel narrowing strategy is defined that is the first complete narrowing strategy which evaluates ground expressions in a fully deterministic, optimal way and computes shortest derivations and minimal sets of solutions on inductively sequential rewrite systems.

Higher-Order Narrowing with Definitional Trees

- Computer ScienceJ. Funct. Program.
- 1996

This paper extends the needed narrowing strategy to higher-order functions and λ-terms as data structures and is the first calculus for higher- order functional logic programming which provides for such an optimality result.

Needed Narrowing in Prolog (Extended Abstract)

- Computer SciencePLILP
- 1996

The implementation of needed narrowing deployed in a compiler of a functional-logic language and a new, more declarative and accessible formulation of a definitional tree is given, and a simple algorithm to build definitional trees is presented.

Narrowing Strategies for Arbitrary Canonical Rewrite Systems

- Computer ScienceFundam. Informaticae
- 1995

This paper presents the narrowing strategies for arbitrary canonical systems in a uniform framework and introduces the new narrowing strategy LSE narrowing, which is complete and improves all other strategies which are complete for arbitrary-canonical systems.

Rewrite Systems

- Computer ScienceHandbook of Theoretical Computer Science, Volume B: Formal Models and Sematics
- 1990

Lazy Narrowing: Strong Completeness and Eager Variable Elimination

- Computer ScienceTheor. Comput. Sci.
- 1996

Optimal derivations in weak lambda-calculi and in orthogonal term rewriting systems

- Computer SciencePOPL '91
- 1991

The new framework of Labeled Terms Rewriting Systems (T~RS), a general framework to express sharing in Term Rewriters Systems (TRS), is introduced and optimal derivations are characterized, showing the optimality of the tazy strategy.