118 research outputs found
A Complete Axiomatization of the Three valued Completion of Logic Programs
We prove the completeness of extended SLDNF-resolution for the new class of e-programs with respect to the three-valued completion of a logic program. Not only the class of allowed programs but also the class of definite programs are contained in the class of ε-programs. To understand better the three-valued completion of a logic program we introduce a formal system for three-valued logic in which one can derive exactly the three-valued consequences of the completion of a logic program. The system is proof theoretically interesting, since it is a fragment of Gentzen's sequent calculus L
Proving Correctness and Completeness of Normal Programs - a Declarative Approach
We advocate a declarative approach to proving properties of logic programs.
Total correctness can be separated into correctness, completeness and clean
termination; the latter includes non-floundering. Only clean termination
depends on the operational semantics, in particular on the selection rule. We
show how to deal with correctness and completeness in a declarative way,
treating programs only from the logical point of view. Specifications used in
this approach are interpretations (or theories). We point out that
specifications for correctness may differ from those for completeness, as
usually there are answers which are neither considered erroneous nor required
to be computed.
We present proof methods for correctness and completeness for definite
programs and generalize them to normal programs. For normal programs we use the
3-valued completion semantics; this is a standard semantics corresponding to
negation as finite failure. The proof methods employ solely the classical
2-valued logic. We use a 2-valued characterization of the 3-valued completion
semantics which may be of separate interest. The presented methods are compared
with an approach based on operational semantics. We also employ the ideas of
this work to generalize a known method of proving termination of normal
programs.Comment: To appear in Theory and Practice of Logic Programming (TPLP). 44
page
Completeness and Termination of SLDNF-Resolution and Determination of a Selection function using Mode
We consider a mode of an n-ary predicate symbol with respect to a logic program, which meets the aim of logic programming and captures the spirit of unification as arguments passing mechanism. We prove that the SLDNF-resolution which resolves a non-ground negative literal is complete for an interesting class of logic programs using this mode. To obviously do such a proof we do consider terms modulo variable renaming and map a logic program with a goal to an allowed logic program with an allowed goal, since it is well-known that the SLDNF-resolution is complete for the class of allowed logic programs with allowed goals [Kunen89]. The termination of the SLDNF-resolution is studied using a sophisticated selection function which only chooses those literals and clauses that are applicable in the sense that using such literals and clauses the SLDNF-resolution would not be infinite, if a finite SLDNF-resolution does exist
The Constructive method for query containment checking (extended version)
We present a new method that checks Query Containment for queries with negated derived atoms and/or integrity constraints.
Existing methods for Query Containment checking that deal with these cases do not check actually containment but another
related property called uniform containment, which is a sufficient but not necessary condition for containment. Our method can
be seen as an extension of the canonical databases approach beyond the class of conjunctive queries.Postprint (published version
Transforming acyclic programs
An unfold/fold transformation system is a source-to-source rewriting methodology devised to improve the efficiency of a program. Any such transformation should preserve the main properties of the initial program: among them, termination. In the field of logic programming, the class of acyclic programs plays an important role in this respect, since it is closely related to the one of terminating programs. The two classes coincide when negation is not allowed in the bodies of the clauses. We prove that the Unfold/Fold transformation system defined by Tamaki and Sato preserves the acyclicity of the initial program. From this result, it follows that when the transformation is applied to an acyclic program, then the finite failure set for definite programs is preserved; in the case of normal programs, all major declarative and operational semantics are preserved as well. These results cannot be extended to the class of left-terminating programs without modifying the definition of the transformation
SLT-Resolution for the Well-Founded Semantics
Global SLS-resolution and SLG-resolution are two representative mechanisms
for top-down evaluation of the well-founded semantics of general logic
programs. Global SLS-resolution is linear for query evaluation but suffers from
infinite loops and redundant computations. In contrast, SLG-resolution resolves
infinite loops and redundant computations by means of tabling, but it is not
linear. The principal disadvantage of a non-linear approach is that it cannot
be implemented using a simple, efficient stack-based memory structure nor can
it be easily extended to handle some strictly sequential operators such as cuts
in Prolog.
In this paper, we present a linear tabling method, called SLT-resolution, for
top-down evaluation of the well-founded semantics. SLT-resolution is a
substantial extension of SLDNF-resolution with tabling. Its main features
include: (1) It resolves infinite loops and redundant computations while
preserving the linearity. (2) It is terminating, and sound and complete w.r.t.
the well-founded semantics for programs with the bounded-term-size property
with non-floundering queries. Its time complexity is comparable with
SLG-resolution and polynomial for function-free logic programs. (3) Because of
its linearity for query evaluation, SLT-resolution bridges the gap between the
well-founded semantics and standard Prolog implementation techniques. It can be
implemented by an extension to any existing Prolog abstract machines such as
WAM or ATOAM.Comment: Slight modificatio
A Review of integrity constraint maintenance and view updating techniques
Two interrelated problems may arise when updating a database. On one
hand, when an update is applied to the database, integrity constraints
may become violated. In such case, the integrity constraint maintenance
approach tries to obtain additional updates to keep integrity
constraints satisfied. On the other hand, when updates of derived or
view facts are requested, a view updating mechanism must be applied to
translate the update request into correct updates of the underlying base
facts.
This survey reviews the research performed on integrity constraint
maintenance and view updating. It is proposed a general framework to
classify and to compare methods that tackle integrity constraint
maintenance and/or view updating. Then, we analyze some of these methods
in more detail to identify their actual contribution and the main
limitations they may present.Postprint (published version
- …