有些狮子不喝咖啡:条件式与合取式的翻译

一、引例

考虑下面这些语句。其中前面两句称为前提,第三句称为结论。合在一起作为一个整体称为是一个论证(argument)。

“所有狮子都是凶猛的。”
“有些狮子不喝咖啡。”
“有些凶猛的动物不喝咖啡。”

(P(x))(Q(x))(R(x))分别为语句“x是狮子”、“x是凶猛的”和“x喝咖啡”。假定论域是所有动物的集合,用量词及(P(x))(Q(x))(R(x))表示上述论证中的语句。

上述语句则可以表示为:

(forall x(P(x) o Q(x)))

(exists x(P(x)land eg R(x)))

(exists (Q(x) land eg R(x)))

注意,第二句不能写成(exists x(P(x) o eg R(x)))。原因是当x不是狮子时(P(x) o eg R(x))总是真的,这样只要有一只动物不是狮子,(exists x(P(x) o eg R(x)))就为真,即使所有狮子都喝咖啡也是如此。类似的,第三句也不能写成(exists (Q(x) o eg R(x)))

二、规律

在进行与语句到逻辑表达式的翻译时,有时候会在选择翻译为条件式或合取式之间犹豫不决。

比如语句“对每个人x,如果x是班上的学生,那么x学过微积分”。
( S(x))表示语句“x在这个班上”,(C(x))表示语句“x学过微积分”,再假设论域为x表示所有人。
语句则表达为(forall x (S(x) o C(x))),而不能表达为(forall x (S(x)land C(x)))
后者表达的意思是所有人都是这个班上的学生并且都学过微积分,明显与题意不符。

可以发现,对于“每个、全部”之类的全称语句中,往往是条件式((forall x (A(x) o B(x)))
而“存在、某个”之类的存在语句中,往往是合取式((exists x (A(x)land B(x)))

❗当然,并不百分百是这样,但第一时间可以这样带入,再琢磨是否符合题意

三、其他示例

这个班上的某个学生去过墨西哥

M(x)表示为x去过墨西哥,S(x)表示为x为这个班上的一个学生,论域为所有人

语句应该表示为(exists x(S(x)land M(x)))

而不是(exists x(S(x) o M(x))),它表示当有一个人不在这个班里时也是真的,因为在这种情况下,对这样的x,(x(S(x) o M(x))就变成(F o T)或者(F o F),两个都是真的。( (S o M equiv eg S lor M)

四、参考

《离散数学及其应用》第七版 1.4 谓词和量词

原文地址:https://www.cnblogs.com/wangzhebufangqi/p/14102107.html