zzx217的个人博客分享 http://blog.sciencenet.cn/u/zzx217

博文

拼接、比较与计算——哥德尔读后之十四

已有 1675 次阅读 2021-7-7 19:55 |系统分类:科研笔记

拼接、比较与计算——哥德尔读后之十四

 

除了喧嚣、闹腾、莫名的亢奋和同样莫名的浮夸,我用心灵体验的那个客体空间,好像容不下哪怕是一粒沙子和些许浮尘。那个空间真是太太纯粹了,纯粹得可以看清其中的点点滴滴。我在这样的纯粹面前,把自己也看得清清楚楚。你接受不了这样的纯粹,因为阳光之下也有阴影。自然,你就只能是这个纯粹空间晦暗阴影中的一尊幽灵。不过,魔鬼为人们关上了很多门,天使也为人们开启了很多窗。天网恢恢,疏而有漏,人无魔助之时,常有自助之路。既有字符之可思,也有经典之可读。也许,遵从自我的呼唤,读你所读,思你所思,写你所写,知你所知,那才是顺应自然的人生。

继续读哥德尔吧。

 

一、接续哥德尔的定义15,关注其中定义15的拼接join together,回顾定义8

 

1、定义15x Gen y≡(Rx) * R(9) * E(y)

这是一个概括化的定义,x Gen y指称的是变元x导致了y的概括化。什么意思呢?就是一旦给定了变元x,它就适用于所有的y。这种概括的特性是通过星号来表现的,*号,自然语言解释为“连结”(join together)。早年看康先生《可能世界的逻辑》,将这个连接翻译为“拼接”,重新翻读康著,觉得很传神,的确是字符序列与字符序列的拼接。

哥德尔原著的算法模式,依康先生所言,除代入之外,用处最大的主要有三。一为求序列第i项元素的项位匹配算子,这是哥德尔定义6给出的。二为序列长度运算子,哥德尔的定义7就是这个长度算子的定义。运算模式的第三种,就是这个拼接。什么是y借助变元x而实现概括化呢?你理解了拼接的要素,这个定义就应该读而有得了。回头细看原著,哥德尔使用这个拼接算法的地方还真不少,定义8定义了这个拼接,然后就一直到定义40,都间或有这个运算符的使用。统计起来,记有10处定义,用到这个符号。值得在这里再对定义8,也就是拼接算子的定义做一点回顾。

还是先从定义15开始,要理解这个定义,大致要做以下几点说明。

1)定义15的左式x Gen y,可以用全称量词来表述为x"y),在1962年译本中,使用的是一个怪怪的符号Ц来表示全称,变元x使得y概括化就表述为:x.Цy。而2000年译本中,这个定义的左式表示为:

forallx,y)

其实这个y好像也不合适,当x作为变元时,说它适合于所有的y,这个y好像不是变元而是常元了。这个差异,我似乎也说不清楚,暂且存疑吧。

 

2)定义15的右式:(Rx) * R(9) * E(y)

右式用了两个拼接符号*,1962译本哥德尔于定义8定义的就是这个符号。公式x*y对应拼接joining together运算,这个运算符号表示两个有限序列的拼接。2000年译本则用seq取代R,用○号取代*号,右式就成为:

seq(9)○seq(x)○paren(y)。

 

这样的右式,显然比老译本的右式更为明了。一看就能够直观地感觉到,拼接是有关序列的拼接。

 

2、重温定义8

