谓词逻辑量化器和括号

时间:2018-08-19 16:00:47

标签: logic predicate first-order-logic

来自:https://cs.nyu.edu/faculty/davise/ai/pred-examples.html

让U成为一个包含人物和歌曲的世界。令L为具有以下原语的语言。

c(P,S) --- Person P composed song S.
l(P,S) --- Person P likes song S.
s(P,S) --- Person P sings song S.
m(S) --- Song S is in a major key.
Constants: a --- Amy; b --- Barry; d --- David; y -- Yankee Doodle. 

David喜欢Amy创作的某些歌曲(即至少一首歌曲)。 存在(S)c(a,S)^ l(d,S)。

exist(S)c(a,S)^ l(d,S)与exist(S)[c(a,S)^ l(d,S)]之间的含义是否有区别?

1 个答案:

答案 0 :(得分:1)

exists(S) c(a,S) ^ l(d,S)不明确。它可能表示exists(S) [c(a,S) ^ l(d,S)]exists(S) [c(a,S)] ^ l(d,S)。这两个公式是不同的。前者是一个封闭式公式,通常也称为句子,后者是一个带有自由变量的公式。

您可以更好地了解这两个公式之间的区别。通过将重命名规则应用于后者的闭合子公式,您将得到

exists(R) [c(a,R)] ^ l(d,S)

此公式表示 a创作了一些歌曲,而d喜欢歌曲S

在印刷品中,通常会约定某些惯例,以消除这种歧义,以避免将很多括号放入公式中。但是,不存在通用约定。

以我的经验,逻辑连接词通常比量词更强。如果采用此约定,则歧义将解决第一个选项,即 exists(S) c(a,S) ^ l(d,S)的意思是exists(S) [c(a,S) ^ l(d,S)]。但是,您必须先检查它,然后再依赖它。