我只是在学习序言,有一件事我无法理解。
假设我有以下程序
value(v).
a(X) :- not(value(X)).
所以a(v).
给了我假的,因为value(v)
可以证明是正确的。
a(w)
给了我真实的,因为没有事实value(w)
,因此,即使尝试,也无法证明它是正确的。
在我的理解中,请求a(X).
应该给我第一个无法证明的可能值value(X)
。应该有无限的可能性,只有value(v)
正确的。
但是为什么 Prolog 一直在回答false
呢?