Mountain Notation
更多操作
定义
山脉系列的矩阵由列组成,它可以表示为 的形式,其中 为各列, 是非负整数。把所有列从左到右列出来,列标大为右,最左列的列标是 1。
列由元素组成,它可以表示为 的形式,其中 为各元素, 是非负整数。把所有元素从下到上列出来,行标大为上,每一列还额外存在一个元素,位于最下端的行标 0 处。
元素由两部分构成:值、分隔符。值是正整数,代表该元素向左下伸出的左腿要跨越到第几列(左腿元素的行标则小于本元素,且左腿元素是满足条件的所有元素之中的最上者)。分隔符代表元素与它下方一格元素的行标差,这个行标差总是 的次方,于是该次方数称作本元素的维度(其实维度、分隔符也就是一个意思)。元素的写法是先写分隔符,再写值。至于分隔符的具体表达,则与具体的记号有关。
为了可计算地表达行标,它需要一个记号。(每一列最下端元素的)行标 0 用表达。如果一个元素 的行标是 ,它上方一格元素 的分隔符是 ,那么 的行标则是 。此处的“+”是“行标加”运算,其定义如下:
行标的大小比较方式为以分隔符为单位,按字典序比较。至于分隔符的大小关系,则与具体的记号有关。
山脉系列记号同样沿用了山脉图中的一些概念。
- 父元:从一个元素 a 出发,先沿右腿向上一格,再沿左腿向左下一步,就到达 a 的父元。
- 祖先:“父元”关系的传递闭包。此处祖先不含自身。
- 后代:如果 a 是 b 的祖先,那么 b 是 a 的后代。
- 右上角:最右列中最上端的元素。
- 根元素与具体的记号有关。
- 根元素所在的列是根列,但根列元素并非其字面含义。
- 根列元素指的是根元素及其下方所有元素。注意:不含根元素上方的元素!
- 参考元素与具体的记号有关。但一般而言,一个根列元素会对应一个或更多个参考元素。
- 复制部分是根列以右(不含)、最右列以左(含)的部分。其宽度称为复制宽度。
- magma 元素:任何一个根列元素 a 都对应一个或更多个 magma 元素。a 对应的 magma 元素是(在复制部分中)a 的同行后代。这样的对应可以用到所有根列元素上。把这些 magma 元素都收集起来,就是所有的 magma 元素了。
- 减一操作:在 Y 系列记号中就是简单的把原序列最右元素减去 1,但在山脉系列记号则稍显复杂,而且与具体的记号有关。
ωMN
ω Mountain Notation(ωMN)是将 ω-Y 的山脉图显式写出,并作些简化得到的记号。
定义分隔符:分隔符是多重逗号(连续写正整数个逗号),分隔符的大小关系就是逗号数量的大小关系。
ωMN 的简单规则如下:
- 零规则:
- 后继规则:
其主流表达式为:。由主流表达式展开简单规则所得的矩阵都是标准表达式。
如果一个表达式不能按简单规则处理,就执行一次展开,此时就需要定义根元素、参考元素、减一操作之类的概念。
- 定义根元素:从右上角出发,沿左腿向左下一步,就到达根元素。
- 定义顶元素:除了第 0 行元素以外,其它根列元素都是顶元素。此外,右上角也是顶元素。于是顶元素、根列元素数量相等。二者都从下到上排列,于是形成一一对应。
- 定义参考元素:每一对(根列元素, 顶元素)都对应一个或更多个参考元素。最右列之中,行标(大于等于根列元素行标)且(小于顶元素行标)的那些元素,就是这个配对对应的(也可以说:根列元素对应的)参考元素。
定义减一操作:按下列步骤修改矩阵。
- 设右上角的分隔符是 k 重逗号。右上角沿左腿向左下走一步,到达行标 A;右上角沿右腿向下一格,到达行标 B。
- 如果 k = 1,则删掉右上角,然后跳到第 4 步。如果 k > 1,继续第 3 步。
- 如果 A + (k − 1 重逗号 ) ≤ B,则删掉右上角,否则把右上角的分隔符从 k 重逗号改为 k − 1 重逗号。
- 把根元素上方的元素(不含根元素)都复制到最右列上方。
展开流程如下:
首先确定右上角、根列元素、顶元素。然后做减一操作。然后确定复制部分、复制宽度、magma 元素。对于矩阵 [n],接下来要做 n 轮延伸,每一轮延伸都有编号:1, 2, . . . , n。
每一轮延伸的步骤如下:
先确定参考元素(注意,此时的矩阵可能已经做了若干延伸,而不再是原来的矩阵或者减一之后的矩阵)。然后,从左到右逐列地把复制部分的元素(称为源元素)复制到右边的新增列中(目标元素)。对于每一个“源元素列”的复制,从下到上应对那些元素。第 0 行的元素需要应对,但它不会作为源元素。最上端的元素不需应对,但它会作为源元素。
非 magma 元素 a。从 a 沿右腿向上一格,到达的元素 x 是待复制的源元素。它只能复制成一个目标元素。此类复制,目标元素的分隔符与 x 相同。如果 x 的值小于根列的列标,那么目标元素的值与 x 相同。如果 x 的值大于等于根列的列标,那么目标元素的值等于 x 的值加上 w · m,其中是 w 复制宽度,m 是延伸的编号。
magma 元素 a。从 a 沿右腿向上一格,到达的元素 x 是待复制的源元素。它可能复制成一个或更多个目标元素。找到 a 所在行的根列元素,然后找到这个根列元素对应的参考元素。每个参考元素将得出一个目标元素。此类复制,目标元素的值等于 x 的值加上 w · m,其中是 w 复制宽度,m 是延伸的编号。对于不是最上端的参考元素,沿右腿向上一格,到达一个元素,其分隔符为 K。于是目标元素的分隔符是 K。对于最上端的参考元素,目标元素的分隔符与 x 相同。
TωMN
超限 ωMN(Transfinite ω Mountain Notation, TωMN)是 ωMN 的简单扩展,它有 Ω 行的结构。TωMN 之于 ωMN,就好比 Ω 行 BMS 之于 BMS,它应该说算是一种比较弱的扩展。
定义分隔符:分隔符是非空矩阵。分隔符 也可以简写为 n 重逗号。
元素的大小比较:两元素相比,先比其值,如果值不等,则得出结果;如果值相等,再比分隔符,分隔符的比较结果就是元素的比较结果。
列的大小比较:以元素为单位,按字典序比较。
矩阵的大小比较(也就是分隔符的大小比较):以列为单位,按字典序比较。
其简单规则如下:
- 零规则:
- 后继规则:
- 极限维度规则:如果右上角的分隔符是” 最右列不是 ( )” 的矩阵,那么展开此分隔符。
主流表达式:,其中 。
如果一个表达式不能按简单规则处理,就执行一次展开。此时就需要定义根元素、参考元素、减一操作之类的概念了。根元素、参考元素的定义与 ωMN 相同。
定义减一操作:按下列步骤修改矩阵。
- 设右上角的分隔符是 。右上角沿左腿向左下走一步,到达行标 A;右上角沿右腿向下一格,到达行标 B 。
- 如果 X = 0 ,则删掉右上角,然后跳到第 4 步。如果 X > 0 ,继续第 3 步。
- 如果 ,则删掉右上角,否则把右上角的分隔符从 改为 。
- 把根元素上方的元素(不含根元素)都复制到最右列上方。
其展开流程与 ωMN 完全相同。
MωMN
变异 ωMN(Mutant ω mountain notation, MωMN)是 ωMN 的改版,增加了一点急模式的特质,但更类似于 mutant matrix,而不像 hyper matrix、sudden matrix 那样整块地比较矩阵大小。
MωMN 的分隔符、简单规则都与 ωMN 相同。
如果一个表达式不能按简单规则处理,就执行一次展开。此时就需要定义根元素、参考元素、减一操作之类的概念了。
- 按下列流程确定根元素:从右上角出发。设右上角的分隔符是 k 重逗号。如果 k = 1,那么沿左腿向左下走一步。到达的元素就是根元素。如果 k > 1,则继续后续的步骤。沿左腿向左下走一步。如果当前元素在第 0 行,则令 i = 0,否则设当前元素的分隔符是 i 重逗号。如果 i ≥ k,则回到步骤 3。否则,当前元素就是根元素。
- 定义参考元素:对于不是根元素的根列元素 a,从 a 沿右腿向上一格,到达根列元素 b。最右列之中,行标(大于等于 a 行标)且(小于 b 行标)的那些元素,就是 a 对应的参考元素。根元素对应的参考元素,是最右列之中,行标(大于等于根元素行标)且(小于等于“从右上角沿右腿向下一格到达的元素”的行标)的那些元素。
减一操作的定义与 ωMN 相同。
其展开流程如下:
对于矩阵 [n],接下来要做 n 轮延伸。每一轮延伸都有编号:1, 2, . . . , n。最后去掉最右列,才完成整个展开流程。
每一轮延伸的步骤如下:首先确定右上角、根列元素、复制部分、复制宽度、magma 元素。然后做减一操作。然后确定参考元素。然后,从左到右逐列地把复制部分的元素(称为源元素)复制到右边的新增列中(目标元素)。每一列的处理过程,与 ωMN 相同。
MTωMN
变异超限 ωMN(Mutant Transfinite ω Mountain Notation, MTωMN)
既然有 MωMN 、有 TωMN ,那么接下来,MTωMN,就融入了"mutant"与"transfinite"两种特质。实质上它是在 TωMN 的基础上,改用 mutant 的方法来找根元素。MTωMN 的分隔符、简单规则都与 TωMN 相同。
如果一个表达式不能按简单规则处理,就执行一次展开。此时就需要定义根元素、减一操作之类的概念了。根元素的定义与 MωMN 完全相同。减一操作的定义与 TωMN 完全相同。展开流程与 MωMN 完全相同。
Dω·2MN
有缺陷的 ω·2MN(Defective ω·2 Mountain Notation, Dω·2MN)是 ω·2MN 的一个尝试。ω·2MN 的含义,是有 ω·2 种分隔符。
已知 Y 和 TBMS 都是 BMS 的扩展,前者只有 ω2 行的结构却能远远超越后者的 Ω 行结构(不止如此,前者甚至还没有用完 ω+1 行结构,就已经在 Y(1,3,4,2,5,8,10) 处达到后者的 Ω 行结构)。归根结底,这是由于 Y 具有一种特别的、TBMS 不具有的提升。TBMS 中,极限序数行只意味着最右列会变为极限序数下的大行标,而非最右列没有行标的增长。Y 中,最右列出现极限序数行时,不论是最右列还是非最右列,都存在行标的增加。Y 的这种现象称作 eruption。同样,为了真正强烈地超越 ωMN,而不是像 TωMN 那样弱,需要引入一种新型的提升:拉伸。在 TωMN 中,极限序数行只意味着最右列的分隔符会变为极限序数下的大分隔符,而非最右列的分隔符没有增长。接下来,在 Dω·2MN(或者其它 >ωMN)中,最右列出现极限序数行时,不论是最右列还是非最右列,都存在分隔符的增加。分隔符的增加意味着同列相邻元素的距离变远了,“拉伸”因而得名。
定义分隔符:
分隔符由两部分组成:(写在左边)0~1个分号、(写在右边)非负整数个逗号。
分隔符的大小关系:两分隔符相比,先比其分号数,如果不等,则得出结果;如果分号数相等,再比逗号数,逗号数的比较结果就是分隔符的比较结果。规定第 0 行元素具有 0 个分号、0 个逗号组成的分隔符。它仍在第0行(行标为[])。以逗号结尾的分隔符称作后继分隔符(其前继是它去掉结尾的逗号)。否则称作极限分隔符。在本记号中,非空极限分隔符只有“;”一种。
其简单规则如下
- 零规则:
- 后继规则:
主流表达式:。由主流表达式展开,用简单规则得到的矩阵都是标准式。
如果一个表达式不能按简单规则处理,就执行一次展开。此时就需要定义根元素、参考元素、减一操作之类的概念了。对于 >ωMN 而言,还要定义拉伸相关的概念。
定义根元素:从右上角出发,沿左腿向左下一步,就到达根元素。(其实这个根元素的定义与 ωMN 相同)
定义拉伸阈:每一对(根列元素,顶元素)都有至多一个拉伸阈。拉伸阈是个分隔符。如果顶元素的分隔符是后继分隔符,则没有拉伸阈。其它情况,顶元素的分隔符是极限分隔符“;”。如果根列元素的分隔符≥顶元素的分隔符,则拉伸阈是1重逗号。设根列元素的分隔符是n重逗号,则拉伸阈是n+1重逗号。
定义拉伸量:每一对(根列元素,顶元素),有拉伸量。拉伸量是个非负整数。如果没有拉伸阈,则拉伸量为0。如果参考元素只有1个,则拉伸量为0。如果顶元素分隔符>最上参考元素的分隔符≥拉伸阈,设拉伸阈是n重逗号,最上参考元素的分隔符是m重逗号,则拉伸量为m-n+1。其它情况,拉伸量为0。
定义减一操作:按下列步骤修改矩阵。
- 设右上角的分隔符是 M。右上角沿左腿向左下走一步,到达的元素具有分隔符 A、行标 α;右上角沿右腿向下一格,到达的元素具有分隔符 B、行标 β。
- 判断 M 的种类:
- M 是 1 重逗号。删掉右上角,然后跳到(外层的)第 3 步。
- M 是后继分隔符。记 M 的前继为 M'。如果 α+M'≤β,则删掉右上角;否则把右上角的分隔符从 M 改为 M'。然后跳到第 3 步。
- M 是极限分隔符“;”。
- 如果 A≥M 则令 j=1。否则设 A 是 i 重逗号,则令 j=i+1。
- 如果 α<β 且 B 是 ≥j 重逗号,则删掉右上角;否则把右上角的分隔符从 M 改为 j 重逗号。
- 跳到第 3 步。
- 把根元素上方的元素(不含根元素)都复制到最右列上方。
以下是展开流程:
对于矩阵 [n],接下来要做 n 轮延伸。每一轮延伸都有编号:1,2,...,n。最后去掉最右列,才完成整个展开流程。
每一轮延伸的步骤如下:首先确定右上角、根列元素、顶元素、复制部分、复制宽度、magma 元素。然后做减一操作。然后确定参考元素、拉伸阈、拉伸量。然后,从左到右逐列地把复制部分的元素(称为源元素)复制到右边的新增列中(目标元素)。
对于每一个“源元素列”的复制,从下到上应对那些元素。第 0 行的元素需要应对,但它不会作为源元素。最上端的元素不需应对,但它会作为源元素。
非 magma 元素 a。从 a 沿右腿向上一格,到达的元素 x 是待复制的源元素。它只能复制成一个目标元素。如果 x 的值小于根列的列标,那么目标元素的值与x相同。如果 x 的值大于等于根列的列标,那么目标元素的值等于x的值加上复制宽度。如果 x 的分隔符大于等于顶元素分隔符或小于拉伸阈,或者没有拉伸阈,则目标元素的分隔符与x相同。否则,目标元素的分隔符是“x的分隔符后面添加(拉伸量)重逗号”。
magma 元素 a。从 a 沿右腿向上一格,到达的元素 x 是待复制的源元素。它可能复制成一个或更多个目标元素。找到 a 所在行的根列元素,然后找到这个根列元素对应的参考元素。每个参考元素将得出一个目标元素。此类复制,目标元素的值等于 x 的值加上复制宽度。对于不是最上端的参考元素,沿右腿向上一格,到达一个元素,其分隔符为 K。于是目标元素的分隔符是 K。
对于最上端的参考元素。如果 x 的分隔符大于等于顶元素分隔符或小于拉伸阈,或者没有拉伸阈,则目标元素的分隔符与 x 相同。否则,目标元素的分隔符是“x 的分隔符后面添加(拉伸量)重逗号”。
注意到减一操作可能引入左腿跨越“非 ω 的次方”行,即 M 是分号、α+(j重逗号)≤β、但 B<j重逗号 的情况。这是 ωMN、TωMN 没有的情况。在此情况下,右上角的分隔符从 M 改成了 j 重逗号,形成新的元素 m。这个元素 m,今后它作为某个根列元素时,在拉伸的判断下显得像j重逗号。然而,元素 m 在展开时,其分隔符却显示出比“β与α的差值”还要大的跨度。这种不匹配的错位(defect)也直接地表现为“左腿跨越非 ω 的次方行”。
典型例子:
,粗体为根元素。
初次减一后得 ,粗体为根元素及其对应的最上参考元素。
第一轮延伸时,拉伸阈为 2 重逗号,拉伸量为 1。得到 ,粗体为根元素。
最终展开为
关于它的强度以及相对于 TωMN 的提升,参见词条 TωMN VS ω·2MN。
Aω·2MN
星体 ω·2MN(Astral ω·2 Mountain Notation, Aω·2MN)是 ω·2MN 的另一个尝试。
在 Dω·2MN 中,每个根列元素都成了拉伸的判断依据。要与之匹配,则减一操作时,根元素对应的最上参考元素必须按 Dω·2MN 定义中的那种方式变化,才能让每次最右列出现极限分隔符时有合理的拉伸。然而,还有一种方式来判断拉伸的依据。这种方式需要让一部分元素“不作为判断拉伸的依据”,因此判断的时候要跳过它们,找它们下方的元素。这些元素要有额外的标记,这里就用星号(*)来表示。
于是,每个元素由三部分构成:值、分隔符、星标。值是正整数,代表该元素向左下伸出的左腿要跨越到第几列(左腿元素的行标则小于本元素,且左腿元素是满足条件的所有元素之中的最上者)。分隔符代表元素与它下方一格元素的行标差,这个行标差总是ω的次方。星标是只有“有”“无”取值的布尔值,代表本元素作为判断拉伸的依据之否定。元素的写法是先写分隔符,再(如果有星标则写星号,否则不写任何东西),再写值。
分隔符的定义与 Dω·2MN 相同。简单规则与 Dω·2MN 相同。
如果一个表达式不能按简单规则处理,就执行一次展开。此时就需要定义根元素、参考元素、减一操作、拉伸阈、拉伸量之类的概念了。对于 Aω·2MN,还有额外的标记操作。
根元素的定义与 ωMN 相同。
定义函数 S(a),其中 a 是元素。如果 a 有星标,则 S(a) 是 S(a沿右腿向下一格),否则 S(a) 是 a 的分隔符。
定义拉伸阈:每一对 (根列元素,顶元素) 都有至多一个拉伸阈。拉伸阈是个分隔符。如果顶元素的分隔符是后继分隔符,则没有拉伸阈。其它情况,顶元素的分隔符是极限分隔符“;”。如果 S(根列元素)≥顶元素的分隔符,则拉伸阈是 1 重逗号。设 S(根列元素) 是 n 重逗号,则拉伸阈是 n+1 重逗号。
定义拉伸量:每一对 (根列元素,顶元素),有拉伸量。拉伸量是个非负整数。如果没有拉伸阈,则拉伸量为 0。
其它情况,作下列流程:
- 从最上参考元素出发。
- 如果当前元素与根列元素同行,则拉伸量为 0。结束流程。
- 设当前元素的分隔符是 M。
- 如果 顶元素分隔符>M≥拉伸阈,设 M 是 m 重逗号,拉伸阈是 n 重逗号,则拉伸量为 m-n+1。结束流程。
- 沿右腿向下一格。回到步骤 2。
定义减一操作:按下列步骤修改矩阵。
- 设右上角的分隔符是 M。右上角沿左腿向左下走一步,到达的元素 a 具有行标 α;右上角沿右腿向下一格,到达的元素具有分隔符 B、行标 β。
- 判断 M 的种类:
- M 是 1 重逗号。删掉右上角,然后跳到(外层的)第 3 步。
- M 是后继分隔符。记 M 的前继为 M'。如果 α+M'≤β,则删掉右上角;否则把右上角的分隔符从 M 改为 M'。然后跳到第 3 步。
- M 是极限分隔符“;”。
- 如果 S(a)≥M 则令 M'是 1 重逗号。否则设 S(a) 是 i 重逗号,则令 M' 是 i+1 重逗号。
- 如果 α+M'≤β,则删掉右上角;否则把右上角的分隔符从 M 改为 M'。
- 跳到第 3 步。
- 把根元素上方的元素(不含根元素)都复制到最右列上方。
定义标记操作:对于每一对 (根列元素,顶元素),都按下列步骤修改矩阵。
- 从最上参考元素出发。
- 如果当前元素与根列元素同行,则结束流程。
- 设当前元素的分隔符是 M。
- 如果 M<拉伸阈,则把当前元素设为“有星标”。
- 如果 顶元素>M≥拉伸阈,则结束流程。
- 沿右腿向下一格。回到步骤 2。
以下是展开流程:
对于矩阵 [n],接下来要做 n 轮延伸。每一轮延伸都有编号:1,2,...,n。最后去掉最右列,才完成整个展开流程。
每一轮延伸的步骤如下:首先确定右上角、根列元素、顶元素、复制部分、复制宽度、magma 元素。然后做减一操作。然后确定参考元素、拉伸阈、拉伸量,再做标记操作。然后,从左到右逐列地把复制部分的元素(称为源元素)复制到右边的新增列中(目标元素)。
对于每一个“源元素列”的复制,从下到上应对那些元素。第0行的元素需要应对,但它不会作为源元素。最上端的元素不需应对,但它会作为源元素。
非 magma 元素 a。从 a 沿右腿向上一格,到达的元素 x 是待复制的源元素。它只能复制成一个目标元素。如果 x 的值小于根列的列标,那么目标元素的值与 x 相同。如果 x 的值大于等于根列的列标,那么目标元素的值等于 x 的值加上复制宽度。如果 x 的分隔符大于等于顶元素分隔符或小于拉伸阈,或者没有拉伸阈,则目标元素的分隔符与x相同。 否则,目标元素的分隔符是“x 的分隔符后面添加(拉伸量)重逗号”。目标元素的星标与 x 相同。
magma 元素 a。从 a 沿右腿向上一格,到达的元素 x 是待复制的源元素。它可能复制成一个或更多个目标元素。找到 a 所在行的根列元素,然后找到这个根列元素对应的参考元素。每个参考元素将得出一个目标元素。此类复制,目标元素的值等于 x 的值加上复制宽度。
对于不是最上端的参考元素,沿右腿向上一格,到达一个元素k。于是目标元素的分隔符、星标与 k 相同。对于最上端的参考元素。如果x的分隔符大于等于顶元素分隔符或小于拉伸阈,或者没有拉伸阈,则目标元素的分隔符与x相同。否则,目标元素的分隔符是“x 的分隔符后面添加(拉伸量)重逗号”。
目标元素的星标与 x 相同。
在 Dω·2MN 中,每个根列元素都成了拉伸的判断依据;与之匹配的是最上端的参考元素。
而在 Aω·2MN 中,最上端的参考元素可能不够大,便用它下方最近的“足够大”的参考元素作为拉伸的判断依据。由此,要想与之匹配,根列元素就需要星标,延续“它下方最近的足够大的参考元素”这一思想。
典例分析:,粗体为根元素。
减一后得 ,粗体为根元素及其对应的最上参考元素。
拉伸阈为 2 重逗号,拉伸量为 1。
标记后得 。然后延伸出更多列。
最终展开为 ……
Dω2MN
有缺陷的 ω2MN(Defective ω2 Mountain Notation, Dω2MN)是 Dω·2MN 的进一步扩展,是 ω2MN 的一种尝试。因为 Astral 型定义比较复杂,所以我选用了 Defective 型的定义。虽不太完美,但好在定义比 astral 简单一点点。ω2MN,意思是有 ω2 种分隔符的 MN。
Dω·2MN 有一种极限分隔符“;”,由此有一种拉伸:一部分小于分号的分隔符(有拉伸阈的要求)扩大了,但仍小于分号。在 ω2MN 中,那就有 ω 种极限分隔符,它们是 n 重分号,由此有拉伸:一部分小于 n 重分号的分隔符(有拉伸阈的要求)扩大了,但仍小于 n 重分号。
定义分隔符:分隔符由两部分组成:(写在左边)非负整数个分号、(写在右边)非负整数个逗号。分隔符的大小关系:两分隔符相比,先比其分号数,如果不等,则得出结果;如果分号数相等,再比逗号数,逗号数的比较结果就是分隔符的比较结果。规定第 0 行元素具有 0 个分号、0 个逗号组成的分隔符。它仍在第 0 行(行标为 [])。以逗号结尾的分隔符称作后继分隔符(其前继是它去掉结尾的逗号)。否则称作极限分隔符。
简单规则与 Dω·2MN 相同。
主流表达式:。
由主流表达式展开,用简单规则得到的矩阵都是标准式。
如果一个表达式不能按简单规则处理,就执行一次展开。此时就需要定义根元素、减一操作、拉伸阈、拉伸量之类的概念了。
对于极限分隔符 M=n重分号,记 M[i] = n-1 重分号后跟 i 重逗号(i 只取正整数)。
根元素的定义与 ωMN 相同:从右上角出发,沿左腿向左下一步,就到达根元素。
定义拉伸阈:每一对 (根列元素,顶元素) 都有至多一个拉伸阈。拉伸阈是个分隔符。如果顶元素的分隔符是后继分隔符,则没有拉伸阈。其它情况,顶元素的分隔符是极限分隔符——设它是 M。如果 根列元素的分隔符≥M,则拉伸阈是 M[1]。如果 根列元素的分隔符<M,则拉伸阈是 M[n],其中 n 是使得“M[i]>根列元素的分隔符”的最小正整数 i。
定义拉伸量:每一对 (根列元素,顶元素),有拉伸量。拉伸量是个非负整数。如果没有拉伸阈,则拉伸量为 0。如果参考元素只有 1 个,则拉伸量为 0。如果顶元素分隔符 > 最上参考元素的分隔符≥拉伸阈:设拉伸阈是 n 重分号后跟 m 重逗号,最上参考元素的分隔符是 n 重分号后跟 k 重逗号,则拉伸量为 k-m+1。其它情况,拉伸量为 0。
定义减一操作:按下列步骤修改矩阵。
- 设右上角的分隔符是 M。右上角沿左腿向左下走一步,到达的元素具有分隔符 A、行标 α;右上角沿右腿向下一格,到达的元素具有分隔符 B、行标 β。
- 判断 M 的种类:
- M 是 1 重逗号。删掉右上角,然后跳到(外层的)第 3 步。
- M 是后继分隔符。记 M 的前继为 M'。如果 α+M'≤β,则删掉右上角;否则把右上角的分隔符从 M 改为 M'。然后跳到第 3 步。
- M 是极限分隔符。
- 如果 A≥M 则 令j=1。否则令 j=(使得 M[i]>A 的最小正整数 i)。
- 如果 α<β 且 B≥M[j],则删掉右上角;否则把右上角的分隔符从 M 改为 M[j]。
- 跳到第 3 步。
- 把根元素上方的元素(不含根元素)都复制到最右列上方。
以下是展开流程:
对于矩阵 [n],接下来要做 n 轮延伸。每一轮延伸都有编号:1,2,...,n。最后去掉最右列,才完成整个展开流程。
每一轮延伸的步骤如下:首先确定右上角、根列元素、顶元素、复制部分、复制宽度、magma 元素。然后做减一操作。然后确定参考元素、拉伸阈、拉伸量。然后,从左到右逐列地把复制部分的元素(称为源元素)复制到右边的新增列中(目标元素)。
对于每一个“源元素列”的复制,从下到上应对那些元素。第 0 行的元素需要应对,但它不会作为源元素。最上端的元素不需应对,但它会作为源元素。
非 magma 元素 a。从 a 沿右腿向上一格,到达的元素 x 是待复制的源元素。它只能复制成一个目标元素。确定目标元素的值:如果 x 的值小于根列的列标,那么目标元素的值与 x 相同;如果 x 的值大于等于根列的列标,那么目标元素的值等于 x 的值加上复制宽度。确定目标元素的分隔符:如果 x 的分隔符大于等于顶元素分隔符或小于拉伸阈,或者没有拉伸阈,则目标元素的分隔符与 x 相同;否则,目标元素的分隔符是“x 的分隔符后面添加(拉伸量)重逗号”。
magma 元素 a。从 a 沿右腿向上一格,到达的元素x是待复制的源元素。它可能复制成一个或更多个目标元素。找到 a 所在行的根列元素,然后找到这个根列元素对应的参考元素。每个参考元素将得出一个目标元素。
确定目标元素的值:此类复制,目标元素的值等于 x 的值加上复制宽度。
确定目标元素的分隔符:对于不是最上端的参考元素,沿右腿向上一格,到达一个元素,其分隔符为 K。于是目标元素的分隔符是 K。对于最上端的参考元素,如果 x 的分隔符大于等于顶元素分隔符或小于拉伸阈,或者没有拉伸阈,则目标元素的分隔符与 x 相同;否则,目标元素的分隔符是“x 的分隔符后面添加(拉伸量)重逗号”。
DωωMN
有缺陷的 ωωMN(Defective ωω Mountain Notation, DωωMN)是 Dω2MN 的进一步扩展,是 ωωMN 的一种尝试。
DωωMN 中的分隔符有 ωω 种。其中,第 α+1 种都是后继分隔符;第 α+ω 种分隔符与 Dω2MN 中的分隔符类似,以它为顶元素发生拉伸的时候,被拉伸的分隔符总是在末尾添加若干个逗号(即分隔符的种类序数增加一个正整数);而更大的第种分隔符则是新东西,以它为顶元素发生拉伸的时候,被拉伸的分隔符要从第种分隔符拉伸到第种分隔符,这不是简单的“加一个序数”,而是连末尾的整数部分也保留着。
由于分隔符的种类较多,DωωMN 将像 TωMN 那样,用记号自身来表达分隔符。只不过,分隔符的大小有上限。
定义分隔符:分隔符是小于 的非空矩阵。分隔符也可以简写为 n 重逗号。
(以下分隔符概念与 TωMN 相同)
元素的大小比较:两元素相比,先比其值,如果值不等,则得出结果;如果值相等,再比分隔符,分隔符的比较结果就是元素的比较结果。
列的大小比较:以元素为单位,按字典序比较。
矩阵的大小比较(也就是分隔符的大小比较):以列为单位,按字典序比较。
规定第0行元素具有空矩阵分隔符。它仍在第 0 行(行标为 [])。
以结尾的分隔符称作后继分隔符(其前继是它去掉结尾的)。否则称作极限分隔符。
简单规则与 Dω·2MN 相同。
主流表达式:。由主流表达式展开,用简单规则得到的矩阵都是标准式。
如果一个表达式不能按简单规则处理,就执行一次展开。此时就需要定义根元素、减一操作、拉伸阈、拉伸量之类的概念了。
对于分隔符 M 而言,它可以作为矩阵长展开为 M[n](n 为非负整数),我们也定义长展开的 M[-1] 是 M 去掉根列右侧(不含根列)的所有列。以下所有定义中,M[n] 都采用长展开而非短展开。
根元素的定义与 ωMN 相同,从右上角出发,沿左腿向左下一步,就到达根元素。
定义拉伸阈:每一对 (根列元素,顶元素) 都有至多一个拉伸阈。拉伸阈是个分隔符。如果顶元素的分隔符是后继分隔符,则没有拉伸阈。其它情况,顶元素的分隔符是极限分隔符,设它是 M。如果 根列元素的分隔符≥M,则拉伸阈是 M[-1]。如果 根列元素的分隔符<M,则拉伸阈是 M[n],其中 n 是满足“M[n]>根列元素的分隔符”的最小值。
定义拉伸量:每一对 (根列元素,顶元素),有拉伸量。拉伸量是个非负整数。如果没有拉伸阈,则拉伸量为 0。如果参考元素只有1个,则拉伸量为0。如果 顶元素分隔符>最上参考元素的分隔符≥拉伸阈:设顶元素分隔符是 M,拉伸阈是 M[n],最上参考元素的分隔符是 K,k 是满足 K≥M[k] 的最大值,则拉伸量为 k-n+1。其它情况,拉伸量为 0。
定义减一操作:按下列步骤修改矩阵。
- 设右上角的分隔符是 M。右上角沿左腿向左下走一步,到达的元素具有分隔符 A、行标 α;右上角沿右腿向下一格,到达的元素具有分隔符 B、行标 β。
- 判断 M 的种类:
- M 是 1 重逗号。删掉右上角,然后跳到(外层的)第 3 步。
- M 是后继分隔符。记 M 的前继为 M'。如果 α+M'≤β,则删掉右上角;否则把右上角的分隔符从 M 改为 M'。然后跳到第 3 步。
- M 是极限分隔符。
- 如果 A≥M 则令 j=-1。否则令 j=(使得 M[i]>A 的最小 i)。
- 如果 α<β 且 B≥M[j],则删掉右上角;否则把右上角的分隔符从 M 改为 M[j]。
- 跳到第 3 步。
- 把根元素上方的元素(不含根元素)都复制到最右列上方。
以下是展开流程。
对于矩阵 [n],接下来要做 n 轮延伸。每一轮延伸都有编号:1,2,...,n。延伸完毕后,如果是长展开,则再做一次减一操作;如果是短展开,则去掉最右列。这才完成整个展开流程。
每一轮延伸的步骤如下:首先确定右上角、根列元素、顶元素、复制部分、复制宽度、magma 元素。然后做减一操作。然后确定参考元素、拉伸阈、拉伸量。然后,从左到右逐列地把复制部分的元素(称为源元素)复制到右边的新增列中(目标元素)。
对于每一个“源元素列”的复制,从下到上应对那些元素。第 0 行的元素需要应对,但它不会作为源元素。最上端的元素不需应对,但它会作为源元素。
非 magma 元素 a。从 a 沿右腿向上一格,到达的元素 x 是待复制的源元素(分隔符为 X)。它只能复制成一个目标元素。确定目标元素的值:如果 x 的值小于根列的列标,那么目标元素的值与 x 相同;如果 x 的值大于等于根列的列标,那么目标元素的值等于 x 的值加上复制宽度。确定目标元素的分隔符:如果 X 大于等于顶元素分隔符或小于拉伸阈,或者没有拉伸阈,则目标元素的分隔符是 X;否则,记顶元素分隔符为 M、拉伸量为 k。设 s 满足 X≤M[s]。从最左列数起,X 与 M[s] 的最长公共部分(一整列一整列地数)为 N。再取 t 是满足 M[t] 是 X 从最左列开始的部分的最大值,Y 是 X 去掉 M[t] 后剩余的部分。设 M 的根列在第 u 列。将 Y 中所有大于等于 u 的元素值都加上 (M 的复制宽度)·k。于是,目标元素的分隔符是 M[t+k] 右边跟着 Y。
magma 元素a。从 a 沿右腿向上一格,到达的元素x是待复制的源元素。它可能复制成一个或更多个目标元素。找到a所在行的根列元素,然后找到这个根列元素对应的参考元素。每个参考元素将得出一个目标元素。
确定目标元素的值:此类复制,目标元素的值等于x的值加上复制宽度。
确定目标元素的分隔符:对于不是最上端的参考元素,沿右腿向上一格,到达一个元素,其分隔符为 K。于是目标元素的分隔符是 K。对于最上端的参考元素,如果 x 的分隔符大于等于顶元素分隔符或小于拉伸阈,或者没有拉伸阈,则目标元素的分隔符与 x 相同;否则,设 x 的分隔符是 X,记顶元素分隔符为 M、拉伸量为 k。设 s 满足 X≤M[s]。从最左列数起,X 与 M[s] 的最长公共部分(一整列一整列地数)为 N。再取t是满足“M[t] 是 X 从最左列开始的部分”的最大值,Y 是 X 去掉 M[t] 后剩余的部分。设 M 的根列在第 u 列。将 Y 中所有大于等于 u 的元素值都加上 (M的复制宽度)·k。于是,目标元素的分隔符是 M[t+k] 右边跟着 Y。
TωωMN
超限 ωωMN(Transfinite ωω Mountain Notation, TωωMN)是 DωωMN 的进一步扩展。不确定更高层次的 αMN 是否需要更“新型”的提升/eruption/拉伸/etc. 概念才能完成。这里暂用 transfinite 这个形容词来表示分隔符种类之多——TωωMN 中的分隔符种类数与该记号的极限相当。看到这里,我们知道,TωωMN 最关键的问题在于如何拉伸。我们仍规定只有当 顶元素分隔符>待拉伸分隔符≥拉伸阈 的时候才有可能拉伸。所有其他定义都要配合这一准则。
一个非平凡的拉伸发生在“顶元素具有第 ωω 种分隔符”的情形。被拉伸的分隔符要从第 种分隔符拉伸到第 种分隔符。但如果分隔符的种类序数不是 ω 的整次方呢?比如,被拉伸的分隔符是第 种分隔符,按照 DωωMN 的拉伸方法,它将变成第 种分隔符,只取“最左侧”的一个部分发生拉伸。另一个非平凡的拉伸发生在“顶元素具有分隔符”的情形。此时分隔符在展开时出现 eruption,那么拉伸就不是按照 DωωMN 定义的那种“仅仅向右平移、元素值增加”能完成的了。我们需要把被拉伸的分隔符也纳入顶元素分隔符的延伸过程中,把(被拉伸的分隔符中的)根列右方的列当作被复制的东西,连同主要的延伸过程一起复制、一起向右移动、一起 eruption、一起拉伸。
TωωMN 的分隔符与 TωMN 相同。
简单规则与 Dω·2MN 相同。
主流表达式:。由主流表达式展开,用简单规则得到的矩阵都是标准式。
如果一个表达式不能按简单规则处理,就执行一次展开。此时就需要定义根元素、减一操作、拉伸阈、拉伸量之类的概念了。
对于分隔符 M 而言,它可以作为矩阵长展开为 M[n](n 为非负整数),我们也定义长展开的 M[-1] 是 M 去掉根列右侧(不含根列)的所有列。以下所有定义中,M[n] 都采用长展开而非短展开。此外,对于分隔符 M>N 而言,把它们作为矩阵,可以将 M 延伸,同时 N 作为“附加列”也一起延伸。带附加列的延伸流程将在“展开流程”一节阐述。
根元素的定义与 ωMN 相同——从右上角出发,沿左腿向左下一步,就到达根元素。
定义拉伸阈:每一对 (根列元素,顶元素)都有至多一个拉伸阈。拉伸阈是个分隔符。如果顶元素的分隔符是后继分隔符,则没有拉伸阈。其它情况,顶元素的分隔符是极限分隔符——设它是 M。如果 根列元素的分隔符≥M,则拉伸阈是 M[-1]。此时定义预拉伸量为 0。如果 根列元素的分隔符<M,则拉伸阈是M[n],其中 n 是满足 M[n]>根列元素的分隔符 的最小值。此时定义预拉伸量为 n+1。
定义拉伸量:每一对 (根列元素,顶元素),有拉伸量。拉伸量是个非负整数。如果没有拉伸阈,则拉伸量为 0。如果参考元素只有 1 个,则拉伸量为 0。如果 顶元素分隔符>最上参考元素的分隔符≥拉伸阈,设顶元素分隔符是 M,预拉伸量是 n,最上参考元素的分隔符是 K,k 是满足 M[k]>K 的最小值,则拉伸量为 k-n+1。其它情况,拉伸量为 0。
减一操作的定义与 DωωMN 相同。
以下是展开流程:
对于矩阵[n],接下来要做n轮延伸。每一轮延伸都有编号:1、2……、n。 延伸完毕后,如果是长展开,则再做一次减一操作;如果是短展开,则去掉最右列。这才完成整个展开流程。
每一轮延伸,可能是单独一个矩阵的延伸,也可能是“A 附加 B 延伸”(A,B 都是矩阵。此处 A 称作主矩阵,B 称作附加矩阵)。步骤如下:
- 首先是附加矩阵的预处理。A,B 的最长公共部分(一整列一整列地数)记作 C。B 删去 C 这个部分,余下的部分作为后续步骤中的“附加矩阵”。
- 主矩阵确定右上角、根列元素、顶元素、复制部分、复制宽度。
- 附加矩阵的复制部分是根列以右(不含根列)的所有列,列标甚至能超过主矩阵的列数。
- 主矩阵、附加矩阵都(按照主矩阵的根列元素)确定 magma 元素。
- 主矩阵做减一操作,不含附加矩阵。
- 主矩阵确定参考元素、拉伸阈、预拉伸量、拉伸量。
- 从左到右逐列地把主矩阵、附加矩阵复制部分的元素(称为源元素)复制到右边的新增列中(目标元素)。
- 如果要得到附加矩阵 D,那么把“现有的附加矩阵”作为 D 最右边的部分,D 左边空余的列从主矩阵取得。
对于每一个“源元素列”的复制,从下到上应对那些元素。第 0 行的元素需要应对,但它不会作为源元素。最上端的元素不需应对,但它会作为源元素。
非 magma 元素 a。从 a 沿右腿向上一格,到达的元素 x 是待复制的源元素(分隔符为 X)。它只能复制成一个目标元素。确定目标元素的值:如果 x 的值小于根列的列标,那么目标元素的值与 x 相同;如果 x 的值大于等于根列的列标,那么目标元素的值等于 x 的值加上复制宽度。确定目标元素的分隔符:如果 X 大于等于顶元素分隔符或小于拉伸阈,或者没有拉伸阈,则目标元素的分隔符是 X;否则,记顶元素分隔符为 M、预拉伸量为 m、拉伸量为 k,M 延伸 m 轮得到 N。目标元素的分隔符是“N 附加 X 延伸 k 轮之后得到的附加矩阵。
magma 元素 a。从 a 沿右腿向上一格,到达的元素 x 是待复制的源元素。它可能复制成一个或更多个目标元素。找到 a 所在行的根列元素,然后找到这个根列元素对应的参考元素。每个参考元素将得出一个目标元素。
确定目标元素的值:此类复制,目标元素的值等于 x 的值加上复制宽度。
确定目标元素的分隔符:
- 对于不是最上端的参考元素,沿右腿向上一格,到达一个元素,其分隔符为 K。于是目标元素的分隔符是 K。
- 对于最上端的参考元素。
- 如果 x 的分隔符大于等于顶元素分隔符或小于拉伸阈,或者没有拉伸阈,则目标元素的分隔符与 x 相同。
- 否则,设 x 的分隔符是 X,记顶元素分隔符为 M、预拉伸量为 m、拉伸量为 k。M 延伸 m 轮得到 N。目标元素的分隔符是“N 附加 X 延伸”k 轮之后得到的附加矩阵。
与 Y 系列记号的区别
Y 系列记号的表达式是个正整数序列,每个元素都压缩了许多信息,不能立即辨认,需要画出山脉图才可以看到其结构。山脉图分为行、列,列标与行标的二元组可以定位山脉图中的一个元素。列标是正整数,每一列对应原来序列的一个元素。行标则是序数,理想中 α-Y 山脉图的行标是小于 的序数。相比之下,山脉系列记号则显式地表达山脉图,而无需像 Y 系列记号那样需要解压、压缩。山脉系列记号的表达式是 矩阵[n],此 n 也就是展开时的基本列项数。
相比于 Y 系列记号而言,山脉系列记号具有如下的优点:
- 显式地表达山脉图,无需解压(画山脉图)、压缩(从山脉图还原为正整数序列)就可看出结构。
- 表达式可以更加自由(不受解压、压缩的限制),从而可以简化。尽管与 Y 同样有许多非标准表达。
- 可以规避压扁现象——山脉记号中特定行标的元素总可以存在。这是第二点优势的延伸。
- 可以规避 Y 系列作超限简单扩展时“极限序数行标的 1 与极限序数值不匹配”的问题。
但同时它有如下的不足:
- 表达式比较长,不如 Y 系列简短。
- 难以提取,而 Y 系列却可以简单地提取任何可以形成正整数序列的东西。