Hero Image
Calculemus:用计算来推理

纠正我们推理的唯一方法,是让它们像数学家的推理一样具体可感,使我们一眼就能发现错误;而当人们发生争论时,我们只需说一声:让我们来计算吧!不必多费口舌,就能看出谁是对的。 — 莱布尼茨,《发现的艺术》(1685) 莱布尼茨是律师、外交官和哲学家。他一生目睹了无数永无休止的争论:宗教之间、国家之间、哲学流派之间。而数学家不会争论 $2+2$ 是否等于 4,只会去算。如果推理也能像数字一样被计算呢? 思想的字母表 这个计划分为两部分。 第一部分是一种通用语言,莱布尼茨称之为 characteristica universalis(普遍文字)。在这种语言里,每个简单观念都有一个符号,复杂观念则是这些符号的组合,就像单词由字母组合而成。莱布尼茨 20 岁时在 1666 年的《论组合术》中就开始构思它。 第二部分是一种推理演算,即 calculus ratiocinator:一套操作符号的规则,让人像做加法一样机械地得出正确结论。在那样的世界里,争论可以用纸和笔来解决。 把概念当作质数 莱布尼茨真的尝试过一个用数字的版本。想法是:给每个简单概念分配一个质数,给每个复合概念分配其组成部分的质数之积。 例如,按照经典定义,“人是理性的动物”。如果动物 $=2$,理性 $=3$,那么人 $=2\times3=6$。 于是,“所有人都是动物”这句话就变成一个算术问题:**2 能整除 6 吗?**能,所以这句话为真。那“所有动物都是人”呢?**6 能整除 2 吗?**不能,所以为假。关于概念的推理变成了一道除法题。 这个系统有严重的问题,它处理不好否定和“有些”这类句子。莱布尼茨知道这一点,并不断尝试其他形式。但核心思想——逻辑可以是代数——已经提出来了。 用今天的记号举例 今天我们用逻辑符号书写推理。考虑关于一个图形的三个命题: $P$:这个图形是正方形; $Q$:这个图形是矩形; $R$:这个图形的两条对角线等长。 如果 $P\Rightarrow Q$(所有正方形都是矩形)且 $Q\Rightarrow R$(所有矩形的对角线都相等),那么 $P\Rightarrow R$。结论来自论证的形式,根本不需要去想正方形。这正是莱布尼茨想要的:只看符号就能检验推理。 但符号不会创造奇迹。如果前提是错的,计算再正确,结论也可能是错的。而颠倒蕴含关系是常见的错误:由“所有正方形都是矩形”推不出所有矩形都是正方形。 组合不等于解释 三个命题,每个或真或假,共有 $2^3=8$ 种组合:000、001、010、011、100、101、110、111。注意,这正是 0 到 7 的二进制写法。逻辑与 0、1 构成的数之间的联系,莱布尼茨已有所察觉,两个世纪后它将成为核心。 部分实现的梦想 莱布尼茨关于逻辑的著作几乎全部未发表,直到 19 世纪。尽管如此,这个想法又回来了: 1854 年,乔治·布尔出版《思维规律》,把逻辑变成了一种只有 0 和 1 的代数。 1879 年,戈特洛布·弗雷格创造了一套完整的逻辑符号语言,与莱布尼茨的设想非常接近。 1936 年,艾伦·图灵描述了一种抽象机器,能执行任何用规则描述的计算。 然而在 1931 年,库尔特·哥德尔证明了:没有任何规则系统能判定数学中的所有真理。莱布尼茨完整的梦想是不可能实现的。但其中可能的那一部分就存在于每台电脑里:一个按规则操作符号的机械装置。

Hero Image
一句话里的两种语言:数学语域

一篇用中文写的数学文章,同时是用两种语言写的。一种是符号的语言:$=$、$+$、$x$、$\sqrt{\ }$。另一种看上去是中文,却又不完全是:它用的是日常词语,但意思是数学家们约定好的,两者在同一句话里混在一起。 英国语言学家韩礼德(Michael Halliday)在 20 世纪 70 年代把这种语言变体称为数学语域。语域是与某种活动相联系的说话方式,比如厨房里的(“爆炒”、“勾芡”),或足球里的(“越位”、“定位球”)。数学语域还多一个麻烦:它的许多词在日常语言里早已存在,意思却不同,而意思改变的时候,读者并不会得到提醒。 改变意思的词语 英国数学教育家戴维·皮姆在《说数学》(Speaking Mathematically,1987)一书中收集了许多这样的例子。以下是其中一些: 积是乘法的结果,不是积攒下来的东西。 差是减法的结果;“7 和 3 的差是多少?”要的是 $4$,而不是“两个都是奇数”。 体积量的是空间。 根是正方形的边,就像我们在第1章中看到的,也是使多项式等于零的那个值。 正规、有理和实,并不是指平常、讲理和真实。 平均数可以是算术的、几何的、加权的;报纸上说的几乎总是其中一种。 最大的危险不在名词上,名词可以靠术语表解决。危险在那些小词上。 小词 “或”。 在日常生活里,“咖啡还是茶?”期待的是只选一样。在数学里,“$x > 0$ 或 $y > 0$”在两个都为正时也成立。数学里的“或”是相容的;不相容的那种必须说出来:“二者择一,但不能两个都是”。 “如果……那么……”。 “如果下雨,我就不去”通常会被理解成“不下雨的话我就去”。在数学里,“如果 $n$ 是 4 的倍数,那么 $n$ 是偶数”对那些不是 4 的倍数的数什么也没说:$6$ 是偶数却不是 4 的倍数,而这句话依然成立。要把两方面都说出来,数学用另一种说法,“当且仅当”,和另一个符号,即第4章中的 $\Leftrightarrow$。 “有些”。 “有些学生缺席了”在交谈中暗示并非全部缺席。在数学里,“有些素数是偶数”只是说“至少有一个”,即使全部都是,这句话也仍然成立。 “多几倍”。 “彼得的贴纸比安娜多三倍。”如果安娜有 $10$ 张,彼得有 $30$ 张(安娜的三倍),还是 $40$ 张(安娜的,再加上它的三倍)?词典和写作手册的意见并不一致。数学语域干脆换个说法来避免疑问:是……的三倍。 表示相加的“和”与表示要求的“和” 在“二和三是五”里,“和”是一次加法。在“$x > 2$ 且 $x < 5$”里,它是双重要求:两个条件同时成立,集合变得更小,而不是更大。同一个连词指挥着相反的运算,学习者得从上下文判断是哪一种。 学习语域 数学语域不能靠一纸定义表来学会。它和任何语言一样,要在使用中听到它、说它、被纠正。所以让学生把 $\forall x \in \mathbb{R},\ x^2 \geq 0$ 这样的句子大声读出来(“对所有实数 $x$,$x$ 的平方大于或等于零”)并不是浪费时间:这是从一种语言到另一种语言的过渡,它会显示出阅读在哪里出了问题。