序言中的普遍和存在量词

时间:2015-01-29 16:38:19

标签: prolog universal existential-type quantifiers

如何在prolog中实现以下规则。

我将“没有蜘蛛是哺乳动物”这句话写成存在主义和普遍性:

¬∃x(mammals(X) ∧ spider(X) ) //It is not the case that mammals are spider

∀X(mammals(X) ⇒ ¬spider(X)) //All mammals are non-spider.

1 个答案:

答案 0 :(得分:7)

假设您有一个包含以下事实的数据库:

mammals(cat).
mammals(dog).
 ...

spider(blackwidow).
 ...

现在你可以非常简单地将你的句子重写成一个prolog查询:

¬∃x(哺乳动物(X)∧蜘蛛(X))//不是哺乳动物是蜘蛛的情况

?- \+((mammals(X), spider(X))).
true.

∀X(哺乳动物(X)⇒蜘蛛(X))//所有哺乳动物都是非蜘蛛。

?- forall(mammals(X), \+spider(X)).
true.