Abstract

The relationship between resolution theorem proving and graph search is complicated by control statements that affect the program's meaning. An interesting case arises when combining Prolog interpreters implementing the cut and iterative deepening search. Because these features are dependent, an interpreter that naively combines both features gives unintended answers to queries. In particular, negation as failure breaks down. One solution is to use sound negation, but many certain AI problems use both sound negation and negation as failure. As well, when debugging large Prolog programs, it is useful to be able to execute the same program with and without iterative deepening, even though the program contains cuts. Besides generating unintended answers, the Prolog interpreter naively combining cuts and iterative deepening also generates redundant answers. Here, we show how to avoid both.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call