Универсальный и экзистенциальный квантификатор в прологе
Как я могу реализовать следующие правила в прологе.
Я пишу предложение "Нет, пауки не млекопитающие" как экзистенциальное и универсальное:
¬∃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 ответ
Решение
Предположим, у вас есть база данных со следующими фактами:
mammals(cat).
mammals(dog).
...
spider(blackwidow).
...
Теперь вы можете переписать ваше предложение в прологическом запросе довольно просто:
¬x(млекопитающие (X) ∧ паук (X)) // Это не тот случай, когда млекопитающие являются пауками
?- \+((mammals(X), spider(X))).
true.
а также
∀X(млекопитающие (X) ⇒ ¬spider(X)) // Все млекопитающие не пауки.
?- forall(mammals(X), \+spider(X)).
true.