# On the Completeness of Narrowing as the Operational Semantics of Functional Logic Programming

@inproceedings{Moreno1992OnTC,
title={On the Completeness of Narrowing as the Operational Semantics of Functional Logic Programming},
author={Juan Carlos Gonz{\'a}lez Moreno and Maria Teresa Hortal{\'a}-Gonz{\'a}lez and Mario Rodr{\'i}guez-Artalejo},
booktitle={CSL},
year={1992}
}
• Published in CSL 28 September 1992
• Computer Science
This paper is a continuation of [10]. It presents soundness and completeness results for a higher-order (HO) functional logic language which has a domain-based declarative semantics and uses conditional narrowing (for applicative, constructor based rewriting systems) as operational semantics. HO-unification is avoided by for bidding λ-abstractions in the language. However, narrowing must include a mechanism for binding HO logic variables to simple functional patterns built by partial…
41 Citations
A Complete Narrowing Calculus for Higher-Order Functional Logic Programming
• Computer Science
PLILP
• 1995
It is argued that existing calculi for lazy narrowing either do not apply to applicative systems or handle applicative terms very inefficiently, and a new lazy narrowing calculus for applicative term rewriting systems is proposed and proved.
Combining Lazy Narrowing with Disequality Constraints
• Computer Science
PLILP
• 1994
This work investigates an extension of a lazy functional logic language, which uses term disequations both in programs and in computed answers, and presents an executable Prolog specification of the operational semantics, which has been implemented on top of a Prolog system.
Algebraic Semantics for Higher-order Functional-Logic Programming
A semantics of higher-order functional-logic programming in the framework of typed universal algebra and the requirements of \minimal" for applicative Herbrand model, which means that any elements in the domain must have denotations of some terms, is discussed.
A Functional Logic Language Based on Higher Order Narrowing
• H. Kuchen
• Computer Science
Functional Programming
• 1995
This work presents the functional logic language Higher Order Babel which provides higher order unification for parameter passing and solving equations and replaces the expensive β-reduction by the more efficient combinator reduction.
A Rewriting Logic for Declarative Programming
• Computer Science
ESOP
• 1996
An approach to declarative programming which integrates the functional and relational paradigms by taking possibly non-deterministic lazy functions as the fundamental notion is proposed and the existence of free term models which provide an adequate intended semantics for programs is proved.
A Rewriting LogicforDeclarative Programming
An approach to declarative programming which integrates the functional and relational paradigms by taking possibly non-deterministic lazy functions as the fundamental notion is proposed and the existence of free term models which provide an adequate intended semantics for programs is proved.
Real Constraints within a Functional Logic Language
• Computer Science
This work proposes a translation of CFLP(R)-programs into a logic programming language supporting real arithmetic constraint solving, and shows the practicability of the proposal.
Real Constraints within a Functional Logic Language
This work proposes a translation of CFLP(R)-programs into a logic programming language supporting real arithmetic constraint solving, and shows the practicability of the proposal.
A Higher Order Rewriting Logic for Functional Logic Programming
• Computer Science, Philosophy
ICLP
• 1997
It is argued that a specific rewriting logic can play this role, and the adequacy of the proposal is justified by means of proof-theoretical and model- theoretical results.
Higher-Order Narrowing with Definitional Trees
• Computer Science
RTA
• 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.

## References

SHOWING 1-10 OF 31 REFERENCES
BABEL: A Functional and Logic Programming Language based on Constructor Discipline and Narrowing
• Computer Science
ALP
• 1988
The language BABEL is designed to achieve integration of functional and logic programming in a simple, flexible, and mathematically well founded way and has a lazy operational semantics which supports infinite data structures and is sound w.r.t. a declarative semantics based on Scott domains.
A Rationale for Conditional Equational Programming
• Computer Science
Theor. Comput. Sci.
• 1990
Higher-Order Logic Programming
• Computer Science
ICLP
• 1986
This paper uses a higher-order logic to describe a generalization to first-order Horn clauses, and shows that the familiar operational and least fixpoint semantics can be given to these clauses.
Integrating logic and functional programming
• Computer Science
LISP Symb. Comput.
• 1989
This work proposes a computation delaying mechanism called residuation built into the unification operation which may then account forβ-reduction, and describes an operational semantics and an implementation of a prototype language called LeFun—Logic, equations, and Functions.
Kernel-LEAF: A Logic plus Functional Language
• Computer Science
J. Comput. Syst. Sci.
• 1991
Counterexamples to Completeness Results for Basic Narrowing (Extended Abstract)
• Computer Science
ALP
• 1992
It is shown that basic narrowing is not complete with respect to normalizable solutions for equational theories defined by confluent term rewriting systems, contrary to what has been conjectured.
Denotational Versus Declarative Semantics for Functional Programming
• Computer Science
CSL
• 1991
This paper takes a restricted kind of H.O. denotational semantics and presents a natural restriction of rewriting that avoids unsoundness and proves soundness and completeness of rewriting, as well as an initiality result.
An Overview of Lambda-PROLOG
• Computer Science
ICLP/SLP
• 1988
The correspondence between each extension to Prolog and the new features in the stronger logical theory is discussed and various aspects of an experimental implementation of $\lambda$Prolog are discussed.