Универсальный и экзистенциальный квантификатор в прологе

Как я могу реализовать следующие правила в прологе.

Я пишу предложение "Нет, пауки не млекопитающие" как экзистенциальное и универсальное:

¬∃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.
Другие вопросы по тегам