Multi-SLD Resolution

Multi-SLD resolution is a variant of SLD resolution based on a simple idea.: Let the allowed constraints be closed under disjunction, and provide a mechanism for collecting solutions to a goal and turning the solutions into a disjunctive constraint. This idea leads to an operational model of logic programming, called data, or- parallelism, in which multiple constraint environments partially replace backtracking as the operational embodiment of disjunction. The model has a natural implementation on data-parallel computers since each disjunct of a disjunctive constraint can be handled by a single (virtual) processor. In this paper, we formalize the notions of multi-SLD resolution, multi-derivation, multi-SLD tree, and environment tree; prove the soundness and completeness of multi-SLD resolution; and describe and justify several useful optimization techniques based on the form of constraints in a multi-derivation: the distinction between engine and multi variables, templates, and sharing of bindings in the environment tree.

[1]  David Chan,et al.  An Extension of Constructive Negation and its Application in Coroutining , 1989, NACLP.

[2]  Donald A. Smith Constraint Operations for CLP(FT) , 1991, ICLP.

[3]  Jonas Barklund,et al.  Parallel Bounded Quantifiers - Preliminary Results , 1992, IJCSLP Workshop on Concurrent and Parallel Implementations.

[4]  Kazunori Ueda Making Exhaustive Search Programs Deterministic , 1986, ICLP.

[5]  David H. D. Warren,et al.  Or-Parallel Execution Models of Prolog , 1987, TAPSOFT, Vol.2.

[6]  Håkan Millroth Reforming Compilation of Logic Programs , 1991, ISLP.

[7]  Gabriel M. Kuper,et al.  Logic programming with sets , 1987, J. Comput. Syst. Sci..

[8]  Donald A. Smith MultiLog: Data Or-Parallel Logic Programming , 1993, ICLP.

[9]  Donald A. Smith Why Multi-SLD Beats SLD (Even on a Uniprocessor) , 1994, PLILP.

[10]  Ho-fung Leung,et al.  Concurrent Constraint Logic Programming On Massively Parallel SIMD Computers , 1993, ILPS.

[11]  Peter J. Stuckey,et al.  Constructive negation for constraint logic programming , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[12]  André Mariën Findall without findall/3 , 1993, ICLP.

[13]  Vijay A. Saraswat,et al.  Concurrent constraint programming , 1989, POPL '90.

[14]  Peter Kacsuk Execution models of Prolog for parallel computers , 1990 .

[15]  Pascal Van Hentenryck,et al.  The Constraint Logic Programming Language CHIP , 1988, FGCS.

[16]  Taisuke Sato,et al.  A Complete Top-Down Interpreter for First Order Programs , 1991, ISLP.

[17]  David Chan,et al.  Constructive Negation Based on the Completed Database , 1988, ICLP/SLP.

[18]  Michael J. Maher Complete axiomatizations of the algebras of finite, rational and infinite trees , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[19]  Donald A. Smith,et al.  Partial Evaluation of a CLP Language , 1990, NACLP.

[20]  Kenneth Kunen,et al.  Answer Sets and Negation-as-Failure , 1987, ICLP.

[21]  Evan Tick,et al.  Parallel logic programming , 1991, Logic programming.

[22]  Khayri A. M. Ali,et al.  The Muse Or-Parallel Prolog Model and its Performance , 1990, NACLP.

[23]  Pascal Van Hentenryck Constraint satisfaction in logic programming , 1989, Logic programming.

[24]  Catriel Beeri,et al.  Sets and negation in a logic data base language (LDL1) , 1987, PODS.

[25]  Joxan Jaffar,et al.  Constraint logic programming , 1987, POPL '87.

[26]  Kazunori Ueda Making Exhaustive Search Programs Deterministic, Part II , 1987, ICLP.

[27]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.