Results 11  20
of
29
Strong Completeness of a Lazy Conditional Narrowing Calculus
, 1997
"... In this paper we extend the lazy narrowing calculus of Middeldorp, Okui, and Ida [13] to conditional rewrite systems. We show that our calculus is strongly complete whenever basic conditional narrowing is complete. This generalizes one of the three main results of [13] to the conditional case. As a ..."
Abstract

Cited by 8 (4 self)
 Add to MetaCart
In this paper we extend the lazy narrowing calculus of Middeldorp, Okui, and Ida [13] to conditional rewrite systems. We show that our calculus is strongly complete whenever basic conditional narrowing is complete. This generalizes one of the three main results of [13] to the conditional case. As a corollary we obtain the strong completeness for three classes of conditional rewrite systems, one of which is the class of decreasing and confluent systems. For this latter class we present a simple direct proof. 1. Introduction Narrowing (Hullot [8]) is the underlying computational mechanism of many programming languages that integrate the functional and logic programming paradigms (Hanus [5]). The desirable property of narrowing is completeness: for every solution to a given goal a more general solution can be found by narrowing. In this paper we are concerned with calculi in which narrowing is replaced by more elementary inference rules. Completeness issues for the lazy narrowing calculu...
HigherOrder Narrowing with Convergent Systems
 In 4th Int. Conf. Algebraic Methodology and Software Technology, AMAST '95. Springer LNCS 936
, 1995
"... . Higherorder narrowing is a general method for higherorder equational reasoning and serves for instance as the foundation for the integration of functional and logic programming. We present several refinements of higherorder lazy narrowing for convergent (terminating and confluent) term rewr ..."
Abstract

Cited by 7 (7 self)
 Add to MetaCart