定义8.x ○ y≡argmin(z)(z≤(Pr(len(x)+len(y))x+y

      ("n)(n≤len(x)→((term(n,z)=term(n,x))∧

      ("n)(0≤len(y)→((term(n+len(x),z)=term(n,y))

 

其中的x ○ y表示:两个有穷数字序列连接在一起,类似于加在一起,有算术加与逻辑合取的味道,但也不全是。1962译本使用*号,但星号*已经在哥原本中作为乘法符号,使用2000年译本的○取代*号是恰当的。

这个定义中的拼接算子○,如何理解才到位呢?

这两个有穷序列拼接运算的结果,是一个长长的表达式,由定义8的右式表达出来。这个定义8的右式又由三个合取的部分构成,先分开来看其中的每一个部分。

第一部分argmin(z)(z≤(Pr(len(x)+len(y))x+y

这个部分表示,那个最小的数z,满足三个合取的第一个条件,这个条件之下又嵌套几层子条件。限于篇幅,这里仅就其最上层条件做点分析。

这个最小数z≤某个素数,而这个素数又有点复杂。它至少分两个步骤构成,先是得出序列x与序列y字符长度相加之后所形成数字中的第n个素数。然后取这个素数的序列x与序列y本身数字和作为该素数的幂。

 

第二部分("n)(n≤len(x)→((term(n,z)=term(n,x))∧

为定义拼接,引入了定义5“是素数”和定义7“序列长度”。第二部分继续引入在前定义6的“词项”定义,让那第n个素数的n概括化,所有属于n的数需满足一个蕴涵式的条件。也就是,对于所有的n而言,要满足这样一个蕴涵式所规定的条件:如果n≤序列x字符长度的话,那么序列z的第n个词项得等于序列x的第n个词项。

 

第三部分("n)(0≤len(y)→((term(n+len(x),z)=term(n,y))

第二部分是相关于序列z与x的数字n的概括化,这个概括化延伸到第三部分。也是所有属于n的数需满足一个蕴涵式的条件。但稍有变化:对于所有的n而言,要满足以下蕴涵式所规定的条件:如果0≤序列y字符长度的话,那么词项顺序排在这样位置上的数,即n数加上序列z的x字符长度数的位置上的词项数字,得等于序列y的第n个词项。

 

3、一点感悟

这的确有点绕,但好像也透露出一点理解哥德尔数的线索了。我们来设想一下,这个公式中的两个序列。

很显然,这个定义8中的左式,是两个正整数有穷序列。

序列x=s0,s,s2...sn

序列y=t0,t1,t2...tm

通过拼接运算模式形成了另一个序列z,自然也是一个有穷序列。

序列z=s0,s,s2...sn○t0,t1,t2...tm

 

这里的x,y,z其实可以看作是以上三个序列各自的哥德尔数,因为一个P公式的证明就是一个序列。按照哥德尔的符号约定,我们可以用自然数来替代这些已知序列x与y,然后再利用哥德尔给出的拼接等等运算子,来求出那个未知的哥德尔数z。而这个拼接运算在执行的过程中,又不过是运用在前的序列长度运算len,和在前的求序列运算第某个项的term而已,当然也用到了在前的其它一些定义。

似乎在哥德尔的原著中看到有那么一点特异的,有点像计算机算法中的某种东西。

前辈智者的智慧似乎在今天这个非常特殊的氛围之中,到处都在受到有点胡搅蛮缠的学半式挑战,一种离科学很远,却与玄学很亲的挑战。似乎你掌握了某个玄学门道,你就拿到了金钥匙似的。看哥德尔,这个感觉似乎更加强烈。

还是按照跟读原著的思路,已经有了两个译本的定义比较之1,之2,就把这个比较延续下去吧。

 

二、1962年译本与2000年译本定义15-30的比较图表3与4

 

3:15-21

定义比较表3.jpg

 

422-30

  定义比较表4.jpg

三、定义15-30的简略陈述

定义15.

forall(x, y) = seq(9) ○ seq(x) ○ paren(y)

 

这个定义在前说了很多,但没有解释那个paren指的是什么。62年译本用E来修饰字符y,标为E(y)。这个E不是指称存在,而是德文字符“括号”(Einklammern)的首字母。定义10给出了括号的操作,同样是使用“拼接”运算来解释哥德尔证明中的括号运算。而paren则是英文括号的缩写。由此,这个全称概括化定义中的paren(y),也就是给拼接结果两旁加上括号,也就是哥德尔数字11和13所代表的符号。而seq(9)则是给这个结果加上全称量词,也就是",其哥德尔数为9。

 

定义16.

succ_n(0,x) =x

succ_n(n +1, x) = seq(3) succ_n(n, x)

 

这个定义是计算x的第n个后继(succ)数的算法定义,succ_n(0,x) =x对应于这样的运算:在字符x之前有多少个表示后继的符号f,哥德尔用f的个数来表示后继数,在皮亚诺的算术系统中用单引号来表示。这里使用2000年译本表述如上,显然,如果n=0,自然就是x自身,succ_n(0,x) =x

而当n逐个递加时,定义右式也是使用拼接算子来表述。Seq(3)表示由后继符号f构成的序列,因为f约定的素数是3。很显然,拼接后构成了n+1f组合成的序列。

 

定义17.

number(n) = succ(n, seq(1))

 

    这个定义17规定了对于数字n的表述方式,seq(1)对应的符号是0,所以,数字n0之后的第n个后继。

定义18.

isNumType(x) $m, nx(m=1  isVarType(1,m))∧x=succ_n(n,seq(m))

 

哥德尔把由纯粹数字,即a,fa,ffa...等构成的符号合成,称作第一类型的符号(a sign of first type)。这个定义18用等价符号来说明这个符号类型,我用isNumType(x)来表达这个被定义项。字面上就说明了这个类型属于数字类型,也就是哥德尔的第一类型。定义表达的是:x属于第一类型符号,当且仅当以下三点都成立,其中第2)点,涉及到有关变元类型的哥德尔定义11,其中第3)点,则涉及到有关后继的定义16。

1)有数字m+≤x并且n≤x

2)或者m=1或者m为第一类型变元;

3x对应于序列m的第n个后继。

 

定义19.

isNthType(n,x)(n=1∧isNumType1(x))(n>1$(v)((vx(isVarType(n,v)x=seq(v))

 

这个定义则是对于第n个类型符号的定义,被定义项成立,当且仅当满足以下析取式中的一种情形。在第2)点中,还需使v存在满足合取式所列的三条件。

1)或者是:n=1并且x属于第一类型符号;

2)或者是:n>1,并且有变元v存在。这个v存在,得同时满足合取式vx并且v是第变元类型符号,并且x等于序列v

 

定义20.

isEleForm(x)$(y,z,n)((y,z,nx))∧((isNthType(n,y))∧((isNthType(n+1,z))∧((x=(z ○ paren(y)))

 

这个定义告诉我们,x是一个初等公式是什么意思。德文的“初等公式”为长长字符elementarformet,1962年译本取其缩写elf表示这个初等公式,2000年译本取英文初等头两个字符,公式formula中两个字符表示为elfm,但还是使用计算机语言的常规表达方式,直接用可理解的英文来表示为佳,故成上式。

这样,这个x为初等公式意味着什么,就可以粗略解释为,有这样的y、z、n客体存在,它满足以下四个条件。

1)客体y,z,n小于等于x;

2)y是第n个类型的成员;

3)z是第n+1个类型的成员;

4)x是客体z和包括在括号中的客体y的拼接。

 

定义21.

isOp(x,y,z)  (x=not(y)) (x=or(y,z))($v≤x.isVar(v) ∧ x=forall(v,y))

 

这个定义是有关运算符号的,德文和英文的运算都是opreation,取其头两个字符op表示运算,但依然是使用计算机语言或者逻辑谓词表示法更容易理解,便成为以上表达式。

这里的意思好像还比较明白,说一个字符客体是否是运算表达式,那就是看这个字符客体是否是下述表达式中的一个。

1)或者客体x含有否定;

2)或者客体x含有或者;

3)或者客体x含有全称量词,而全称和存在量词是互为定义的。

 

 

