#prolog #logic #artificial-intelligence #logic-programming
#пролог #Логические #искусственный интеллект #логическое программирование
Вопрос:
Для людей очень естественно создавать инструкции высшего порядка. Например, вы могли бы указать следующее (с псевдо- Prolog
синтаксисом):
Сократ умен:
smart(socrates).
Джон — мужчина:
man(john).
Сократ считает, что все люди смертны:
believes(socrates, (mortal(X) :- man(X))).
Если кто-то умен и верит во что-то, это должно быть правдой:
Y :- smart(X), believes(X, Y).
Я проверил пару расширений «высшего порядка» для Prolog
, но ни одно из них не может принимать такие операторы, как в последних двух примерах.
Существуют ли формальные системы, которые позволяют вам создавать человекоподобные операторы высшего порядка, такие как эти?
Комментарии:
1. Указатели: Эпистемическая логика в Стэнфордской энциклопедии философии, этот подраздел логики и ИИ и книга Рассуждения о знании , которую мне действительно следует прочитать…
Ответ №1:
Это называется модальной логикой и теоретизируется с помощью семантики Крипке. Вот некоторые библиотеки на python.