这种限制对于很多数学家而言是万万不能接受的。实际上,没有排中律的话,甚至不能说一个实数要么是有理数,要么是无理数!(提示,设(αₙ)是一个取值在{0,1}中的递减数列,
∞ αₙ
考虑∑ ─的有理性和前面的神逻辑(★)的关系)ₙ₌₁ n!
§1. 一个有趣的观点
实际上,高中或者大学的某些数学之所以对一部分人困难,就是因为我们就放弃了构造主义!
首先,高中的数学和初中是很不一样的——并不是说初中研究了线性函数和二次函数,高中就研究三次四次函数,大学再研究五次六次函数。回头看来,两者最大的区别是,用的数学基础发生了重大变化——初中的数学,无所谓基础,所有的研究对象都是实数轴上的一次或者二次函数,所有的函数都可以在计算器上摁出来,其实在学生脑子里默默建构了构造主义的习惯。而高中开始,数学就慢慢地建立在集合论的基础上了。
集合论带来的,是非构造性。两个集合之间的映射,定义起来并不平凡:
给定集合X,Y他们之间的一个映射是一个关系,对于任意的x ∈ X,有唯一的f(x) ∈ Y,这个关系记作 f:X → Y.
换句话讲,f:X → Y对应的是Ⅹ × Y的一个满足如下条件的子集R
∀x ∈ X,∃!y ∈ Y,(存在唯一的 y ∈ Y)使得 (x,y) ∈ R.
真正理解这个定义的人,难免 痛恨 “一个映射/函数就是一个公式” 的常见误解(鄙人就曾经是痛恨者中的一员)。回过头来看,这种误解其实代表着构造主义和集合论的冲突。按照集合论的定义,实数轴上的实值函数,其实是ℝ × ℝ的一类的子集,对每个x∈ℝ “分配” 了一个值y∈ℝ——有没有让人窥见选择公理的影子?大多数这样的函数,都是 “不可计算” 的。
就是这一点点非构造主义,以奇怪的形式把很多人绊倒在构造在集合论基础上的现代数学的门槛上。门槛本身在哪里并不重要——可能在集合论,也可能在数学分析,或者实变函数论,但归根结底都是那一点点非构造主义。
类似的例子还有抽象代数。很多人在初次学习的时候本能地拒绝 “一个群是一个集合加上一个满足某些条件的二元运算” 这样的抽象定义,但是能接受矩阵群的概念,本质上也是非构造主义在作祟。用面向对象编程的语言来说,矩阵和一个抽象的集合的元素的区别在于,矩阵群自带元素的 constructor 和 methods. 但是用抽象的集合给出的群,就好像只带着 virtual methods 的 object, 会被一些人脑子里的编译器拒绝。
§2. 集合论与计算机,一个小故事
实际上,集合论以及上述的非构造主义,不光把一部分学生拦在了现代数学的门槛之外,还拦住了一个重要的角色——计算机。
这个 “拦住” 是实质性的:不是说囿于计算性能的门槛,计算机虽说可以理解集合论,但无法用于实际用途。而是由于某些原因,多数数学家接受的作为数学基础的 ZFC 集合论,实在无法让计算机接受。
实际上,在集合论的框架下,多数数学家也没办法从纯粹集合论的角度思考数学——比如实数的概念,只有在最严格的分析中才视作有理数的柯西序列的等价类,平时脑子里想象的都是实数轴上的点。数学基础和实践的这种巨大差异,才是计算机的最大绊脚石。
就算有办法把以 ZFC 集合论为基础的内容硬塞给计算机,其实还有下面这种风险:假设某一天计算机利用强大的计算能力,用纯粹的逻辑找到了黎曼猜想的证明,但人类仔细阅读计算机给出的证明的时候,发现在关键的一步,计算机说
因为0∈2,所以...
数学联邦政治世界观提示您:看后求收藏(同人小说网http://tongren.me),接着再看更方便。