定义22.

isFormSeq(x)"(n)(((0<nlength(x)→((isEleForm(item)(n,x))$(p,q)(0<p,q<n)isOp(item(n,x),item(p,x),item(q,x)))∧length(x)>0

 

这个定义是有关公式序列符号的,德文公式序列Reihe von formeln,英文的公式序列是formula sequence,可以取其部分字符表示运算,但依然是使用计算机语言或者逻辑谓词表示法更容易理解,便成为以上表达式。

所以,一个客体x属于公式序列,那就表明,这个公式序列中的每一个公式,或者是一个初等公式,或者是从在前公式通过否定、析取和概括化而获得的公式。

 

定义23.

isForm(x)(((nthPrime(length(x)2))x+(length(x)2∧((isFormSeq(n))∧((x=term(length(n),n)))

 

定义20给出了初等公式的定义,随后在定义22给出了公式序列的定义,这里给出的是公式的定义。而按照哥德尔给这个定义所做的注释,这个定义的客体x,是一个公式序列n中的最后一个公式。客体x需要满足的三个条件,其中的第三个条件表述的,就是哥德尔注释的含义。

 

定义24.

isBound(v,n,x)(isVar(v))∧(isForm(x))$(a,b,c)((a,b,c)≤x))∧((x=(a○forall(v,b)○c))∧(isForm(b))∧(length(a)+1≤n≤length(a)+length(forall(v,b))

 

1962年译本使用德语gebunden,缩略语为Geb,为英文bound之意。2000年译本使用谓词形式来说明这个定义。isBound(v,n,x)字符,表示变元v在变元x的第n个位置上受约束。长长的定义字符显示条件众多,是由六个合取支构成的一个复合公式。

 

定义25.

isFree(v,n,x)isVar(v)isForm(x)v=term(n,x)nlength(x)ØisBound(v,n,x)

 

定义25是与24相对应的一个定义,在前定义变元的约束bound,接之就定义变元的自由free。定义模式简单很多,但依然是一个合取式公式,解释模式很是相同。1962年译本给出的注释,isFree(v,n,x)字符,表示变元v在x中的第n个位置是自由的。

 

定义26.

isFree(v,x)$(n)((nlength(x)∧isFree(v,n,x))

 

定义26给出了自由变元出现的另一种方式。

 

定义27.

Subst(x,n,y)argmin(z)(z(nthPrime(length(x)+length(y)))x+y

∧($(u,v)((u,v)x))∧(x=(useq(term(n,x)○v))∧(z=(u○y○v))∧(n=length(u)+1))

 

1962年译本定义27中的subst为德语substitution缩略语,与英语同字符。这个定义告知我们,在0nlength(x)的条件下,用y替换(substx的第n个词项后所获得的表达式。这个表达式满足的条件似乎更复杂,容全部定义列完后再议。

 

定义28.

freePlace(o,v,x)argmin(n)( nlength(x)isFree(v,n,x)Ø$n<plength(x).free(v,p,x)

freePlace(k+1,v,x)argmin n<freePlace(n,k,v).free(v,n,x)Ø$n<p<

freePlace(n,k,v).free(v,p,x)

 

1962年译本定义28中的St,为德语stelle的缩略语,英文含义为place,所以2000年译本引入freeplace,以表示在某个位置上的变元是自由的free。由此,定义28 的左式,即被定义项freePlace(o,v,x)给我们提示的含义,依哥德尔的解释,可以理解为:从公式x的末端开始计数,x之中的第k+1个位置。在此位置上,变元v在x中是自由的。如果这个位置不存在,则为0。

 

定义29.

freePlaceNum(v,x)=argmin nlength(x).

freePlaceNum(n,v,x)=0

 

这个定义,意图给出在x中v作为自由变元会有多少个位置,似乎是有点奇怪的定义对象。这种怪异在其它定义中也有,比如那个从尾部计数的定义28,何以要从末端来倒计数呢?这些谜一般的定义对象,既承载着阅读的艰难,也给我们的阅读带来期盼。

 

定义30.

Subst(0,x,v,y)=x

Subst(k+1,x,v,y)=insert(Subst(k,x,v,y),freePlace(k,v,x),y)

 

到定义30了,从篇章疏密的需要,随意地做出了将40多个定义三分的安排。现在,这一篇的末端就在面前,我们来看看这个定义30说了些什么。初步理解,这里的Subst表示的是另一种替换,所以在subst后加上一个单引号。在哥德尔的1962年译本中,这两个替换subst是用两个不同的表达替换的德语分别表示的,一个是Sb,另一个是Su,都是中文替换的含义。那个Su,就是前述定义27中的subst

 

 

 

 




https://blog.sciencenet.cn/blog-3478957-1294502.html

上一篇:哥德尔原著译本的前十四个定义——哥德尔读后之十三
下一篇:天灾 经典 定义31-46译本对照——哥德尔读后之十五
收藏 IP: 120.230.79.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-7-27 02:39

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部