Wlodzimierz Drabent

dblp:d/WDrabent · also Wlodek Drabent · DBLP profile ↗
← Back
23ranked-venue papers
21as first author
6since 2021 · last 2025
0000-0002-4700-7272ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 14 · 14 first-author · 5 since 2021Theory of computation · 13 · 11 first-author · 3 since 2021Databases, data management, data science and information retrieval · 2 · 2 first-authorArtificial intelligence and machine learning · 1 · 1 first-author
YearPublicationVenuePosition
2025 On Systematic Construction of Correct Logic Programs
abstract
Abstract Partial correctness of imperative or functional programming divides in logic programming into two notions. Correctness means that all answers of the program are compatible with the specification. Completeness means that the program produces all the answers required by the specifications. We also consider semi-completeness – completeness for those queries for which the program does not diverge. This paper presents an approach to systematically construct provably correct and semi-complete logic programs, for a given specification. Normal programs are considered, under Kunen’s 3-valued completion semantics (of negation as finite failure) and the well-founded semantics (of negation as possibly infinite failure). The approach is declarative, it abstracts from details of operational semantics, like, for example, the form of the selected literals (“procedure calls”) during the computation. The proposed method is simple and can be used (maybe informally) in actual everyday programming.
Wlodzimierz Drabent
Theory Pract. Log. Program.1
2023 A relaxed condition for avoiding the occur-check
Wlodzimierz Drabent
Theor. Comput. Sci.1
2023 Implementing Backjumping by Means of Exception Handling
abstract
Abstract We discuss how to implement backjumping (or intelligent backtracking) in Prolog by using the built-ins throw/1 and catch/3. We show that it is impossible in a general case, contrary to a claim that “backjumping is exception handling." We provide two solutions. One works for binary programs; in a general case it imposes a restriction on where backjumping may originate. The other restricts the class of backjump targets. We also discuss implementing backjumping by using backtracking and the Prolog database. Additionally, we explain the semantics of Prolog exception handling in the presence of coroutining.
Wlodzimierz Drabent
Theory Pract. Log. Program.1
2022 On Correctness of Normal Logic Programs
Wlodzimierz Drabent
LOPSTR1
2022 On Correctness and Completeness of an n Queens Program
abstract
Abstract Thom Frühwirth presented a short, elegant, and efficient Prolog program for thenqueens problem. However, the program may be seen as rather tricky and one may not be convinced about its correctness. This paper explains the program in a declarative way and provides proofs of its correctness and completeness. The specification and the proofs are declarative, that is they abstract from any operational semantics. The specification is approximate, it is unnecessary to describe the program’s semantics exactly. Despite the program works on non-ground terms, this work employs the standard semantics, based on logical consequence and Herbrand interpretations. Another purpose of the paper is to present an example of precise declarative reasoning about the semantics of a logic program.
Wlodzimierz Drabent
Theory Pract. Log. Program.1
2021 S-Semantics-an Example
Wlodzimierz Drabent
LOPSTR1
2019 The Prolog Debugger and Declarative Programming
Wlodzimierz Drabent
LOPSTR1
2018 Logic + control: On program construction and verification
abstract
Abstract This paper presents an example of formal reasoning about the semantics of a Prolog program of practical importance (the SAT solver of Howe and King). The program is treated as a definite clause logic program with added control. The logic program is constructed by means of stepwise refinement, hand in hand with its correctness and completeness proofs. The proofs are declarative – they do not refer to any operational semantics. Each step of the logic program construction follows a systematic approach to constructing programs which are provably correct and complete. We also prove that correctness and completeness of the logic program is preserved in the final Prolog program. Additionally, we prove termination, occur-check freedom and non-floundering. Our example shows how dealing with “logic” and with “control” can be separated. Most of the proofs can be done at the “logic” level, abstracting from any operational semantics. The example employs approximate specifications; they are crucial in simplifying reasoning about logic programs. It also shows that the paradigm of semantics-preserving program transformations may be not sufficient. We suggest considering transformations which preserve correctness and completeness with respect to an approximate specification.
Wlodzimierz Drabent
Theory Pract. Log. Program.1
2017 Proving completeness of logic programs with the cut
abstract
Abstract Completeness of a logic program means that the program produces all the answers required by its specification. The cut is an important construct of programming language Prolog. It prunes part of the search space, this may result in a loss of completeness. This paper proposes a way of proving completeness of programs with the cut. The semantics of the cut is formalized by describing how SLD-trees are pruned. A sufficient condition for completeness is presented, proved sound, and illustrated by examples.
Wlodzimierz Drabent
Formal Aspects Comput.1
2016 Correctness and Completeness of Logic Programs
abstract
We discuss proving correctness and completeness of definite clause logic programs. We propose a method for proving completeness, while for proving correctness we employ a method that should be well known but is often neglected. Also, we show how to prove completeness and correctness in the presence of SLD-tree pruning, and point out that approximate specifications simplify specifications and proofs. We compare the proof methods to declarative diagnosis (algorithmic debugging), showing that approximate specifications eliminate a major drawback of the latter. We argue that our proof methods reflect natural declarative thinking about programs, and that they can be used, formally or informally, in everyday programming.
Wlodzimierz Drabent
ACM Trans. Comput. Log.1
2016 On definite program answers and least Herbrand models
abstract
Abstract A sufficient and necessary condition is given under which least Herbrand models exactly characterize the answers of definite clause programs.
Wlodzimierz Drabent
Theory Pract. Log. Program.1
2014 On Completeness of Logic Programs
Wlodzimierz Drabent
LOPSTR1
2012 A simple correctness proof for magic transformation
abstract
Abstract The paper presents a simple and concise proof of correctness of the magic transformation. We believe that it may provide a useful example of formal reasoning about logic programs. The correctness property concerns the declarative semantics. The proof, however, refers to the operational semantics (LD-resolution) of the source programs. Its conciseness is due to applying a suitable proof method.
Wlodzimierz Drabent
Theory Pract. Log. Program.1
2010 Hybrid rules with well-founded semantics
abstract
A general framework is proposed for integration of rules and external first-order theories. It is based on the well-founded semantics of normal logic programs and inspired by ideas of Constraint Logic Programming (CLP) and constructive negation for logic programs. Hybrid rules are normal clauses extended with constraints in the bodies; constraints are certain formulae in the language of the external theory. A hybrid program consists of a set of hybrid rules and an external theory. Instances of the framework are obtained by specifying the class of external theories and the class of constraints. An example instance is integration of (non-disjunctive) Datalog with ontologies formalized in description logics. The paper defines a declarative semantics of hybrid programs and a goal-driven formal operational semantics. The latter can be seen as a generalization of SLS-resolution. It provides a basis for hybrid implementations combining Prolog with constraint solvers (such as ontology reasoners). Soundness of the operational semantics is proven. Sufficient conditions for decidability of the declarative semantics and for completeness of the operational semantics are given.
Wlodzimierz Drabent, Jan Maluszynski
Knowl. Inf. Syst.1
2007 Extending XML Query Language Xcerpt by Ontology Queries
abstract
The paper addresses a problem of combining XML querying with ontology reasoning. We present an extension of a rule-based XML query and transformation language Xcerpt. The extension allows to interface an ontology reasoner from Xcerpt programs. In this way querying can employ the ontology information, for instance to filter out semantically irrelevant answers. The approach employs an existing Xcerpt engine and ontology reasoner; no modifications are required. We present the semantics of extended Xcerpt and an implementation algorithm. Communication between Xcerpt programs and ontology reasoner is based on DIG interface.
Wlodzimierz Drabent, Artur Wilk
Web Intelligence1
2005 Proving correctness and completeness of normal programs - a declarative approach
abstract
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 method of proving correctness of definite programs is not new and can be traced back to the work of clark in 1979. However a more complicated approach using operational semantics was proposed by some authors. We show that it is not stronger than the declarative one, as far as properties of program answers are concerned. For a corresponding operational approach to normal programs, we show that it is (strictly) weaker than our method. We also employ the ideas of this work to generalize a known method of proving termination of normal programs.
Wlodzimierz Drabent, Miroslawa Milkowska
Theory Pract. Log. Program.1
2002 Using parametric set constraints for locating errors in CLP programs
abstract
This paper introduces a framework of parametric descriptive directional types for Constraint Logic Programming (CLP). It proposes a method for locating type errors in CLP programs, and presents a prototype debugging tool. The main technique used is checking correctness of programs w.r.t. type specifications. The approach is based on a generalization of known methods for proving the correctness of logic programs to the case of parametric specifications. Set constraint techniques are used for formulating and checking verification conditions for (parametric) polymorphic type specifications. The specifications are expressed in a parametric extension of the formalism of term grammars. The soundness of the method is proved, and the prototype debugging tool supporting the proposed approach is illustrated on examples. The paper is a substantial extension of the previous work by the same authors concerning monomorphic directional types.
Wlodzimierz Drabent, Jan Maluszynski, Pawel Pietrzak
Theory Pract. Log. Program.1
2001 Proving Correctness and Completeness of Normal Programs - A Declarative Approach
Wlodzimierz Drabent, Miroslawa Milkowska
ICLP1
1999 It Is Declarative
Wlodzimierz Drabent
ICLP1
1995 What is Failure? An Approach to Constructive Negation
Wlodzimierz Drabent
Acta Informatica1
1988 Inductive Assertion Method for Logic Programs
Wlodzimierz Drabent, Jan Maluszynski
Theor. Comput. Sci.1
1986 Erratum: Proving Properties of Pascal Programs in MIZAR 2
Piotr Rudnicki, Wlodzimierz Drabent
Acta Informatica2
1985 Proving Properties of Pascal Programs in MIZAR 2
Piotr Rudnicki, Wlodzimierz Drabent
Acta Informatica2