4,184 research outputs found
Computing only minimal answers in disjunctive deductive databases
A method is presented for computing minimal answers in disjunctive deductive
databases under the disjunctive stable model semantics. Such answers are
constructed by repeatedly extending partial answers. Our method is complete (in
that every minimal answer can be computed) and does not admit redundancy (in
the sense that every partial answer generated can be extended to a minimal
answer), whence no non-minimal answer is generated. For stratified databases,
the method does not (necessarily) require the computation of models of the
database in their entirety. Compilation is proposed as a tool by which problems
relating to computational efficiency and the non-existence of disjunctive
stable models can be overcome. The extension of our method to other semantics
is also considered.Comment: 48 page
A Parallel semantics for normal logic programs plus time
It is proposed that Normal Logic Programs with an explicit time ordering are a suitable basis for a general purpose parallel programming language. Examples show that such a language can accept real-time external inputs and outputs, and mimic assignment, all without departing from its pure logical semantics. This paper describes a fully incremental bottom-up interpreter that supports a wide range of parallel execution strategies and can extract significant potential parallelism from programs with complex dependencies
Towards a Systematic Account of Different Semantics for Logic Programs
In [Hitzler and Wendt 2002, 2005], a new methodology has been proposed which
allows to derive uniform characterizations of different declarative semantics
for logic programs with negation. One result from this work is that the
well-founded semantics can formally be understood as a stratified version of
the Fitting (or Kripke-Kleene) semantics. The constructions leading to this
result, however, show a certain asymmetry which is not readily understood. We
will study this situation here with the result that we will obtain a coherent
picture of relations between different semantics for normal logic programs.Comment: 20 page
Transformational Verification of Linear Temporal Logic
We present a new method for verifying Linear Temporal
Logic (LTL) properties of finite state reactive systems based on logic programming and program transformation. We encode a finite state system and an LTL property which we want to verify as a logic program on infinite lists. Then we apply a verification method consisting of two steps. In the first step we transform the logic program that encodes the given system and the given property into a new program belonging to the class of the so-called linear monadic !-programs (which are stratified, linear recursive programs defining nullary predicates or unary predicates on infinite lists). This transformation is performed by applying rules that preserve correctness. In the second step we verify the property of interest by using suitable proof rules for linear monadic !-programs. These proof rules can be encoded as a logic program which always terminates, if evaluated by using tabled resolution. Although our method uses standard
program transformation techniques, the computational complexity of the derived verification algorithm is essentially the same as the one of the Lichtenstein-Pnueli algorithm [9], which uses sophisticated ad-hoc techniques
Negation by default and unstratifiable logic programs
AbstractThe default approach to the theory of logic programs (and deductive databases) is based on the interpretation of negation by default rules. Default logic is a well-suited formalism to express the Closed World Assumption and to define the declarative semantics of stratifiable logic programs. The case of disjunctive consequences in rules is treated. General logic programs may not have a meaning with respect to default semantics. The contribution of the paper is to exhibit an interesting class of programs having a default semantics, called effectively stratifiable programs. This time, disjunctive consequences are not considered. Effective stratification is a weaker constraint than stratification, local stratification and weak stratification. Besides enlarging the class of stratifiable logic programs, the paper contributes to provide a constructive definition of well-founded models of logic programs. The class of effectively stratifiable logic programs matches the class of programs having a total well-founded model and in general, the default semantics extends the well-founded semantics
Datalog as a parallel general purpose programming language
The increasing available parallelism of computers demands new programming languages that make parallel programming dramatically easier and less error prone. It is proposed that datalog with negation and timestamps is a suitable basis for a general purpose programming language for sequential, parallel and distributed computers.
This paper develops a fully incremental bottom-up interpreter for datalog that supports a wide range of execution strategies, with trade-offs affecting efficiency, parallelism and control of resource usage. Examples show how the language can accept real-time external inputs and outputs, and mimic assignment, all without departing from its pure logical semantics
A semantics and implementation of a causal logic programming language
The increasingly widespread availability of multicore and manycore computers demands new programming languages that make parallel programming dramatically easier and less error prone. This paper describes a semantics for a new class of declarative programming languages that support massive amounts of implicit parallelism
- ā¦