第三章对话被叫做无伴奏阿基里斯奏鸣曲,有读过原书的人相信都已经注意到了每一章节开篇的对话有些特殊的行文结构。作者自己也都说了,这些对话的形式是完全的模仿巴赫的音乐体裁来写的。
当然这就有一个门槛的问题,对于了解巴洛克音乐的读者来说,基本上每一篇对话的标题一出来,都能看得出这一次的对话是仿照哪一种巴洛克时期音乐的体裁来写的。
但是对于不太了解音乐的读者来说,这可能就有点不那么容易了,因为不得不去搜索相关的音乐体裁知识来对照着阅读对话,即使如此也未必能够完全理解。因为这涉及到音乐学的内容,而即使是音乐学生也未必能把这个完全弄明白。
幸运的是笔者恰好学过一点音乐学,在音乐体裁方面稍微有所涉略,所以可以尝试帮助大家解释一下音乐体裁,以便于大家能够更好的对应原书的对话内容。那么在说到原书的对话内容之前,就有必要先解释一下关于“无伴奏奏鸣曲”的一些内容了:
奏鸣曲:源自意大利语(suonare,意即“发响”)原指演奏无键乐器而言。1750 年可以作为奏鸣曲历史发展的大致分界线,在此之前,奏鸣曲是指一件乐器(如羽管键琴或楔槌键琴,大约 1700 年之后开始也包括小提琴)或有通奏低音伴奏的一件或几件独奏乐器的作品。1750 年之后,奏鸣曲指由一架键盘乐器或独奏乐器加钢琴伴奏的多乐章作品。
这里要解释一下通奏低音,所谓通奏低音是巴洛克时期常用的一种记谱和演奏方式,也称作数字低音和持续低音。作曲家只写出旋律和低音声部,低音上方或者下方标以数字以及升、降记号,表明了旋律的音程关系,以及键盘乐曲上的和旋伴奏。整个巴洛克时期,通奏低音都十分重要,比如为当时主要的音乐体裁之一的康塔塔伴奏。大约到了 1720 年左右,通奏低音才被弃用。那么所谓通奏低音乐器就是指那些专门演奏通奏低音部分的伴奏乐器。
为独奏乐器与通奏低音而写的奏鸣曲叫独奏奏鸣曲,虽然作曲家写了独奏和低音两个声部(也就是说当时通奏低音乐器不算在演奏乐器当中)两件独奏乐器于通奏低音的奏鸣曲叫三重奏鸣曲,因为作曲家写了三个声部,虽然通常有四个人参加演奏。
无伴奏的弦乐奏鸣曲比较少见,在巴赫的独奏小提琴的一套三首奏鸣曲和三组帕蒂塔,他没有采用室内奏鸣曲的叫法。帕蒂塔也是出自意大利语,意为分隔。原指变奏,最早用于 17 世纪初,今天仍然有作曲家称组曲为帕蒂塔,而再之前就没有什么太值得一提的类似作品了。
那么在了解过无伴奏奏鸣曲的含义之后,带入这个概念来看这一篇对话的形式就不那么难懂了。内容上来说就是非常直白的,阿基里斯接到了一通来自乌龟的电话。整篇对话内容只有阿基里斯一个人在说话,对话的部分只有阿基里斯一个人的部分,而乌龟的部分没有出现。这就是所谓的无伴奏奏鸣曲了。不过虽然乌龟没有出现,乌龟的对话内容都被阿基里斯用重述和回答的方式表现出来了,所以我们实际上能够知道乌龟说了什么。
电话响了,阿基里斯拿起了话筒,对面传来了乌龟的声音。乌龟说它的了窝颈症,原因是盯着看一副版画保持同一个姿势太久导致的。乌龟看的那幅画是艾舍尔的《镶嵌画 II》,整幅画的内容是各种奇形怪状的动物,然而并不仅仅是这样。第一眼我们能够看见的是黑色部分的动物形体,而实际上背景部分并不是空白的,恰恰相反如果集中目光盯着画面的空白部分看,你会发现那些部分也和黑色的部分一样画满了各种怪异的动物。整幅画几乎没有一点空白的地方,图形和衬底全都是动物的形象,然而要把每一种动物都看出来不是那么容易的事情。
从阿基里斯和乌龟的对话中来看,乌龟似乎是在这幅画里面找寻自己的朋友——“螃蟹”,看来乌龟可能找了很久以至于脖子都僵了。艾舍尔的这副《镶嵌画 II》当中其实不全是动物,有一把吉他在其中。随后从阿基里斯和乌龟的对话中来看,乌龟的朋友“螃蟹”似乎陷进了一个不可思议的困境当中去,然后他们话题一转提到了巴赫的无伴奏小提琴奏鸣曲,形式上来说其实基本就等于是小提琴独奏了(完全无伴奏的)。
对话继续下去,乌龟似乎精神状态不是太好,从阿基里斯的对话当中可以看出来,阿基里斯尝试找几个有意思的话题给乌龟提神——比如赞颂一下巴赫的音乐有多伟大什么的。不过乌龟却提不起劲,随后乌龟告诉阿基里斯它被一个难题给困住了。这里要注意一下,乌龟这里遇到的难题,形式上类似于之前它看的那副艾舍尔的《镶嵌画 II》。随后借由阿基里斯的重复我们知道了是什么问题——:“一个词,其居中的两个部首依次是‘昔’和‘火’……” 这个问题的答案阿基里斯之前其实无意之间说出来了,不过谁都没有注意到。阿基里斯想了想之后给出的答案是“秋鹊”,然而这个答案是错的,因为顺序颠倒了。对应这个词的问题,回头联想到前面艾舍尔的《镶嵌画II》相信就能注意到这之间的联系了,没错就是图形和衬底。这个类似的猜谜问题如果是英文原版的话,可能是另一个词另一种意思,而这里的中文翻译找到了最贴切的词来出谜题。(这个词是什麽,笔者也纠结过一会,直到再读一遍对话内容的时候无意间撇到一眼,才发现答案其实在后面就已经给出来了。)
所以这个问题就是困扰螃蟹,同时也困扰乌龟的字谜问题,乌龟说螃蟹纠结这个问题的时候就像是在参悟高深的佛理,而实际上它只是在尝试解开复杂的字谜。然后阿基里斯忽然想到了另外一个字谜,他说自己是联想到的觉得很类似,这个字谜是——:“ 什么词以部首‘虫’开头,又以部首‘虫’结尾? ”
实际上这两个字谜的答案是同一个,相信有人可能已经看出来了。随后阿基里斯和乌龟都猜出了答案,而答案实际上早就已经出现在之前阿基里斯的一句话当中了。没错,两个字迷的答案是——“蜡烛”。这算是个挺有趣味的谜题,而就和之前的对话内容一样,这是一个引子,为了引出后面论述章节当中的核心概念,就是“图形和衬底”二者之间的关系。在对话当中他侯世达给出了提示,后面涉及到的不论是数学概念还是音乐概念,又或者是美术和文字的内容都要贯彻这个概念。而也只有始终以这个概念来对照后面所有所说的内容,才会明白其想要表达的意思。
在开始讨论和研究后面侯世达关于形式系统的内容之前,这里想要插入一些通过之前的对话主题联想到的内容。在“图形和衬底”当中,以艾舍尔的这副《镶嵌画 II》作为例子,整个画面当中不存在多余的空白,所有内容都被完完全全的填满了,这让笔者联想到了“奥卡姆剃刀”。
奥卡姆剃刀(英语:Occam's Razor, Ockham's Razor),又称“奥坎的剃刀”,拉丁文为lex parsimoniae,意思是“简约之法则”,是由14世纪逻辑学家、圣方济各会修士“奥卡姆的威廉”(William of Occam没错这是个人名,约1287年至1347年,奥卡姆的地点位于英格兰的萨里郡是一个地名。)提出的一个解决问题的法则,他在他自己的《箴言书注》第2卷第15题说“切勿浪费较多东西,去做‘用较少的东西,同样可以做好的事情’。”换一种说法,如果关于同一个问题有许多种理论,每一种都能作出同样准确的预言的话,那么应该挑选其中比较简洁的。
实际上奥卡姆并未发明这个所谓的“剃刀”,“奥卡姆剃刀”这个说法,第一次出现是在威廉·哈密顿从男爵写于1852年的著作中,此时距离“奥卡姆的威廉”去世的1347年已经有数个世纪。之所以归功于他,是因为奥卡姆频繁而有效地使用它。奥卡姆以很多种方式陈述过这个法则,然而其中最流行的“若无必要,勿增实体”(Non sunt multiplicanda entia sine necessitate),是由爱尔兰方济各会哲学家约翰·潘奇,在1639年对邓斯·司各脱著作的评论中总结的。
奥卡姆剃刀的原理最早可能可以追溯到亚里士多德,亚里士多德在《后分析篇》中写道:”我们可以假定,在‘其他情况均同’的情况下,前提或假定更少的表述具有优先性。“托勒密(就是发明《地心说》的那位朋友)也指出:”我们将对现象的最简单的解释称为好的规律。”
在自然科学的应用中,奥卡姆剃刀原理被作为启发法(启发法是指依据有限的知识(或“不完整的信息”)在短时间内找到问题解决方案的一种技术。它是一种依据关于系统的有限认知和假说从而得到关于此系统的结论的分析行为。由此得到的解决方案有可能会偏离最佳方案。通过与最佳方案的对比,可以确保启发法的质量。 典型的启发法有试错法和排除法。鉴于启发法基于经验,有时它也可能是基于错误的经验(如感知偏离和伪关系)。——维基百科)技巧来使用,更多地作为帮助科学家发展理论模型的工具,而不是在已经发表的理论之间充当裁判角色。(这里可能是我们对于这个原理常见的认知误区,有一部分来说。)
在科学方法中,奥卡姆剃刀并没有被当做逻辑上不可辩驳的定理或者科学结论。在科学方法中对简单性的偏好,是基于可证伪性的标准(有限的可证,无限地不可证,可以参考之前几篇笔记当中反复提及的“怪圈”和欧几里得证明题的问题)。对于某个现象的所有可接受的解释,都存在无数个可能的结果同时还有更为复杂的变体:因为你可以把任何解释中的错误归结于特例假设,从而避免和消除该错误的发生。所以,较简单的理论比复杂的理论更有效率。
以上是对于奥卡姆剃刀的大概解释,但是这里笔者联想到的是另一层意思。“简单”的概念是相对来说的,那么结合前面的镶嵌画——图形与衬底,再加上奥卡姆剃刀原则。那么可以这样总结:在一个有效运行的形式系统当中不存在“多余”的部分。
反过来来说,也就是说一个有效运行的系统,就算它看起来异常复杂,当中的每一个部分也都是不可或缺的——精密机械制造。这里可以举出一个例子,这个例子在书中的导言部分专门拿出来一段说过,那就是巴比奇的差分机(现代计算机的鼻祖)。
我们现在的电脑,也叫“计算机”。这里可以回顾一下“计算机”的历史。早期的计算设备分成这几个阶段:算盘,步骤计算器,差分机,分析机,霍勒里斯打孔机。
算盘在大约公元前 2500 年发明于美索不达米亚,以往以为算盘是中国发明的看法可能要有所改变了,因为在中国开始广泛流行算盘的时间已经是宋元拾起了,此前通行的是筹算。反而在巴比伦和罗马都出土过接近今天中国算盘形制的算板实物。今天看到的算盘应该算是各地的人应计算需要,通过文明交流而互相参考逐渐完善得到的。
步骤计算器在 1649 由德国的博学家-戈特弗里德莱布尼茨发明,对于这位和牛顿比肩的数学巨匠,这里还要提一点的就是他对于日后计算机发展的最大贡献——发明了现代二进制系统,注意是现代二进制,因为类似的二进制系统其实在过去已经有类似的了。(有趣的是启发莱布尼茨发明现代二进制的居然是伏羲六十四卦,他在1705次发表的论文《论只是用符号0和1的二进制算术,兼论其用途及它赋予伏羲所使用的古老图形的意义》。这篇论文里面还附上了伏羲六十四卦的次序图和方位图。)
差分机和分析机(1823-1991)的发明者查尔斯·巴贝奇被认为是“计算机之父”,差分机是英国科学家查尔斯·巴贝奇研发的自动化数学机器。巴贝奇设计计算机器的基本想法是利用“机器”将计算到印刷的过程全部自动化,全面去除人为疏失。而差分机一号则是利用N次多项式求值会有共通的 N 次阶差的特性,以齿轮运转,带动十进位的数值相加减、进位。 多项式是代数学中的基础概念,是由称为未知数的变量和称为系数的常数通过有限次加减法、乘法以及自然数幂次的乘方运算得到的代数表达式。多项式是整式的一种。未知数只有一个的多项式称为一元多项式;例如 x 2 − 3 x + 4 就是一个一元多项式。未知数不止一个的多项式称为多元多项式,例如:x3 + 2xyz2 − yz + 1 就是一个三元多项式。
差分机运作原理简单来说、就是一台多项式求值机,只要将欲求多项式方程的前3个初始值输入到机器里,机器每运转一轮,就能产生出一个值来。假设以 /“F(x)= x²+4”为例,差分机吐出来的结果,就会是 F(1)=5、F(2)=8、F(3)=13、F(4)=20……等,直到系统停止为止。
运作最重要的基础,在于求出多项方程式的结果完全只需要用到加法与减法。在 F(x)=x²+4 这个例子中,第一步是先算出F(1)和F(2)之间的差(8-5=3),称为第一阶差。如果这个值和F(2)及F(3)之间的差(13-8=5)不同的话,就拿这两个第一阶差再算一次差(5-3=2),称为第二阶差。在这个例子里,每一个第二阶差都是 2,所以就不用再算下去了。所以可以推论出一次方程式最多只会有第一阶差、二次方程式会有第二阶差、N 次方程则会到第N阶差。而有了这个固定不变的差数后,就可以开始往前推算回去,接下来的每一个值,就是将差数和前一阶的上一个值相加,即可获得。例如求 F(4)时,先将第二阶差 2 加上第一阶差的值 5 得到 7,再将 7 加上 F(3)的值 13,就会得到 F(4)=20,以此类推。不断重复的特性却很适合机械运算。
巴比奇在设计出了差分机之后并没有就此停步,他之后更进一步的设计出了更加精密复杂的计算设备——分析机。分析机是巴贝奇设计的一种机械式通用计算机。从 1837 年首次提出这种机器的设计,一直到他去世的1871年,由于种种原因,这种机器并没有被真正地制造出来。但它本身的设计逻辑却十分先进,是大约 100 年后电子通用计算机的先驱。
由于巴贝奇与他的首席工程师约瑟夫·克莱芒起了争执,英国政府就撤回了这项项目的资金,差分机也因此没能完成。在这期间,巴贝奇意识到建造一种更加通用的机器(即所谓的分析机)是可行的,于是便于 1833 年开始了分析机的设计。 分析机由蒸汽机驱动,大约有 30 米长、10 米宽。它的输入由程序和数据组成,并使用打孔卡输入,这种输入方法被当时的织布机广泛采用。
分析机通过一台打印机、一个弯曲的绘图仪和一个铃铛输出,也可以在纸上打孔以便日后读取。分析机采取普通的十进制定点计数法。 它的“记忆体”大约可以存储 1000 个 40 位的十进制数(每个数约 16.2kB)。有一个算术逻辑单元可以进行四则运算、比较和求平方根操作。刚开始研制的时候,分析机的外观被普遍认为和差分机相似 。1858 年的图纸呈现了一个有规律的网格布局。与现代计算机的中央处理器(CPU)类似,其算术逻辑单元使用的微程序存储在插在被称为“桶”的滚筒上的支柱中,这为用户指定更加复杂的运算提供了便利。
分析机使用的编程语言与今天的汇编语言类似,支持循环语句和条件分支,因此这门语言被认为是图灵完备的。分析机采用三种不同的打孔卡和读卡器来区分算术运算、数字常量和存储的指令,以此实现了数字在存储器和运算单元之间的加载和存储操作。巴比奇在 1837 至 1840 年间写下了 24 份程序,并在之后又写了一份。这些程序可以计算多项式、迭代公式、高斯消去法和伯努利数。
具体来讲巴贝奇差分机是以蒸汽机为动力,驱动大量的精密齿轮机构运转。 巴贝奇的分析机大体上有三大部分:其一是齿轮式的“存贮库”,巴贝奇称它为“仓库”(Store),每个齿轮可贮存 10 个数,齿轮组成的阵列总共能够储存 1000 个 50 位数。分析机的第二个部件是所谓“运算室”,它被巴贝奇命名为“作坊”(Mill),其基本原理与帕斯卡的转轮相似,用齿轮间的啮合、旋转、平移等方式进行数字运算。为了加快运算速度,他改进了进位装置,使得 50 位数加 50 位数的运算可完成于一次转轮之中。第三部分巴贝奇没有为它具体命名,其功能是以杰卡德穿孔卡中的“0”和“1”来控制运算的(二进制的运用)。
结合奥卡姆的剃刀和巴比奇的差分机还有分析机来说,虽然这个可能不算是一个具有泛用性的例子。不过可以说明,至少对于一个有效率的行之有效的运行系统来说,其中的每一个部分都是必须的,不可或缺的。不论这个运行系统有多么复杂,都应该把它看成一体的,而不是多个部分的组成(部分的合集和一个整体之间的差别非常模糊,往往会在人们看待一个系统及其部分的时候产生不知不觉的转换,很多问题也就随之而产生了)。
但是前面也说了,奥卡姆剃刀原则只是一个作为判定的参考,并不能用来作为判定整个系统合理性的依据。这里是一个很容易让人产生误解的地方,所以需要指出来。而且起判定的结构应该是有“分层”的,也就是说位于最基本的那个构筑层面来说,“简单原则”才是真正起效的地方。而放眼整个系统来看,这个原则可能就需要换一种角度来看了。
那么接下来就要回到书中的内容来了,在阿基里斯无伴奏奏鸣曲这篇对话当中确立了“图形与衬底”的重要概念之后,以此为参照来看后面论述的内容。
首先第一个概念——“素数”。大部分人基本都在中学里学过这个概念了,不过真的要深究起这个概念非常的有意思。尤其是“素数”这个概念又是连接前一篇内容和这一篇内容的重要连接部分。
那么这里正好先回顾一下前一篇的内容以及关于“素数”的一些概念。
素数,又叫质数,指在大于 1 的自然数当中,除了 1 和该数自身之外,无法被其他自然数整除的数。简单来说,所有的素数只能被自身和1整除。而在大于 1 的自然数当中如果不是质数,那么就是合数。把这个关于素数的基本定理看过之后,来看看和之前的镶嵌画有什么关系呢?很有意思,如果把所有的“自然数”比作一幅画,那么这幅画的形式就是艾舍尔的《镶嵌画 II》这样的。而素数和合数之间的关系就如同是图形和衬底之间的关系,二者严丝合缝的形成一个完整的整体。
而关于素数的证明正好涉及到上一篇内容,当中关于形式系统如何把有限的证明推广到无限地证明对象当中去。这个最典型的例子就是欧几里得定理:
“对任何有限素数的集合 p1,p2,...,pn_在这里将会证明最少存在一个集合中没有的额外素数——令P=p1...pn及q=P+1。那么 q 是素数或者不是,二者必居其一:
如果 q 是素数,那么至少有一个素数不在有限素数集 p1,p2,...,pn 中;
如果 q 不是素数,那么存在一个素数因子 p 整除 q,如果 p 在我们的有限素数集中,p 必然整除 P(既然P是素数有限集中所有素数的积);但是,已知 p 整除 P+1(P+1=q),如果p同时整除 P 和 q,p 必然整除 P 和 q 之差——(P+1)−P=1。但是没有素数能整除 1,即有 p 整除 q 就不存在 p 整除 P。因此 p 不在有限集 p1,p2,...,pn 中。
这证明了:对于任何一个有限素数集,总存在一个素数不在其中。所以素数一定是无限的。 ”——截取自维基百科
实际上我们并不是真的知道素数究竟是不是有无数个,我们能数出很多个,很多很多个,可是究竟是不是无穷个,没有一个明确的结论。不过推理帮助我们得到这个不可证的结果,不论如如何总会有一个素数大于证明内的数,因此可以确定素数就是有无限多个的。前一个篇章中,作者说这个推理功能叫做“推广”。这样一看我们会发现,一个原本是“死”的写在纸上证明似乎具有了某种活力,它“活”了过来,可以自动的推理下去(一种动态的感觉,这个概念挺难说明白的。但是这可能是让人感受到机械具有某种生命力的原因——@机械教)。当然这并不是在物理层面上的,这只是抽象思维上的。不过这个概念应该是帮助生成了后来对于计算工具的需求以及比如巴比奇的差分机的诞生等等,推理的自动推广能力被运用到算术当中去就成为了计算机能够自行运算的条件。(这里是笔者自己的猜测,当中还有很多很多的内容需要补充,这里就先不多说了。)
欧几里得对于素数是无限个的证明并不是唯一的,瑞士数学家莱昂哈德·欧拉使用了算术基本定理来进行证明。算术基本定理又被叫做正整数的唯一分解定理,即:每个大于1的自然数均可写为素数的积,而且这些素因子按大小排列之后,写法仅有一种方式。算术基本定理的内容分为两个部分,第一是分解的存在性,第二是分解的唯一性,即若不考虑排列顺序,正整数分解为素数乘积的方式是唯一的。比如数字 1200 就是素数 2 的平方加上 3 加上 5 的平方。
算术基本定理确立了素数对于数论和一般数学的重要性,通过这个基本定理让素数拥有了自然数的“基本粒子”的地位。不过这里还有一些疑问没有解决,比如说1算不算素数的问题。在早期希腊的时候,人么甚至不把 1当作数字,到了中世纪和文艺复兴时期,1 开始被数学家们接纳,比如哥德巴赫,但是当时依然存在争议,到了二十世纪初的时候,数学家们开始认为1不能算是质数,但是可以作为“单位”。
看起来我们似乎在费劲心力的面对一些简单到不可思议的问题,这里正是体现出了一种“矛盾”的特性。涉及导关于素数问题的内容能够牵扯出一大堆非常高深的数学问题,比如自然数的数论研究,素数在自然数当中的分布。1975 年的时候数学家唐·察吉尔这样评论素数:“像生长于自然数间的杂草,似乎不服从几率之外的法则,但是又表现出惊人的规律性,并由规范其行为之法则,并且以军事化的精准度遵守着这些法则。”这其中涉及到关于素数的函数运算、等差数列、哥德巴赫猜想等等。
这里引申一下:看起来似乎这些都是一些无用功的工作,对于素数的研究除了求知趣味之外好像没有其它的意义。然而到 1970 年代有了惊人的发现,似乎在我们的生活科技还有自然界之中素数扮演着至关重要的角色,比如在密码学当中素数可以作为产生公钥加密演算法的基础(在传递信息的时候编码时加入素数,编码之后传送出去,任何人收到信息如果没有密钥,则解密过程也就是寻找素数的过程当中,会因为寻找素数的过程即:分解质因数太久导致无法解读信息),国际标准书号的最后一个码是校验码,其演算法使用到的是质数 11.在汽车变速箱齿轮的设计上,相邻两个大小齿轮的齿数最好设计成素数,素数个齿数可以增加两个齿轮内两个相同的齿相遇啮合次数的最小公倍数,这可以增强齿轮的耐用度减少故障的发生。再比如在害虫的生物生长周期和杀虫剂的使用上面,素数也起着非常重要的作用。通过实验表明,素数次数地使用杀虫剂是最合理的,都是使用在害虫繁殖的高潮期,而且还冲很难产生抗药性。多数生物的生命周期也是素数的(单位是年),这样可以最大程度地减少碰见天敌的机会。甚至以素数形式无规律变化发射出来的弹药可以使敌方不容易闪躲和拦截(现代步枪里半自动点射的三连发……)
那么在了解了素数的概念之后,合数的概念也就很好理解了。这里不厌其烦得提出,要对照“图形和衬底”的关系。也就是说借由素数的性质也就能推导出合数的性质了。依照定义来说,每一个大于 1 的整数如果不是质数就是合数,而 0 和 1 不在这二者的任意之中(所以二进制只有 0 和 1 却可以用来表现其他所有的运算。)而通过算术基本定理也就很明确的知道了合数和素数的关系了。这和阴阳相合的感觉几乎是一摸一样的,虽然现在很多人把阴阳八卦这一套学说当成是无稽之谈……
先要说一下形式系统,因为从开始以来一直到现在,侯世达一直在不断的构筑形式系统来尝试说明一些问题。有的人看了可能觉得用构筑形式系统的方式来说明问题似乎有一种简单问题复杂化的感觉,比如说上一篇笔记当中花了不小力气用符号串来表现加法的那个 pq 形式系统。
首先可以总结一下,任何形式系统都是由两个部分组成的,一个形式语言(公理)加上一个推理规则或转换规则的集合以及通过两者推导出的定理,到目前为止书里一直在用这三者的关系来说明一些概念。一个形式系统可以是纯粹抽象的制定出来,只是为了研究自身,也可能是为了描述现实现象或者客观现实的领域而设计的,比如到目前为止的三个形式系统,除了第一个,后两者都在说关于数学的问题。
上一个 pq 系统是用于表现加法的,而这个tq系统就是用于表现乘法的。乘法和加法之间的关系大家很容易看得出来,本质上来说乘法就是“大剂量”的加法。那么这个tq的形式系统构建和前一个形式系统其实很相似,只需要一个公理模式和一条推理规则:
公理模式:xqxt-是一个公理,对任何一个短杠符号串x都是如此。
推理规则:设x、y、z都是短杠符号串。设xqytz是一个已有的定理。那么,xyqytz-是个新的定理。
下面是定理------q--t---的推导:
(1)--q--t- (公理)
(2)----q--t-- (用推理规则,(1)作为已有定理)
(3)------q--t--- (用推理规则,(2)作为已有定理)
如果一直推导下去,会注意到一个很有意思的地方,字符串的两头的短杠一直再增加,而中间的短杠数是不变的,这是由于推理规则导致的结果。而同样的如果找出了后面短杠数的增长和推导次数之间的关系的话,基本就可以预测出第几次推到结果里,有我们需要的多长的短杠符号串。
这个形式系统是用来作为一个“原型机”的,书中的目的是想要以此为基础,做出一个可以分辨素数和合数的形式系统。这种具有分辨能力的形式系统要比前面的形式系统复杂得多,但是可以逐步获得,那么关于素数和合数之间的关系前面已经说到过了,所以这里就能明白为什么先要做出一个可以表现乘法的形式系统。假设一个字母为合数,那么仅当它等于两个大于 1 的数的乘积。
那么这样一来就可以直接把这个概念放入上面给出的形式系统符号串当中去,也就是说假设 x 是一个合数,那么就必须有 y- 和 z-,也就是 xqytz 的字符串变成了 xqy-z- 字符串。用合数等于两个大于 1 的数的乘积作为推理规则,那么我们得到的所有字符串就都是用来表现合数的字符串了。比如合数 6 就等于 2 乘以 3、合数 4 等于 2 乘以 2……
对于分辨素数和合数这个工作,又要重新提到在之前第二篇笔记当中介绍 WJU 形式系统的时候总结过的三种方式:W 方式、J 方式和 U 方式。前两种方式在形式系统的推理当中会经常地运用到,因为这两种是遇到最多的情况,第三种之后可能需要在提及禅宗的内容当中单独来说。
简单来说 W 方式也被叫做惟方式,是指具有思维能力的人对待形式系统的方式——我们会解读形式系统当中的语言,记下重点部分、进行逆推、使用简写、把几个步骤压缩起来,跳过计算步骤、甚至更改推理规则,说白了就是跳出形式系统当中公理和推理规则的限制寻找定理。
而 J 方式就被叫做机方式,也就是计算机运行的形式,完全遵照形似系统的公理设定和推理规则运行不做任何他想。
基本上来说,在上面的 tq 系统里,我们都会以 W 方式来看待。这里有一个问题就是,因为我们会跳出形式系统去寻找背后的意义,我们很可能会产生混淆的问题,也就是把上面的 tq 形式符号系统等同于乘法。
形式系统的构筑如同前面所说,但是它绝不等于是我们想表达的概念本身。这种感觉就好比是一个实物的模型和这个实物本身之间的区别。这个模型再精致哪怕复刻了全部的细节,模型也无法等同于实物本身。形式系统之于抽象概念的研究类似于此,但是因为是抽象的,所以容易让人混淆概念。
混淆问题其实到这里还没有结束,恰恰相反到了 tq 形式系统的时候可能更近一步了。书中提醒的是,在面对这个形式系统的时候我们会产生两种方式的混淆,也就是 W 方式和 J 方式的混淆。因为 TQ 形式系统直接面对的就是算术本身。如果我们尝试分辨出背后代表的意义等等的话,我们就会把符印定理等同于算术事实(前一篇笔记里提到过的同构意义的问题在这里就显现出来了)。然后等同于算术事实的结果就是我们会老老实实的照着算术规则来运算,这就跑到了 J 方式里面去。所以问题在这里被进一步的复杂化了。对于形式系统表现越高级的抽象模式,混淆问题就会越严重,一开始只是简单的运算问题还好说,到了这里已经不是单纯的运算问题,而是要有一个判断了,这就加剧了混淆问题。
回到之前关于那个可以分辨素数和合数的形式系统上面来,跟着书里的思路,我们先创造了一个可以表现乘法的 tq 系统,然后利用合数和素数的性质,也就是说所有合数都可以用两个大于 1 的数的乘积来表现,那么在推理规则里加一个条件,tq 系统就变成了可以表现合数的形式系统,至少结果上来说表现出来的都是合数。书中把这个一长串解释简化叫做 C 型定理,那么后面都用 C 型定理来说,看起来可以不那么麻烦。
“可我们现在的目标是做一个形式系统,使定理都是 Px 的形状,其中字母 x 代表一个短杠符号串,并且只有当短杠符号串中的短杠数目是素数时才能成为定理。这样,P--- 是一个定理,而 P---- 则不是。怎么能用印符操作来做这件事?”这就是这一篇当中给出的要求,把这个可以区分素数和合数的形式系统叫做P型定理,而现在我们做到的是C型定理。
C 系统只能表现合数数目的短杠数,而我们的要求是P系统,也就是表现 C 系统中的非定理短杠数。看起来二者之间的关系已经非常接近了,可问题就在于如果限制于形式系统的表现方式,我们基本算没办法从 C 系统跨到 P 系统。这一步的差距真的可以说是咫尺天涯,可以联想到上一篇笔记里说的那个关于两分法悖论的证明问题。这是计算机和真人思维差距的最明显的表现,我们的思维已经可以理解这个概念了,而计算机受制于形式系统,无论如何也得不到那个结果。
C 系统的那些非定理和定理是不是也有一样的表现方式呢?我们感觉上应该是这样的:“无可否认的是它们都具有某种印符特性,但我们是否要称之为‘形式’却是不清楚的。理由是那些内容仅仅是以否定的方式定义的——它们是被一列以肯定的方式定义的东西所排除的那些东西。”
书中没有就这个问题继续纠结下去,而是转向去讨论了“图形和衬底”的概念在绘画艺术和音乐当中的表现。其实很明确,因为从始至终我们都围绕着这个概念在说,包括前面这个形式系统。假如我们把表现合数的 C 系统看成图形,那么我们想要得到的描述素数的 P 系统就是图形之外的衬底。
“当一个图形或者‘正空间’(例如,一个人形、一个字母、一个静物)画在画框里时,不可避免的也就画上了与它互补的形状——也称作‘衬底’、‘背景’或‘负空间’。在多数绘画中,这种图形与衬底的关系不起多少作用。艺术家对衬底远不如对图形那么感兴趣。但有时候,艺术家也会对衬底同样感兴趣。”这段话来自书中原文,可以深入地考究一下……
一般来说一幅画面必然是主体和背景的关系,即使是纯粹描绘环境的背景画也会突出主体客体之间的关系之类的,这个涉及透视、消失点之类的概念。如果说想要追寻一幅画的意义的话,那么其主体自然就是整幅画的意义之所在(描绘人物的、描绘景物的、描绘动物的、哪怕是描绘一种状态的、一种关系的……)那么主体之外的衬底部分,就是“多出来”的。
往深了说,一个形体想要表现出来自然需要周围空间的概括和对比。那个周围的空间自然是要大于形体本身的,否则我们会“看不见”那个轮廓。那么我们往往会把目光集中在最显而易见的部分,也就是那个有轮廓的形体,而轮廓之外和空间之内的这一部分东西似乎并不太重要。
大多数情况下确实是这样的,就拿一般的绘画作品来说,衬底虽然不能说是完全毫无意义的。比如人物绘画当中会加上背景,或者纯粹留白的背景也有其作用那就是让我们的注意力更加集中到主题上面来。也就是说这部分的东西无论如何都在起到一定的“作用”,而且和主体部分关系很紧密。
但这里要讨论的是一种“特殊情况”,就如同前面看过的艾舍尔的《镶嵌画 II》一样。衬底和图形看起来似乎有了等价的意义,这种情况实际上不能算很特殊,类似的形式其实很早就有了。这里可以举出一些艾舍尔之外的例子,比如说拼花地板、多边形花纹……几何图形就能拿来做镶嵌画,而在这类图画当中,图形和衬底都是几何图形,互相之间就没有了那么明显的主次之分。
这一类情况造成的结果是,乍一看肯能没有办法第一眼就看出整个画面的意义所在,然而稍微集中注意力或者退后一步,就会有一种恍然大悟的感觉。这种感觉大家或多或少会有过一些体验,以前在各种论坛还有交流平台上面经常被转发的那些个看“图形心理测试”看出的图形等于你的心理这一类的东西可不少。
这样的形式当中,“轮廓”有了不一样的意义。一般来说我们看见的轮廓都是为了清晰的表现出,所以轮廓具有着意义。而当图形和衬底等价的时候,看起来“轮廓”似乎变得模糊不清了。其明确分隔空间的功能被消弱了,于是轮廓内外的内容变得等价了。这有点像是隔水板隔开两个不同水位的水池一样,如果希望水池里的水保持在同一高度,就要把隔水板变动一下——不一定非要拿走、也可以挖个洞,或者让隔水板低于水平面,总之它会变得“模糊”。
这个轮廓放到数学当中去就是集合的定义,书中说在后面的第八章还有第十四章还会回来涉及到这部分的内容。(我们设立集合之后,在集合内外的元素……)
同样的情况既然可以出现在绘画艺术中和数学中,自然也可以带入到音乐里面来。这可能是为什么在开篇的对话当中作者特意要选择了“无伴奏”奏鸣曲的原因。这里直接就可以引用书中的原话:
“在音乐中也可以找到图形和衬底。类比之一就是旋律与伴奏之间的区别——因为在某种意义上讲,旋律总是处在我们注意力的前沿,而伴奏是第二位的。因此当我们在一部乐曲的叫低声部发现可识别的旋律时会很惊奇。这种乐曲在巴洛克以后的音乐中不太常见。和声通常不被当作是前景。但是在巴洛克音乐中——尤其是在巴赫的音乐里——各个声部,不论是高是低或在中间,都是起‘图形’作用的。”
这里需要把主调音乐和复调音乐进行对比了,巴洛克时代的结束和古典时代的开始这个分界线在十八世纪和十九世纪初,大致从巴赫到早期的贝多芬。但是这个分界线并不清楚,不论是从曲式结构上来划分还是说从作品风格来说都是如此。因为整个音乐历史的发展进程都是循序渐进的,都属逐步积累然后新概念慢慢地替换旧的概念。但是旧的概念并没有消失,反而会随着时间的推移又重新出现。
到了古典音乐时期就是以主调音乐为主的时代,注重和声系统,主旋律加上和声伴奏。所以非常明确的可以从古典音乐当中听出来,主旋律非常明显,伴奏和修饰的部分只是为主旋律服务的。而反观巴洛克时期的复调音乐则不是如此,虽然在主调音乐当中,把伴奏部分的和弦单独拿出来听的话,也是能听出一点旋律的走向,一点音乐性的东西,但是和本身的主旋律相比就已经简化太多了,以至于单独拿出来的话任何热都能直接分辨出来它“不完整”。
复调音乐则不同,赋格或者卡农或者时奏鸣曲等等,你可以把任意声部单独提取出来听,伴奏声部的旋律的完整度和主旋律几乎是一样的。这就赋予了伴奏和主旋律同等的价值何意义。就如同上面美术当中的图形和衬底的关系一样,衬底的内容可以和图形的内容完全一致,仅仅是“位置”和“方向”的不同,也就是伴奏和主旋律的音高不同,甚至旋律行进可以是相反的,拉长的,但是它本身和主旋律还是一样的,结构和构成都完全相同,这些从乐谱上面可以很明显的看出来,即使不会看五线谱,把这些音符的排列当作图形来看也可以很明确的看出来。
在绕了很大一个圈子来描述图形和衬底的关系之后,回到构建形式系统的工作上面来。这一个段落的题目上首先就需要一些外部的内容作为补充——:“ 递归可枚举集之别于递归集 ”(这是书中的原标题)。
首先是递归,也叫做递回,在数学和计算机科学中,指在函数(在数学中为两集合的一种对应关系)的定义中使用函数自身的方法。也可以用来描述以自相似的方法重复事物的过程。比如上面制作的这个tq形式系统的运算就是如此,带入下一个字符串的x、y、z的短杠数目来自于上一个字符串,如此循环往复。形象点说就是
“当两面镜子相互之间近似平行的时候,镜中嵌套的图像就是以无限递归的形式出现的,也可以理解为自我复制的过程。”——摘自维基百科
而递归论也叫做可计算性理论(概念上来说相对狭义一点),是数学逻辑当中的一个分支。它用于研究可计算函数和图灵度(不可解度)的研究它所考虑的基本问题是,给定一个从自然数到自然数的函数 f,f 是否可以被计算的。“可以被计算”这个结果,假如以我们的思维直觉来看,是有这个结果的,那么一个函数可以被计算就存在一个给定过程,就是有输入,然后经过一定的操作输出。把计算这个直观的概念上升到数学层面的形式化定义就是递归论的根本。对我们的直观感受来说,所谓计算就是输入——计算——结果。但是针对计算本身这一操作是什么样的?有什么规律这个问题一般来说不回去想的太细。如果要细分的话很难讲清楚,大概又会回到那个两分法悖论的证明问题上面去。
递归理论的起源并不久远,从哥德尔、邱琦、图灵等人在 1930 年代的工作开始,他们想通过可行计算的严格定义带来数学中有些问题是不可有效判定的最初证明——这涉及到图灵停机问题甚至包括后面的哥德尔定理。在1930年代确定了最初的例子之后,很多数学问题已经被证实是不可判定的。
那么接下来终于可以说到递归集合了,递归集合就是在可计算理论(递归论)当中,一个自然数的子集被称为递归的、可计算的或具可判定性,如果可以构造一个算法,是只能在有限时间内终止并判定一个给定元素是否属于这个集合。(上面那个费力地要构建出来的判定素数的形式系统就类似这么个工作。)
而递归可枚举集合定义是:假设一个可数集合S被称为是递归可枚举、计算可枚举的。如果存在一个算法,可以把S集合中的成员枚举出来。那么输入S集合的元素时,这个计算就会停止,反之则会无限的运行下去。
这里看起来好像说的非常复杂,但其实实际操作中可能是一个意外简单的事情。因为在前面的三个形式系统中,类似的事情我们已经做过了。比如 WJU 形式系统中,如果得不到要求的字符串,推导规则就会无限的运行下去,一直到得到那个结果,运算就会停止(理论上的)。pq 系统和 tq 系统则类似于用印符操作的方式构建出那个计算规则。
那么把这个问题推广出去,通过前面举出的那个图形和衬底的问题来看待数学集合。我们知道并不是每一幅画都可以做到图形和衬底有一样的意义。所以同样的,并不是所有的数学集合都是递归的。这个问题讨论的用词看上去非常的专业,非常的高大上,但是面对的问题可能是一些意外的 很质朴的问题。
通过形式系统构建,还有素数和合数的关系,以及图形和衬底之间的关系。我们发现了我们是如何“知道”一些“轮廓外面的东西”。任何东西我们划定一个画框出来,我们自己可以明确判定的东西就是轮廓,那么我们在图形的范围内所有的东西都是清晰明了的,可操作的。但我们也同样了解轮廓之外的衬底部分,恰恰就是通过图形和衬底之间的关系了解的。
回想上面那个欧几里得定理的问题,素数有无穷个,但我们怎么证明无穷是无穷的呢?
看起来上面说了那么多,好像很复杂,好像很难。但其实在过程中结果已经提示给我们了。联想阿基里斯猜测乌龟给的那个字谜一样。我们在讨论纠结的过程中答案已经出来了。既然我们已经得到一个用乘积来表现合数的 tq 形式系统,而且考虑到图形和衬底之间的关系(这里真的是不厌其烦的在说233)。那我们只需要把概念颠倒过来就可以了,不需要表现素数地乘积问题(只能用 1 乘以素数本身),而是用除法,直接表现素数地不可整除性就可以了。书里后来也给出了答案,直接用一条公理和一条推理规则来表现一个数不能整除另一个数这个概念就可以了。
公理模式:xyBZCx,其中x和y是短杠符号。
推理规则:若xBZCy是个定理,则xBZCxy是个定理。(BZC解释为不整除)
公理:P--
推理规则:如果--BZCz是个定理,,则zMYx-是个定理。(zMYx解释为没有因子)
推理规则:如果zMYx与x-BZCz都是定理,则zMYx-是个定理
推理规则:如果z-MYz是个定理,则Pz-是个定理。
这篇笔记的长度超出了原本的预计,而且在内容上涉及到不少特别专业的数学、计算机的内容。本人并非这方面的专业,对这方面才疏学浅。估计存在大量的纰漏,如果有读者愿意指出更正,感激不尽。
评论区
共 20 条评论热门最新