Results 1 
5 of
5
Algebra of logic programming
 International Conference on Logic Programming
, 1999
"... At present, the field of declarative programming is split into two main areas based on different formalisms; namely, functional programming, which is based on lambda calculus, and logic programming, which is based on firstorder logic. There are currently several language proposals for integrating th ..."
Abstract

Cited by 20 (3 self)
 Add to MetaCart
At present, the field of declarative programming is split into two main areas based on different formalisms; namely, functional programming, which is based on lambda calculus, and logic programming, which is based on firstorder logic. There are currently several language proposals for integrating the expressiveness of these two models of computation. In this thesis we work towards an integration of the methodology from the two research areas. To this end, we propose an algebraic approach to reasoning about logic programs, corresponding to the approach taken in functional programming. In the first half of the thesis we develop and discuss a framework which forms the basis for our algebraic analysis and transformation methods. The framework is based on an embedding of definite logic programs into lazy functional programs in Haskell, such that both the declarative and the operational semantics of the logic programs are preserved. In spite of its conciseness and apparent simplicity, the embedding proves to have many interesting properties and it gives rise to an algebraic semantics of logic programming. It also allows us to reason about logic programs in a simple calculational style, using rewriting and the algebraic laws of combinators. In the embedding, the meaning of a logic program arises compositionally from the meaning of its constituent subprograms and the combinators that connect them. In the second half of the thesis we explore applications of the embedding to the algebraic transformation of logic programs. A series of examples covers simple program derivations, where our techniques simplify some of the current techniques. Another set of examples explores applications of the more advanced program development techniques from the Algebra of Programming by Bird and de Moor [18], where we expand the techniques currently available for logic program derivation and optimisation. To my parents, Sandor and Erzsebet. And the end of all our exploring Will be to arrive where we started And know the place for the first time.
Programming with Equations, Subsets, and Relations
 Proceedings of NACLP89
, 1989
"... We discuss the declarative and computational issues in combining equational, subset, and relational assertions in a logic programming language. The novel feature in this work is the subset assertion, whose interactions with equational and relational assertions are discussed in this paper. The semant ..."
Abstract

Cited by 17 (6 self)
 Add to MetaCart
We discuss the declarative and computational issues in combining equational, subset, and relational assertions in a logic programming language. The novel feature in this work is the subset assertion, whose interactions with equational and relational assertions are discussed in this paper. The semantics of subset assertions incorporate a collect all capability, which is expressed formally by the completion of the program. When used in conjunction with equational assertions, subset assertions serve to define setvalued functions, and the resulting paradigm is called subsetequational programming. We also present the class of stratified subsetequational programs for formalizing the class of closure functions, which are useful in defining various transitiveclosure sets. The declarative and operational semantics of simple and stratified subsetequational programs are the main focus of this paper. The operational semantics of closures is based on memotables (or extension tables). When sub...
Embedding prolog in haskell
 Department of Computer Science, University of Utrecht
, 1999
"... The distinctive merit of the declarative reading of logic programs is the validity ofallthelaws of reasoning supplied by the predicate calculus with equality. Surprisingly many of these laws are still valid for the procedural reading � they can therefore be used safely for algebraic manipulation, pr ..."
Abstract

Cited by 16 (4 self)
 Add to MetaCart
The distinctive merit of the declarative reading of logic programs is the validity ofallthelaws of reasoning supplied by the predicate calculus with equality. Surprisingly many of these laws are still valid for the procedural reading � they can therefore be used safely for algebraic manipulation, program transformation and optimisation of executable logic programs. This paper lists a number of common laws, and proves their validity for the standard (depth rst search) procedural reading of Prolog. They also hold for alternative search strategies, e.g. breadth rst search. Our proofs of the laws are based on the standard algebra of functional programming, after the strategies have been given a rather simple implementation in Haskell. 1
Logic Programming, Functional Programming, and Inductive Definitions
 In Extensions of Logic Programming, volume 475 of LNCS
, 1991
"... Machine. It is incomplete due to depthfirst search, but presumably there could be a version using iterative deepening. An ORparallel machine such as DelPhi [12] could support such languages in future. Functions make explicit the granularity for ORparallelism: evaluation is deterministic while sea ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
Machine. It is incomplete due to depthfirst search, but presumably there could be a version using iterative deepening. An ORparallel machine such as DelPhi [12] could support such languages in future. Functions make explicit the granularity for ORparallelism: evaluation is deterministic while search is not.
Vesper
, 1996
"... VESPER is a denotational formalism, that is, a collection of expressions each of which denotes some entity. Its logic, when viewed at the topmost level, is given by a single simplification function. The simplification is vertically extended in the sense that in a single act of simplification an expr ..."
Abstract
 Add to MetaCart
VESPER is a denotational formalism, that is, a collection of expressions each of which denotes some entity. Its logic, when viewed at the topmost level, is given by a single simplification function. The simplification is vertically extended in the sense that in a single act of simplification an expression and (simultaneously) all or most of its subexpressions are recast into a simpler form. All VESPER computations are reductions to normal form, in which the simplification function is iterated on a given expression until it has no further effect. Expressions are by definition in normal form if they are fixed points of the simplification function. This work was partly supported by Goran Gustafssons Stiftelse and the Swedish Research Council for Engineering Sciences (TFR) under grants 93:38 and 94939, respectively. 1 Introduction VESPER 1 is a denotational formalism, that is, a collection of expressions each of which denotes some entity. Its logic, when viewed at the topmost level...