来自: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)]之间的含义是否有区别?>
答案 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)]
。但是,您必须先检查它,然后再依赖它。