15 research outputs found
P is not equal to NP
SAT is not in P, is true and provable in a simply consistent extension B' of
a first order theory B of computing, with a single finite axiom characterizing
a universal Turing machine. Therefore, P is not equal to NP, is true and
provable in a simply consistent extension B" of B.Comment: In the 2nd printing the proof, in the 1st printing, of theorem 1 is
divided into three parts a new lemma 4, a new corollary 8, and the remaining
part of the original proof. The 2nd printing contains some simplifications,
more explanations, but no error has been correcte
Logic programming in the context of multiparadigm programming: the Oz experience
Oz is a multiparadigm language that supports logic programming as one of its
major paradigms. A multiparadigm language is designed to support different
programming paradigms (logic, functional, constraint, object-oriented,
sequential, concurrent, etc.) with equal ease. This article has two goals: to
give a tutorial of logic programming in Oz and to show how logic programming
fits naturally into the wider context of multiparadigm programming. Our
experience shows that there are two classes of problems, which we call
algorithmic and search problems, for which logic programming can help formulate
practical solutions. Algorithmic problems have known efficient algorithms.
Search problems do not have known efficient algorithms but can be solved with
search. The Oz support for logic programming targets these two problem classes
specifically, using the concepts needed for each. This is in contrast to the
Prolog approach, which targets both classes with one set of concepts, which
results in less than optimal support for each class. To explain the essential
difference between algorithmic and search programs, we define the Oz execution
model. This model subsumes both concurrent logic programming
(committed-choice-style) and search-based logic programming (Prolog-style).
Instead of Horn clause syntax, Oz has a simple, fully compositional,
higher-order syntax that accommodates the abilities of the language. We
conclude with lessons learned from this work, a brief history of Oz, and many
entry points into the Oz literature.Comment: 48 pages, to appear in the journal "Theory and Practice of Logic
Programming
Integrity constraints in logic databases
AbstractWe consider logic databases as logic programs and suggest how to deal with the problem of integrity constraint checking. Two methods for integrity constraint handling are presented. The first one is based on a metalevel consistency proof and is particularly suitable for an existing database which has to be checked for some integrity constraints. The second method is based on a transformation of the logic program which represents the database into a logic program which satisfies the given integrity constraints. This method is specially suggested for databases that have to be built specifying, separately, which are the deductive rules and the facts and which are the integrity constraints on a specific relation. Different tools providing for the two mechanisms are proposed for a flexible logic database management system
Algebras for weighted search
Weighted search is an essential component of many fundamental and useful algorithms. Despite this, it is relatively under explored as a computational effect, receiving not nearly as much attention as either depth- or breadth-first search. This paper explores the algebraic underpinning of weighted search, and demonstrates how to implement it as a monad transformer. The development first explores breadth-first search, which can be expressed as a polynomial over semirings. These polynomials are generalised to the free semi module monad to capture a wide range of applications, including probability monads, polynomial monads, and monads for weighted search. Finally, a monad trans-former based on the free semi module monad is introduced. Applying optimisations to this type yields an implementation of pairing heaps, which is then used to implement Dijkstra’s algorithm and efficient probabilistic sampling. The construction is formalised in Cubical Agda and implemented in Haskell
Transformation of logic programs: Foundations and techniques
AbstractWe present an overview of some techniques which have been proposed for the transformation of logic programs. We consider the so-called “rules + strategies” approach, and we address the following two issues: the correctness of some basic transformation rules w.r.t. a given semantics and the use of strategies for guiding the application of the rules and improving efficiency. We will also show through some examples the use and the power of the transformational approach, and we will briefly illustrate its relationship to other methodologies for program development
Parallel execution of horn claus programs
Imperial Users onl
The performance evaluation of interpreter based computer systems
PhD ThesisThis thesis explores the problem of making accurate
assessments of the performance of high level language
interpreter programs which are embedded in some more
complex system. The overall system performance will be
determined by all the software and hardware components
present; but in order either to analyse and improve
particular components, or to select between alternative
versions of components, the concept of the performance
of individual components is important.
A model is developed for the abstract behaviour of
software components playing the role of an interpreter
by considering their interaction with the program code
which is being interpreted and with the underlying
virtual machine which is, in turn, interpreting them.
This model enables a flexible definition of performance
by relating the interactions in which an interpreter takes
part. A methodology is recommended for assessing
experimentally the performances defined within such a
framework.
The performances of an interesting selection of
pseudo-machine and high level interpreter implementations
of Lispkit and Prolog are then assessed and conclusions
drawn.United Kingdom Science Research Counci