编码"约翰想咬萨拉"在一阶逻辑中

时间:2015-11-08 23:18:31

标签: logic first-order-logic

我试图弄清楚你将如何编码" [代理人A]想要[动词]到[代理人B]"作为一阶逻辑(例如" John想要咬Sara")。

编码" John咬Sara"如FOL那样:bites(John, Sara)或者如果你喜欢John(x) ^ Sara(y) ^ bites(x,y)

另外,我注意到的是这种关系可能是递归的。例如:

  • "约翰想要咬Sara" (约翰想要咬萨拉)

  • "约翰想要咬Sara" (约翰想要进入这个状态,以至于他想要咬Sara)。

有谁知道我怎么能处理这个问题,尤其是句子" John想要咬Sara"。

1 个答案:

答案 0 :(得分:2)

棘手!

让我们首先让句子的结构更清晰:“约翰希望他咬萨拉”。 “他”当然是指约翰,所以我们可以简化为:

  • “John希望John咬Sara”

现在我们可以尝试使用谓词来制定它,如前所述:

  • 想要(John,“John咬Sara”)

但是第二个参数将是句子,而不是表示某些对象的术语,如“John”或“Sara”。事实证明,你的句子不能仅使用FOL中的谓词来形式化,因为“想要”不是个体之间的关系(如“咬(x,y)”),而是个人(约翰)和句子之间的关系/命题(“John咬Sara”)。

“John希望A”是一个句子:它需要一些句子A并用它形成一个新句子。采用句子和创建新句子的运算符的其他示例是“AB”,“ff A,然后是B”,“不是A” ,或“有必要A”。

所以“John希望A”与FOL中的逻辑运算符“在同一级别”。如果我们想要形式化“x想要A”形式的句子,我们需要通过添加一个额外的运算符(对于每个x)来扩展逻辑。这需要一个强化语义的步骤(例如,可能的世界语义),因为“x的含义要求A”不能单独使用真值表来指定(如“{{1} “}或”AA“)。

例如,

Epistemic logicclick)是命题逻辑,由句子操作员BB_x(A)扩展,代表“K_x(A) 相信 x“和”A 知道 x“。