@INPROCEEDINGS{AntoyEchahedHanus94POPL, author = "Antoy, S. and Echahed, R. and Hanus, M.", title = "A Needed Narrowing Strategy", year = "1994", pages = "268-279", booktitle = "Proc. 21st ACM Symposium on Principles of Programming Languages", abstract = { Narrowing is the operational principle of languages that integrate functional and logic programming. We propose a notion of a needed narrowing step that, for inductively sequential rewrite systems, extends the Huet and L\'evy notion of a needed reduction step. We define a strategy, based on this notion, that computes only needed narrowing steps. Our strategy 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. } }