是否存在允许您做出类似于人的高阶语句的正式系统?

问题描述

对于人类来说,做出高阶陈述是很自然的。例如,您可以声明以下内容(使用伪Prolog语法):


苏格拉底很聪明:

smart(socrates).

约翰是个男人:

man(john).

苏格拉底相信所有人都是凡人:

believes(socrates,(mortal(X) :- man(X))).

如果某人很聪明并且相信某事,那一定是真的:

Y :- smart(X),believes(X,Y).

我签出了Prolog的几个“高阶”扩展名,但是没有一个可以接受像最后两个示例那样的语句。

是否存在允许您做出类似人类的高阶语句的正式系统?

解决方法

这称为modal logic,并用Kripke semantics进行理论化。这是some libraries in python

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...