Eliminating unwanted loops in Prolog
ACM SIGPLAN Notices
An augmented Prolog programming environment for tutoring applications
IEA/AIE '90 Proceedings of the 3rd international conference on Industrial and engineering applications of artificial intelligence and expert systems - Volume 2
Functional dependencies in Horn clause queries
ACM Transactions on Database Systems (TODS)
Generating the minimal model in Prolog
ACM SIGPLAN Notices
Loop checks for logic programs with functions
Theoretical Computer Science
An Abstract Approach to Some Loop Detection Problems
Fundamenta Informaticae
Hi-index | 0.00 |
In an earlier paper (Covington 1984) I proposed that looping in Prolog should be prevented by blocking all derivations in which the current goal matches a higher goal. This is too strong a constraint; it causes exhaustive searches to be incomplete. A better approach is to block all derivations in which the current goal matches a higher goal and is about to be evaluted using the same rule as was used to evaluate the higher goal. This is sufficient to block looping, and produces otherwise correct behavior, in all of the cases mentioned in the earlier paper.