. Higherorder narrowing is a general method for higherorder equational reasoning and serves for instance as the foundation for the integration of functional and logic programming. We present several refinements of higherorder lazy narrowing for convergent (terminating and confluent) term rewrite systems and their application to program transformation. The improvements of narrowing include a restriction of narrowing at variables, generalizing the firstorder case. Furthermore, functional evaluation via normalization is shown to be complete and a partial answer to the eager variable elimination problem is presented. 1 Introduction and Overview Higherorder narrowing is a method for solving higherorder equations modulo a set of rewrite rules. It forms the basis of functionallogic programming and has been extensively studied in the firstorder case, for a survey see [10]. Motivated by functional programming, there exist several higherorder extensions for such languages [7, ...
Development Closed Critical Pairs
, 1996
"... . The class of orthogonal rewriting systems (rewriting systems where rewrite steps cannot depend on one another) is the main class of notnecessarilyterminating rewriting systems for which confluence is known to hold. Huet and Toyama have shown that for leftlinear firstorder term rewriting sys ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
. The class of orthogonal rewriting systems (rewriting systems where rewrite steps cannot depend on one another) is the main class of notnecessarilyterminating rewriting systems for which confluence is known to hold. Huet and Toyama have shown that for leftlinear firstorder term rewriting systems (TRSs) the orthogonality restriction can be relaxed somewhat by allowing critical pairs (arising from maximally general ways of dependence between steps), but requiring them to be parallel closed. We extend these results by replacing the parallel closed condition by a development closed condition. This also permits to generalise them to higherorder term rewriting, yielding a confluence criterion for Klop's combinatory reduction systems (CRSs), Khasidashvili's expression reduction systems (ERSs), and Nipkow's higherorder pattern rewriting systems (PRSs). 1 Introduction This paper is concerned with a method to prove confluence of rewriting systems. It's an extension of some co...
Observations About Using Logic as a Specification Language
, 1995
"... This extended abstract contains some nontechnical observations about the roles that logic can play in the specification of computational systems. In particular, computationasdeduction, metaprogramming, and higherorder abstract syntax are briefly discussed. 1 Two approaches to specifications In ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
This extended abstract contains some nontechnical observations about the roles that logic can play in the specification of computational systems. In particular, computationasdeduction, metaprogramming, and higherorder abstract syntax are briefly discussed. 1 Two approaches to specifications In the specification of computational systems, logics are generally used in one of two approaches. In one approach, computations are mathematical structures, containing such items as nodes, transitions, and state, and logic is used in an external sense to make statements about those structures. That is, computations are used as models for logical expressions. Intensional operators, such as the modals of temporal and dynamic logics or the triples of Hoare logic, are often employed to express propositions about the change in state. For example, nexttime modal operators are used to describe the possible evolution of state; expressions in the HennesseyMilner are evaluated against the transitions...
Higherorder Lazy Narrowing Calculus: a Solver for HigherOrder Equations
 in Proc. 8th Int’l Conf. Computer Aided Systems (EuroCAST 2001), LNCS
, 2001
"... This paper introduces a higherorder lazy narrowing calculus (HOLN for short) that solves higherorder equations over the domain of simply typed #terms. HOLN is an extension and refinement of Prehofer's higherorder narrowing calculus LN using the techniques developed in the refinement of a fir ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
This paper introduces a higherorder lazy narrowing calculus (HOLN for short) that solves higherorder equations over the domain of simply typed #terms. HOLN is an extension and refinement of Prehofer's higherorder narrowing calculus LN using the techniques developed in the refinement of a firstorder lazy narrowing calculus LNC.
Refinements of lazy narrowing for leftlinear fully extened pattern rewrite systems
, 2001
"... Abstract. Lazy narrowing is a general Eunification procedure for equational theories presented by confluent term rewriting systems. It has been deeply studied in the first order case and various higherorder extensions have been proposed in an attempt to improve its expressive power. Such extension ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract. Lazy narrowing is a general Eunification procedure for equational theories presented by confluent term rewriting systems. It has been deeply studied in the first order case and various higherorder extensions have been proposed in an attempt to improve its expressive power. Such extensions suffer from huge search space in guessing the solutions of variables of functional type. For practical purposes, the need to reduce the search space of solutions is of paramount importance. In this paper we introduce HOLN, a higherorder lazy narrowing calculus for Eunification in theories presented by pattern rewrite systems. The calculus is designed to deal with both oriented and unoriented equations, and keeps track of the variables which are to be bound to normalized solutions. We discuss the operating principle of HOLN, its main properties, and propose refinements to reduce its search space for solutions. Our refinements are defined for classes of leftlinear fullyextended pattern rewrite systems which are widely used in higherorder functional logic programming. 1
Refinements of Lazy Narrowing for LeftLinear FullyExtended Pattern Rewrite Systems Mircea Marin
, 2001
"... Lazy narrowing is a general Eunification procedure for equational theories presented by confluent term rewriting systems. It has been deeply studied in the first order case and various higherorder extensions have been proposed in an attempt to improve its expressive power. Such extensions suffer f ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Lazy narrowing is a general Eunification procedure for equational theories presented by confluent term rewriting systems. It has been deeply studied in the first order case and various higherorder extensions have been proposed in an attempt to improve its expressive power. Such extensions suffer from huge search space in guessing the solutions of variables of functional type. For practical purposes, the need to reduce the search space of solutions is of paramount importance. In this paper we introduce HOLN, a higherorder lazy narrowing calculus for Eunification in theories presented by pattern rewrite systems. The calculus is designed to deal with both oriented and unoriented equations, and keeps track of the variables which are to be bound to normalized solutions. We discuss the operating principle of HOLN, its main properties, and propose refinements to reduce its search space for solutions. Our refinements are defined for classes of leftlinear fullyextended pattern rewrite systems which are widely used in higherorder functional logic programming.
A Distributed System for Solving Equational Constraints Based on Lazy Narrowing Calculi
, 1999
"... In this paper we describe the architecture and implementation of a system that aims at extending in a consistent way a functional logic programming language with solving techniques of various constraint solving systems. The system is called CFLP (Constrained Functional Logic Programming language), a ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
In this paper we describe the architecture and implementation of a system that aims at extending in a consistent way a functional logic programming language with solving techniques of various constraint solving systems. The system is called CFLP (Constrained Functional Logic Programming language), and consists of a lazy functional logic interpreter extended in two directions: the possibility to specify constraints, and the possibility to specify AND and ORparallelism. For solving the constraints, a distributed constraint solving system was implemented.
Some Applications of FunctionalLogic Programming
, 1996
"... We show examples for higherorder functional logic programming in which both programming concepts nicely complement each other. These include modeling distributed systems, parsing and hardware synthesis. ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We show examples for higherorder functional logic programming in which both programming concepts nicely complement each other. These include modeling distributed systems, parsing and hardware synthesis.
HigherOrder FunctionalLogic Programming: A Systematic Development
 In Proc. of the Second Fuji International Workshop on Functional and Logic Programming. World Scientific
, 1997
"... We develop an effective model for higherorder functionallogic programming by refining higherorder narrowing calculi. The refinements reduce the high degree of nondeterminism in narrowing calculi, utilizing properties of functional(logic) programs. These include convergent and leftlinear rewrit ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
We develop an effective model for higherorder functionallogic programming by refining higherorder narrowing calculi. The refinements reduce the high degree of nondeterminism in narrowing calculi, utilizing properties of functional(logic) programs. These include convergent and leftlinear rewrite rules. All refinements can be combined to a narrowing strategy which generalizes callbyneed as in functional programming. Furthermore, we consider conditional rewrite rules which are often convenient for programming applications. 1. Introduction We present a systematic development of a calculus which integrates higherorder functional and logic programming, based on narrowing. Narrowing is a general method for solving equations modulo a set of rewrite rules. Functionallogic languages with a sound and complete operational semantics are mainly based on narrowing. For a survey on the topic we refer to [9]. In our higherorder equational logic we use a rewrite relation due to Nipkow [18],...