Limiting Resolution: From Foundations to Implementation

We present a generalization of SLD-resolution, Limiting Resolution (LR) which embeds concepts from the field of inductive inference into logic programming. This paper describes the development of LR from theoretical underpinnings through to demonstrating a practical implementation. LR is designed to represent and solve problems which are not purely deductive more easily than current logic programming formalisms. It is based on the notion of identification in the limit, where successful computations produce a non-halting converging sequence of outputs as opposed to computations which produce a single output and halt. The queries of LR are of the form \(\exists \overline{x} ( \psi(\overline{x}) \land \forall \overline{y} \neg \chi(\overline{x},\overline{y}))\), with some restrictions on the occurrence of negation in ψ and χ. The programs are divided into background knowledge and a potentially infinite stream of data which drives the construction of the converging sequence of outputs. In some problems true negation can be applied to data in this stream. We describe the logical foundations of LR, where the notions of induction, deduction and identification in the limit are unified in a common framework. The programs, queries, and proof procedure of LR are precisely defined, and a completeness result is stated. Furthermore we present a Prolog-style system, RichProlog, which implements LR, and provide an extended example of RichProlog’s execution. This example shows that it is possible to solve genuine problems in polynomial time and also illustrates RichProlog’s utility, conciseness, and declarative nature.

[1]  Arun Sharma,et al.  Learning, Logic, and Topology in a Common Framework , 2002, ALT.

[2]  Luc De Raedt,et al.  Inductive Logic Programming: Theory and Methods , 1994, J. Log. Program..

[3]  J. W. LLOYD,et al.  Making Prolog more Expressive , 1984, J. Log. Program..

[4]  Pierre Deransart,et al.  Programming Languages Implementation and Logic Programming , 1989, Lecture Notes in Computer Science.

[5]  Krzysztof R. Apt,et al.  Logic Programming , 1990, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[6]  Sarit Kraus,et al.  Nonmonotonic Reasoning, Preferential Models and Cumulative Logics , 1990, Artif. Intell..

[7]  Nuel D. Belnap,et al.  Entailment : the logic of relevance and necessity , 1975 .

[8]  Kenneth Kunen,et al.  Negation in Logic Programming , 1987, J. Log. Program..

[9]  E. Mark Gold,et al.  Language Identification in the Limit , 1967, Inf. Control..

[10]  Donald Perlis,et al.  On the consistency of commonsense reasoning , 1986, Comput. Intell..

[11]  Alan Mycroft,et al.  A Polymorphic Type System for Prolog , 1984, Logic Programming Workshop.

[12]  Arun Sharma,et al.  Learning in Logic with RichProlog , 2002, ICLP.

[13]  Christian Holzbaur,et al.  Metastructures versus Attributed Variables in the Context of Extensible Unification , 1992, PLILP.

[14]  John C. Shepherdson,et al.  A Sound and Complete Semantics for a Version of Negation as Failure , 1989, Theor. Comput. Sci..

[15]  Teodor C. Przymusinski On the declarative and procedural semantics of logic programs , 1989, Journal of Automated Reasoning.

[16]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[17]  David Scott Warren,et al.  Tabled evaluation with delaying for general logic programs , 1996, JACM.

[18]  Andrei Voronkov,et al.  Logic Programming with Bounded Quantifiers , 1990, RCLP.

[19]  Krzysztof R. Apt,et al.  Logic Programming and Negation: A Survey , 1994, The Journal of Logic Programming.

[20]  Keith L. Clark,et al.  Negation as Failure , 1987, Logic and Data Bases.

[21]  Johann Eder,et al.  Logic and Databases , 1992, Advanced Topics in Artificial Intelligence.

[22]  Arun Sharma,et al.  A General Theory of Deduction, Induction, and Learning , 2001, Discovery Science.