Skip to content

两张置换表究竟确定了什么 ​

给定两个生成元在有限集合上的置换,先确认它们真能作为玫瑰图的覆叠表,再决定想回答哪一种问题。读词终点判断子群成员,生成树给自由基,与所有生成元都交换的置换给全局覆叠变换。最后还要区分:是在保留指定基点的意义下比较,还是允许忘掉基点。

全程约定词从左向右行走,ab表示先走a再走b。纤维作用在右,子群H对应右陪集Hg。相邻逆字母可以约掉;仅在有限置换表上作用相同,不代表两个自由词相等。

任务一:交出完整三层子群证书 ​

底空间为两个圆的楔和Ra,b,三个纤维点为1、2、3。输入表为

当前点 读a后 读b后
1 2 2
2 1 3
3 3 1

每列都是置换;逆表由列反查得到。因为从1反复读b可到全部顶点,作用传递,覆叠连通。底空间的基本群是F(a,b);基点取1,令H为所有从1读完后仍在1的词。

六条正边不能压成四条 ​

逐行、逐生成元各建一条独立正边,总数为3×2=6。其中两条a边1→2与2→1是不同边;沿第一条反向行走要读a−1,不是沿第二条正向读a。此外,3处还有一条a自环。

选择b的1→2与2→3为生成树。三个树词为1,b,b2。其余正边按图中次序给

c1=ab−1,c2=ba,c3=b2ab−2,c4=b3.

每条基词由“树路去程、当前非树边、树路返回”组成。Nielsen–Schreier定理说明它们构成自由基,秩为1+3(2−1)=4。仅检验四个词闭合只证明它们属于H;生成性及没有额外关系仍由定理的互逆重写证明保证。

既要重写,也要保留终点 ​

读w=b2a2b,依次经过1,2,3,3,3,1。两次树边不记,接着记录C3,C3,C4,所以

w=c32c4.

代入四个自由基词可直接约消回b2a2b。同样,a2=c1c2。

如果输入为ab,终点却是3。记录虽只有C1,仍须保留末端树词b2,完整等式是

ab=c1b2=(ab−1)b2.

这时不能把记录当成“ab已写为H的基词乘积”。算法应同时返回重写词、终点和剩余陪集代表;一般恒等式为w=htend。其中h∈H,只有终点为1时才能省掉末尾树词。

层数、单值化像、Deck群分别有多大 ​

两个输入置换a=(12)、b=(123)生成S3,所以单值化像有六个元素。它在三个点上传递,纤维层数仍是三,并不因此变成六。

Deck置换必须同时与a,b交换。与b交换的只有1,b,b2,后二者不与a交换,因此Deck群只有恒等元。ba∈H而ab∉H,又有b−1(ba)b=ab,明确证明H非正规。结论是:

[F(a,b):H]=3,rank(H)=4,|单值化像|=6,|Deck|=1.

四个数对应四种不同对象,均有独立核验方法。不能把有限像中的关系a2=1搬回自由群;事实上a2=c1c2是一个非平凡自由词。

任务二:同一覆叠,基点为什么会改变答案 ​

现在给第二张表a′=(12)、b′=(132),基点仍按标签取1。全体重标记中,只有c=(12)同时满足

cac−1=a′,cbc−1=b′.

因此两张表表示同一个无基点覆叠,但这个唯一同构把第一张表的点1送到第二张表的点2,不能保持指定基点。第一张表中的ba闭合,第二张表中却不闭合,两个具体子群也确实不同。

第二张表的基点1对应第一张表的点2;第一张表从1读b到2。因此新稳定子为b−1Hb,与H共轭。这是覆叠分类中“具体子群”和“共轭类”的实际区别,不是只在命名上多加一个基点。

三层究竟有多少个带基点类与无基点类 ​

三标签上的置换对共有62=36份。不传递的作用必有一个共同固定点:每个指定点由两种置换固定,故同时固定它的置换对有4份。用容斥去重,有3⋅4−3⋅1+1=10份不传递,剩26份连通表。

只允许固定标签1的重标记时,重标记群有两个元素。它在传递表上的作用没有非平凡固定者,因为与全部动作交换又固定一点的置换必逐点固定。因此带基点类恰有26/2=13个。

忘掉基点时,不能再把13机械除以三。正规三层覆叠中,任一基点都可由某个Deck变换送到另一指定基点,非正规例中则不行。更具体地,设c=(123)、t=(12)、u=(23),七个无基点类可以由下表代表:

生成元像(a,b) Deck群阶 该类含多少个带基点类
(1,c) 3 1
(c,1) 3 1
(c,c) 3 1
(c,c−1) 3 1
(t,c) 1 3
(c,t) 1 3
(t,u) 1 3

前四类的像是循环群,后面三类的像是S3。在一个循环像中,八个非同时为恒等的有序生成元像经c↔c−1配成四类;非循环传递对分别属于“一换位一三轮换”“反过来的顺序”“两个不同换位”三种,每种在同时共轭下只有一类。于是无基点共有七类,带基点总数为4⋅1+3⋅3=13,与前面的计数相符。

公开脚本另外枚举全部重标记轨道,逐类检查这些数,而不是只把13与7写入期望输出。若改底空间为环面,还须要求两个生成元置换交换;当前七类计数属于两个圆的楔和,不能原样移用。

任务三:迁移到四层正规覆叠 ​

改为四个纤维点,输入a=(1234)、b=(13)(24)=a2。它们来自F(a,b)到Z/4的像,分别对应1和2。作用传递;基点稳定子为同态

a⟼1,b⟼2(mod4)

的核,故正规。Deck群是四阶循环群,全部变换为a的四个幂。

选择a的前三条正边为生成树,树词为1,a,a2,a3。八条正边减三条树边,给五个自由基元:

d1=ba−2,d2=aba−3,d3=a2b,d4=a4,d5=a3ba−1.

因此秩为1+4(2−1)=5。读b2先记录d1,再记录d3,所以b2=d1d3;读aba得到d2d4。直接展开两式也能约消验证。

虽然在四点置换表上b与a2作用相同,原自由群中它们并不相等;非平凡词ba−2=d1只是落在作用的核中。这个边界解释了为什么成员判定能压缩成有限表,却不能拿有限表替代自由词的精确相等判定。

交付与复算 ​

运行 python foundations-covering-certificates.py --output result.json。程序只使用整数、置换、图搜索及自由约化;输出用小写字母表示正生成元、大写表示逆字母,1表示空词。它检查原词等于“基词展开乘剩余树词”,并反向核验基词展开再重写恢复原基词。

程序还遍历一至四个顶点的全部两生成元置换对,分别按固定基点重标记和任意重标记分类;这项穷举的置换对数为(n!)2,不是多项式时间承诺。给定单张n顶点、r生成元表后,验证置换与连通性、构造树和隐式基证书的成本为O(n(r+1))。全部展开的基词可能需要O(n+n2r)输出;读长度m的词并保留树词指针只需O(m)更新。公开脚本为便于核查实际展开树词和基词,应按显式输出的成本理解;只存父边的隐式实现才采用前一个构造界。

最终证书应同时给出合法表、连通性、选定基点、树边与基词、输入词终点及剩余代表、全部Deck置换,以及所比较的同构是否须保持基点。非法置换、含圈的树、遗漏顶点和未知生成元必须被拒绝;空自由基r=0也单列核验,连通时只能剩一个顶点。