@sblsdnkzmutant matrix 3
以矩阵形式表达的表达式,每个元素具有表观行标和内在行标
(以下陈述中,“左”的列标比“右”小,“上”的行标比“下”小)
定义表观行标:一个元素的表观行标就是它写在表达式中的一列的第几个元素。是正整数。
定义内在行标:
内在行标是序数。
表观行标为1的元素,内在行标也为1
对于表观行标大于1的元素x,找到它上方最近的不等于x的元素y,x与y的表观行标差为n,那么x的内在行标是(y的内在行标)+ω^(n-1)
定义待定父元:
内在行标为1的元素,它的待定父元是它向左一格
对于内在行标大于1的元素x,先向左走到x上方元素的父元所在列,找到该列之中满足“内在行标小于等于x之内在行标,而且值大于等于x-1”的最下元素,它就是x的待定父元
定义父元:从一个元素x出发,不断取待定父元的待定父元……的待定父元,直到初次遇到等于x-1的元素为止,它就是x的父元
定义祖先:祖先元素是父关系的自反传递闭包。也就是包括自身、父元、父元的父元、父元的父元的父元、……
定义待定根元素:
从LNZ出发。
向左或向左上走到最近的等于LNZ-1的祖先元素,该元素成为待定根元素。
向上一格(表观行标减1)。
重复以上两步,直到表观行标到达0,无法再取任何元素为止。
决定根元素:
计数每一列的待定根元素,去掉零值,并记作这些数值是从哪一列来的。最左边添加一个“1”,得到提取序列。
提取序列按照PrSS规则找根元素,这个根元素向右一格,回到原矩阵中对应的列,该列最上的待定根元素,就是真正的根元素。
减一操作:展开一轮的第一步是将最右列“减一”。具体操作是,把待定根元素及其下方的所有元素复制到最右列,列标与内在行标平移,使得待定根元素恰好复制到(取代掉)LNZ的位置。
根列元素:待定根元素及其上方同列的所有元素,每个都是“根列元素”。注意,不包括待定根元素下方的元素。
magma元素:每个根列元素都对应一些magma元素。从该根列元素出发,所有内在行标与之相等的后代元素(与祖先相对),就是该根列元素对应的magma元素。
参考元素:最右列的元素x是参考元素。x要对应到内在行标小于(x下方一格的元素的内在行标)的最下根列元素。
延伸:
这是展开一轮的第二步。将减一之前的表达式中,根列右方(不含根列,包括减一前的最右列)的元素一列一列地复制出来。每一列从上到下复制。
一个源元素复制时可能有值的提升、行标的提升。
所有提升由本列最近一次经过的magma元素,以及它对应的根列元素对应的最下参考元素,二者决定。
magma元素复制时可能产生多个复制品。它对应的根列元素对应的参考元素可能有多个,每个产生一个复制品。