prolog中的普遍存在量词

prolog中的普遍存在量词,prolog,universal,existential-type,quantifiers,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. 假设您有一个包含以下事实的数据库: mammals(cat). mammals(dog). ... spider(blackwidow).

如何在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.

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

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

spider(blackwidow).
 ...
现在,您可以发出一个非常简单的命令,将您的句子改写为prolog查询:

,∃x(哺乳动物(x)∧ 蜘蛛(X))//哺乳动物不是蜘蛛

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

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

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

有没有办法在“x.pl”环境中实现这些规则?我的意思是将规则添加到数据库中?您可以添加一个在条件成立时成功的过程,只需将查询添加到过程体中即可。例如:
没有哺乳动物是蜘蛛:-\+((哺乳动物(X),蜘蛛(X))。
谢谢你的回答。你能指导我如何在序言中添加以下句子吗?∀X(q(X)或b(X)⇒ 哺乳动物(X))%所有哺乳动物都是“q”或“B”。我写了它,但我不知道问题出在哪里:
C(cat)。
哺乳动物(X):-forall(q(X)vb(X))最后我应该回答这个问题:“cat”是哺乳动物吗<代码>?-哺乳动物(猫)%所有的哺乳动物都是“q”或“b”,将被写入所有的哺乳动物(X)、(q(X);b(X))。
哺乳动物(b)。
哺乳动物(q)。
所有的哺乳动物(X)、(q(X);b(X))。
q(猫)。
猫(pishi
但是我得到了
false
。而不是
true