逻辑学吧 关注:38,124贴子:144,697
  • 0回复贴,共1

谁推荐本关于逻辑学演化(非古典逻辑)的书

只看楼主收藏回复

谁推荐本关于逻辑学演化(或非古典逻辑学或现代逻辑学)的书,最好是谈概念和语义语义较多的逻辑学书
提问原因看到了这句:是否承认排中律被认为是古典逻辑学和非古典逻辑学的分界线。
原文如下:
1. 比较谓词和 NULL(1):排中律不成立
我们假设约翰是一个人。那么,下面的语句(以下称为“命题”)是真是假?
约翰是 20 岁,或者不是 20 岁,二者必居其一。——P
大家觉得正确吗?没错,在现实世界中毫无疑问这是个真命题。我们不知道约翰是谁,但只要是人就有年龄。而且只要有年龄,那么就要么是 20 岁,要么不是 20 岁,不可能有别的情况。类似的还有“凯撒渡过了卢比孔河,或者没有渡过,二者必居其一”“有外星人,或者没有外星人,二者必居其一”等,这些都是真命题。像这样,“把命题和它的否命题通过‘或者’连接而成的命题全都是真命题”这个命题在二值逻辑中被称为排中律(Law of Excluded Middle)。顾名思义,排中律就是指不认可中间状态,对命题真伪的判定黑白分明,是古典逻辑学的重要原理。“是否承认这一原理”被认为是古典逻辑学和非古典逻辑学的分界线。由此可见,排中律非常重要。
如果排中律在 SQL 里也成立,那么下面的查询应该能选中表里的所有行。
-- 查询年龄是20 岁或者不是20 岁的学生
SELECT *
FROM Students
WHERE age = 20 OR age <> 20;
遗憾的是,在 SQL 的世界里,排中律是不成立的。假设表 Students 里的数据如下所示。

那么这条 SQL 语句无法查询到约翰,因为约翰年龄不详。关于这个原因,我们在理论篇里学习过,即对 NULL 进行比较运算的结果是 unknown。具体来说,约翰这一行是按照下面的步骤被判断的。


IP属地:吉林1楼2019-01-11 15:22回复