序数不动点与φ函数
现在通过前面的学习,我们已经了解了一些关于序数的基本知识。这次我们来讲一下序数中的一个基本的概念,不动点。 什么是不动点?简单来说就是按照和之前相同的方法不能再让这个序数增大,那这个序数就是一个不动点。举个例子,我们从ω开始数,后面有ω+1,ω+2,……,ω×2,ω×3,……,ω²,ω³,……,ω^ω,ω^ω^ω,…… 最终我们会得到这样一个序数,它是ω的ω层幂塔。我们把这个序数命名为ε₀,很明显有ω^ε₀=ε₀(顺便一提,ε₀是皮亚诺公理系统的算术极限,也是九头蛇函数的增长率)。那么我们的序数之路是否就到此结束了呢?当然不是,ε₀+1不就是一个比ε₀更大的序数吗?我们继续数下去就有ε₀+2,……ε₀+ω,ε₀+ω^ω,ε₀+ω^ω^ω……ε₀×2,ε₀×3,……ε₀×ω,ε₀×ω^ω,ε₀×ω^ω^ω……ε₀²,ε₀³,……ε₀^ω。这里要注意一下,ε₀^ω>ω^ε₀,因为我们前面已经说过超限序数的运算不满足交换律。 继续往下数就有ε₀^ω^ω,ε₀^ω^ω^ω,……当ε₀头顶又有个ω层的ω幂塔时,把上面那个整体又换成ε₀,我们就得到了ε₀^ε₀。{ε₀,ε₀^ε₀,ε₀^ε₀^ε₀……}是ε₁的基本列,也就是说ω层的ε₀幂塔就是ε₁。ε₁的基本列还有另外一种形式:{ω+1,ω^(ω+1),ω^ω^(ω+1)……},这两种形式的基本列是完全等价的,感兴趣的可以自己动手互化一下。 ε₂的基本列就是{ε₁,ε₁^ε₁,ε₁^ε₁^ε₁……},然后后面还有ε₃,ε₄,ε₅……这样一直下去的极限相信你们也猜到了,那就是ε₋ω。既然ε的下标可以是ω,那它的下标可不可以是ε₀呢?当然是可以的,而且这个下标上的ε还可以有自己的下标。最终我们又会得到一个ω层的ε下标塔,我们把它命名为ζ₀。ζ₀是ε的下标不动点,我们有ε₋ζ₀=ζ₀。 请思考一个问题,{ζ₀,ζ₀^ζ₀,ζ₀^ζ₀^ζ₀……}的极限是多少?是ζ₁吗?当然不是,ζ₀的ω层幂塔应该是ε₋(ζ₀+1)。因为我们有ζ₀=ε₋ζ₀,ε₋(α+1)=(ε₋α)^^ω这两条规则。ζ₁的基本列应该是{ζ₀+1,ε₋(ζ₀+1),ε₋ε₋(ζ₀+1)……}。继续前进我们就能得到ζ₂,ζ₃……ζ₋ω,ζ₋ε₀,ζ₋ε₋ε₀……ζ₋ζ₀,ζ₋ζ₋ζ₀…… 我们此时又得到了一个ζ的ω层下标塔,它是η₀,是ζ的下标不动点。我们有η₀=ζ₋η₀=ε₋η₀。那么我们要怎样才能得到η₁呢?根据前面我们可以知道,η₀的ω层幂塔是ε₋(η₀+1)。ε₋ε₋(η₀+1),ε₋ε₋ε₋(η₀+1)……的极限是η₁吗?当然不是啦,别忘了,ε的ω层下标塔是ζ而不是η,所以极限应该是ζ₋(η₀+1)。而η₁的极限应该是{η₀+1,ζ₋(η₀+1),ζ₋ζ₋(η₀+1)……}。再然后就又是熟悉的η₂,η₃……η₋ω,η₋ε₀,η₋ε₋ε₀……η₋ζ₀,η₋ζ₋ζ₀……η₋η₀,η₋η₋η₀…… 我们又得到了一个η的ω层下标不动点,此时应该怎么办?再找个希腊字母来命名这个不动点吗?但这并非是长远之计,因为希腊字母是有限的,总会被用完,我们需要一种更系统化的方式来枚举这些不动点。而这就是φ函数。 在φ函数的表示法里,ε₀=φ(1,0),ε₁=φ(1,1),ε₋ω=φ(1,ω),ε₋ε₀=φ(1,φ(1,0)),ζ₀=φ(2,0),η₀=φ(3,0)。所以η的ω层下标塔用φ函数表示就是φ(4,0)。{φ(1,0),φ(2,0),φ(3,0),φ(4,0)……}极限是φ(ω,0)。{φ(1,0),φ(φ(1,0),0),φ(φ(φ(1,0),0),0)……}的极限是φ(1,0,0)。 φ(1,0,0)也叫Γ₀,它是二元φ函数的极限,同时也是多元φ函数的起始。Γ₀可以写成φ(Γ₀,0),也就可以写成φ(1,Γ₀)。事实上,φ函数里的那个1可以换成任意一个小于Γ₀的序数。Γ₀的ω层幂塔自然就是φ(1,Γ₀+1)。φ(1,Γ₀+1),φ(1,φ(1,Γ₀+1)),φ(1,φ(1,φ(1,Γ₀+1)))……极限是φ(2,Γ₀+1)。 φ(1,Γ₀+1),φ(2,Γ₀+1),φ(3,Γ₀+1)……极限是φ(ω,Γ₀+1)。φ(φ(1,0),Γ₀+1),φ(φ(φ(1,0),0),Γ₀+1)……φ(Γ₀,1)。φ(Γ₀+1,0)的基本列是{φ(Γ₀,φ(Γ₀,1)),φ(φ(Γ₀,φ(Γ₀,1))),φ(φ(Γ₀,φ(Γ₀,φ(Γ₀,1))))……}。而φ(1,0,1)则是Γ₀+1,φ(Γ₀+1,0),φ(φ(Γ₀+1,0),0)……的极限。φ(1,0,α+1) 被定义为以下序数列的极限:
当三元φ函数的第一位(从右往左数)套娃到套不下去时,向第二位进位。也就是说φ(1,1,0)的基本列是{φ(1,0,φ(1,0,0)),φ(1,0,φ(1,0,φ(1,0,0))),φ(1,0,φ(1,0,φ(1,0,φ(1,0,0))))……}。同样的,第二位上套娃套不下去时就要向第三位进位了。而第三位上套娃套不下去时,就得到了四元φ函数φ(1,0,0,0)。 要得到φ(1,0,0,1)方法和前面三元φ(1,0,1),只是要先把它化成二元φ函数的形式,再套娃升级回三元,再套娃升级成四元。进位的规则也是类似的,都是某一位套不下去了就向下一位进位,最高位也套不时就再次升级。 在φ函数中@符号表示前面的数字在φ函数的第几位上,没写位的默认为0,最右边是第0位,例如φ(1,0,0)=φ(1@2)。φ(1,1,4,5,1,4)也可以写成φ(1@5,1@4,4@3,5@2,1@1,4@0)。之所以要引入@符号,是因为如果φ函数里出现了ω个0时我们不能全部写出来。这个序数写做φ(1@ω),又叫小维布伦序数(SVO)。而大名鼎鼎的TREE函数的FGH增长率比SVO略大,大约是φ(ω@ω)。而葛立恒函数的增长率只有区区的ω+1。现在明白葛立恒数和TREE(3)的差距有多大了吗?TREE函数根本就不是那个什么阿克曼函数套娃自己阿克曼十八多万次可以碰瓷的。@符号后面的数字可以套娃吗?当然可以。φ(1@ω),φ(1@φ(1@ω)),φ(1@φ(1@φ(1@ω)))……的极限叫做大维布伦序数(LVO)。LVO通常被认为是传统φ函数的极限(有一些升级方式能让φ函数可以表示LVO以上的序数,但是意义不大,我们有更好用的方法),想要用 φ 函数表达出LVO的话,里面需要有LVO位数。φ函数的潜力已经基本用完了,我们需要一个更加强力的表示方法。下期预告:序数崩塌函数!