Results 1  10
of
13
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
(Show Context)
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.
Concurrency and Plan Generation in a Logic Programming Language With a Sequential Operator
"... In this paper we define a logic programming language, called SMR, whose main computational mechanism is multiset rewriting. It features a guarded choice capability and, above all, a sequential andlike operator. The language is defined starting from a core language, LM, a subset of Andreoli and Pares ..."
Abstract

Cited by 11 (2 self)
 Add to MetaCart
In this paper we define a logic programming language, called SMR, whose main computational mechanism is multiset rewriting. It features a guarded choice capability and, above all, a sequential andlike operator. The language is defined starting from a core language, LM, a subset of Andreoli and Pareschi's LO, which is directly derived from linear logic. LM is minimal in a certain sense we will specify. The language SMR admits a translation into LM through a uniform "continuation" mechanism. We show how SMR could be interesting in two diverse areas, viz. concurrency and plan generation. Keywords Logic programming, linear logic, concurrency, planning. 1 Introduction Linear logic [13, 10] is widely recognized as a logic of concurrency, meaning that the proof theory underlying it faithfully represents some aspects of concurrent computations. Recently it has been pointed out that the same logic is suited for carefully modeling concepts of action and change in planning problems [19, 16]. In...
Logic Programming in Tau Categories
 in Computer Science Logic '94 , LNCS 933
, 1995
"... Many features of current logic programming languages are not captured by conventional semantics. Their fundamentally nonground character, and the uniform way in which such languages have been extended to typed domains, subject to constraints, suggest that a categorical treatment of constraint domai ..."
Abstract

Cited by 8 (4 self)
 Add to MetaCart
(Show Context)
Many features of current logic programming languages are not captured by conventional semantics. Their fundamentally nonground character, and the uniform way in which such languages have been extended to typed domains, subject to constraints, suggest that a categorical treatment of constraint domains, of programming syntax and of semantics may be closer in spirit to what declarative programming is really about, than conventional settheoretic semantics. We generalize the notion of a (manysorted) logic program and of a resolution proof, by defining them both over a (not necessarily free) category C , a category with products enriched with a mechanism for canonically manipulating nary relations [8]. Computing over this domain includes computing over the Herbrand Universe, and over equationally presented constraint domains as special cases. We give a categorical treatment of the fixpoint semantics of Kowalski and van Emden, which establishes completeness in a very general setting. 1 In...
A New Framework for Declarative Programming
, 2001
"... We propose a new indexedcategory syntax and semantics of Weak Hereditarily Harrop logic programming with constraints, based on resolution over taucategories:finite product categories with canonical structure. ..."
Abstract

Cited by 7 (3 self)
 Add to MetaCart
(Show Context)
We propose a new indexedcategory syntax and semantics of Weak Hereditarily Harrop logic programming with constraints, based on resolution over taucategories:finite product categories with canonical structure.
A Fibrational Semantics for Logic Programs
 Proceedings of the Fifth International Workshop on Extensions of Logic Programming, volume 1050 of LNAI
, 1996
"... . We introduce a new semantics for logic programming languages. It generalises the traditional Herbrand universe semantics, and specialises the semantics of logical relations, as used in analysing parametricity in functional and imperative programming languages. We outline a typed logic programming ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
. We introduce a new semantics for logic programming languages. It generalises the traditional Herbrand universe semantics, and specialises the semantics of logical relations, as used in analysing parametricity in functional and imperative programming languages. We outline a typed logic programming language, give it this semantics, and show how it supports structured development of logic programs as advocated by Sterling et al. In particular, it gives semantics for some dynamic aspects of logic programs. 1 Introduction In 1989, Power and Sterling wrote "A notion of map between logic programs" [10], in which they began a stepwise structured development of logic programs (see [7],[12] for further developments). Although their work was generally expressed syntactically, there was a new semantics for logic programs implicit in their setting: each logic program was assigned a monoid, a semilattice (modulo some isomorphisms), and an action of the monoid on the semilattice. Then a map of l...
Tile Transition Systems as Structured Coalgebras
 FUNDAMENTALS OF COMPUTATION THEORY, VOLUME 1684 OF LNCS
, 1999
"... The aim of this paper is to investigate the relation between two models of concurrent systems: tile rewrite systems and coalgebras. Tiles are rewrite rules with side effects which are endowed with operations of parallel and sequential composition and synchronization. Their models can be described as ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
(Show Context)
The aim of this paper is to investigate the relation between two models of concurrent systems: tile rewrite systems and coalgebras. Tiles are rewrite rules with side effects which are endowed with operations of parallel and sequential composition and synchronization. Their models can be described as monoidal double categories. Coalgebras can be considered, in a suitable mathematical setting, as dual to algebras. They can be used as models of dynamical systems with hidden states in order to study concepts of observational equivalence and bisimilarity in a more general setting. In order to capture in the coalgebraic presentation the algebraic structure given by the composition operations on tiles, coalgebras have to be endowed with an algebraic structure as well. This leads to the concept of structured coalgebras, i.e., coalgebras for an endofunctor on a category of algebras. However, structured coalgebras are more restrictive than tile models. Those models which can be presented as st...
Encapsulating data in Logic Programming via Categorical Constraints
 Meinke (Eds.), Principles ofDeclarative Programming, Lecture Notes in Computer Sciences
, 1998
"... We define a framework for writing executable declarative specifications which incorporate categorical constraints on data, Horn Clauses and datatype specification over finiteproduct categories. We construct a generic extension of a base syntactic category of constraints in which arrows correspond t ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
(Show Context)
We define a framework for writing executable declarative specifications which incorporate categorical constraints on data, Horn Clauses and datatype specification over finiteproduct categories. We construct a generic extension of a base syntactic category of constraints in which arrows correspond to resolution proofs subject to the specified data constraints. 1 Introduction Much of the research in logic programming is aimed at expanding the expressive power and efficiency of declarative languages without compromising the logical transparency commitment: programs should (almost) read like specifications. One approach is to place more expressive power and more of the control components into the logic itself, possibly by expanding the scope of the underlying mathematical formalism. This has been the goal of constraint logic programming (CLP, Set constraints, Prolog III), and extensions to higherorder and linear logic, to name a few such efforts. This paper is a step in this direction. ...
An Algebra of Graph Derivations Using Finite (co) Limit Double Theories
"... Graph transformation systems have been introduced for the formal specication of software systems. States are thereby modeled as graphs, and computations as graph derivations according to the rules of the specication. Operations on graph derivations provide means to reason about the distribution ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Graph transformation systems have been introduced for the formal specication of software systems. States are thereby modeled as graphs, and computations as graph derivations according to the rules of the specication. Operations on graph derivations provide means to reason about the distribution and composition of computations. In this paper we discuss the development of an algebra of graph derivations as a descriptive model of graph transformation systems. For that purpose we use a categorical three level approach for the construction of models of computations based on structured transition systems. Categorically the algebra of graph derivations can then be characterized as a free double category with nite horizontal colimits.
Indexed Categories and BottomUp Semantics of Logic Programs
, 2001
"... We propose a categorical framework which formalizes and extends the syntax, operational semantics and declarative model theory of a broad range of logic programming languages. A program is interpreted in an indexed category in such a way that the base category contains all the possible states wh ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We propose a categorical framework which formalizes and extends the syntax, operational semantics and declarative model theory of a broad range of logic programming languages. A program is interpreted in an indexed category in such a way that the base category contains all the possible states which can occur during the execution of the program (such as global constraints or type information), while each ber encodes the logic at each state.