Существуют ли формальные системы, которые позволяют вам создавать человекоподобные операторы высшего порядка?

#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.