在数学哲学中,构成主义或构造主义认为要证明一个数学对象存在就必须把它构造出来。如果假设一个对象不存在,并从该假设推导出一个矛盾,对于构成主义者来说,不足以证明该对象存在。(构造性证明)
构成主义常常和直觉主义混淆,实际上,直觉主义只是构成主义的一种。直觉主义强调数学的基础建立在数学家们个人的直觉上,这样就把数学在本质上作为一种主观活动。构成主义不这样强调,并和对数学的客观看法保持一致。
构造主义数学
构造主义者的数学使用构造性逻辑,该逻辑将真实性和证明等同起来。要构造性的证明P \lor Q,我们必须证明P或Q,或两者同时成立。要构造式的证明\exists_{x\in X} P(x),我们必须给出一个特定的a\in X和一个P(a)的证明。要构造式的证明\forall_{x\in X} P(x),我们必须给出一个算法,它对于每个a \in X输出一个P(a)的证明。
构造主义同时拒绝采用无穷对象,例如无穷集合和序列。
实分析中的例子
在经典实分析中,实数构造的方法之一是把它作为有理数的柯西列对。这个构造在构造主义数学中不成立,因为序列是无穷的。
作为替换,我们把实数表示为一个算法f,它取一个正整数n然后输出一对有理数(f_\ell(n), f_r(n))使得
:m \le n \implies f_\ell(m) \le f_\ell(n)
:m \le n \implies f_r(n) \le f_r(m)
:0 \le f_r(n) - f_\ell(n) \le {1\over n}
使得当n增大,区间[f_\ell(n), f_r(n)]变小,而前n个这种区间的交不空。我们使用f来计算它所表示的实数的任何精度的有理数近似。
在这个定义下,实数\sqrt{2}可以用一个算法表示,它对于每个0 \le i \le n计算出最大的整数a_i使得a_i^2 \le 2i^2然后输出\left(\mathrm{max}\left\{{a_i \over i}\right\}, \mathrm{min}\left\{{a_i+1 \over i}\right\}\right)。
这个定义和采用柯西列的经典定义相关,除了要求序列是构造式的:也就是说,我们有个计算第n个序列中的元素的算法,所以有一个计算任意精确的对\sqrt{2}的有理数近似的算法。
注意构造性要求使得上述定义和通常非构造主义的实数定义不相容:因为每个算法\xi必须是一个有限指令集\Sigma上的有限序列,存在一个双射函数f: \Sigma^* \rightarrow \mathbb N。所以所有算法的集合和所有自然数的集合有同样的基数。当使用一个非构造式的定义时,康托对角线论证证明实数比自然数有更高的基数。
各数学家的态度
数学家一直不太认同构造主义,甚至反对它,问题就出在它对分析学的限制太多。
希尔伯特1928年就强烈表达过这种看法。他在《数学基础》里写道:「不许数学家使用排中律,就像不许天文学家使用望远镜,不许拳击手出拳一样。」(排中律在构造性逻辑里并不成立。)
Errett Bishop 在1967年出版的《构造性分析学基础》(Foundations of Constructive Analysis)一书中,用构造性方法建立了传统分析学的大部分内容,从而化解了这种困境。
不过,Bishop的成果也并非人人买账,毕竟他的书比经典分析教科书难读得多。无论如何,多数数学家还是不愿把自己框在构造主义里,纵然可行,他们也不愿这么做。
对构成主义有贡献的数学家
- 克罗内克(Leopold Kronecker)
- L.E.J. Brouwer
- 保罗·洛伦岑
- Errett Bishop
分支
- 构造性逻辑
- 构造主义类型理论
- 构造主义分析
- 可计算性逻辑
参见
- 数学直觉主义
- 直觉主义类型理论
- 有限主义
- 博弈语义学
- 构造性证明
参考来源
外部链接
评论 (0)