Making Prolog more Expressive

Abstract This paper introduces extended programs and extended goals for logic programming. A clause in an extended program can have an arbitrary first-order formula as its body. Similarly, an extended goal can have an arbitrary first-order formula as its body. The main results of the paper are the soundness of the negation as failure rule and SLDNF-resolution for extended programs and goals. We show how the increased expressibility of extended programs and goals can be easily implemented in any PROLOG system which has a sound implementation of the negation as failure rule. We also show how these ideas can be used to implement first-order logic as a query language in a deductive database system. An application to integrity constraints in deductive database systems is also given.

[1]  Zohar Manna,et al.  Proving termination with multiset orderings , 1979, CACM.

[2]  Rodney W. Topor,et al.  Deductive Database Tools , 1985, Aust. Comput. J..

[3]  Robert A. Kowalski,et al.  Logic for problem solving , 1982, The computer science library : Artificial intelligence series.

[4]  Keith L. Clark,et al.  Micro-Prolog - programming in logic , 1984, Prentice Hall international series in computer science.

[5]  Herbert B. Enderton,et al.  A mathematical introduction to logic , 1972 .

[6]  Zohar Manna,et al.  Proving termination with multiset orderings , 1979, CACM.

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

[8]  J. Lloyd Foundations of Logic Programming , 1984, Symbolic Computation.