对称群中子群陪集相等性的推理验证问询
嘿,我来梳理下你的问题和推理,帮你核对下思路对不对~
问题背景回顾
先明确给定的前提条件:
- 设 $H \le \textrm{Sym}(n)$,其中 $n$ 是整数,$\textrm{Sym}(n)$ 表示 $n$ 元对称群
- 设 $g \in \textrm{Sym}(m)$,其中 $m$ 是整数且 $m \ge n$,这里的嵌入是合理的——我们可以把 $\textrm{Sym}(n)$ 看作 $\textrm{Sym}(m)$ 中固定最后 $m-n$ 个元素的子群,所以 $H$ 自然成为 $\textrm{Sym}(m)$ 的子群
现在取 $s = h_c g$(其中 $h_c \in H$),计算 $H$ 在 $\textrm{Sym}(m)$ 中关于 $s$ 的左、右陪集:
$$
sH = { s h | h \in H } = { h_c g h | h \in H }
$$
$$
Hs = { h s | h \in H } = { h h_c g | h \in H }
$$
你关心的核心问题是:固定 $g$ 时,任意选取 $h_c \in H$,生成的左/右陪集是否会保持相等?
你的推理与疑问
你得出的初步结论是:
- 对于右陪集:因为 $h h_c$ 会遍历整个 $H$(当 $h$ 遍历 $H$ 时,映射 $h \mapsto h h_c$ 是 $H$ 到自身的双射),所以不管选哪个 $h_c$,右陪集都会是同一个集合,和 $h_c$ 无关
- 对于左陪集:你认为没法提前做出一般性结论,除非知道 $g$ 的具体信息
但你编程实现后得到的结果和这个推导完全相反,所以想先确认自己的逻辑是否正确。
推理正确性验证
我帮你拆解下这两个结论的正确性:
右陪集的结论完全正确:
对于任意 $h_c \in H$,映射 $\phi: H \to H, h \mapsto h h_c$ 是群的自同构(既是双射又保持群运算),所以当 $h$ 跑遍 $H$ 时,$h h_c$ 也会覆盖整个 $H$。因此 $Hs = { h h_c g | h \in H } = { h' g | h' \in H } = Hg$,确实所有这类右陪集都等于 $Hg$,和 $h_c$ 的选择无关。左陪集的结论也正确:
左陪集 $sH = h_c g H$,不同 $h_c$ 生成相同左陪集的充要条件是:$(h_c')^{-1} h_c \in g H g^{-1}$(群中左陪集相等的判定规则是 $aH = bH \iff b^{-1}a \in H$,替换成 $a=h_c g, b=h_c' g$ 后,就能推导出这个条件)。
这意味着只有当 $H$ 和 $g$ 共轭的子群 $g H g^{-1}$ 交集足够大时,不同 $h_c$ 才会得到相同左陪集;如果 $g$ 不在 $H$ 的正规化子 $N_{\textrm{Sym}(m)}(H)$ 里(即 $g H g^{-1} \neq H$),不同的 $h_c$ 大概率会生成不同的左陪集,确实没法提前给出统一结论。
为什么编程结果相反?
出现和推导相反的结果,大概率是代码逻辑的细节出了问题,你可以从这几个方向排查:
- 是否搞混了左/右陪集的定义?比如代码里把左陪集写成了 $H s$,右陪集写成了 $s H$,和你推导时的定义完全颠倒?
- 是否对称群的嵌入方式错误?比如把 $\textrm{Sym}(n)$ 嵌入到 $\textrm{Sym}(m)$ 时,映射逻辑出错,导致 $H$ 没有正确成为 $\textrm{Sym}(m)$ 的子群?
- 是否陪集生成逻辑有误?比如生成左陪集时,错误地用了 $h s$ 而非 $s h$,或者右陪集的生成顺序搞反了?
先核对这些基础逻辑,应该能找到问题所在~
备注:内容来源于stack exchange,提问作者Raven

