伽罗瓦群

构造对称群的传递子群,这在伽罗瓦理论中很有用。

除了构造 PermutationGroup 类的实例来表示小 \(n\)\(S_n\) 的传递子群外,此模块还为这些群提供了 名称

在某些应用中,可能更倾向于知道一个群的名称,而不是接收一个 PermutationGroup 类的实例,然后还需要通过检查各种属性来确定它是哪个群,这需要额外的工作。

名称是本模块中定义的 Enum 类的实例。有了名称后,可以使用名称的 get_perm_group 方法来检索一个 PermutationGroup

本模块中用于组的名称取自 [1]。

引用

[1]

Cohen, H. 计算代数数论课程.

class sympy.combinatorics.galois.S6TransitiveSubgroups(value)[源代码][源代码]

S6 的传递子群的名称。

class sympy.combinatorics.galois.S5TransitiveSubgroups(value)[源代码][源代码]

S5 的传递子群的名称。

class sympy.combinatorics.galois.S4TransitiveSubgroups(value)[源代码][源代码]

S4 的传递子群的名称。

class sympy.combinatorics.galois.S3TransitiveSubgroups(value)[源代码][源代码]

S3 的传递子群的名称。

class sympy.combinatorics.galois.S2TransitiveSubgroups(value)[源代码][源代码]

S2 的传递子群的名称。

class sympy.combinatorics.galois.S1TransitiveSubgroups(value)[源代码][源代码]

S1 的传递子群的名称。

sympy.combinatorics.galois.four_group()[源代码][源代码]

返回Klein四群作为S4的传递子群的表示。

sympy.combinatorics.galois.M20()[源代码][源代码]

返回元循环群 M20 的表示,这是 S5 的一个传递子群,也是多项式度数为 5 的可能伽罗瓦群之一。

注释

参见 [1],第 323 页。

sympy.combinatorics.galois.S3_in_S6()[源代码][源代码]

返回 S3 作为 S6 的传递子群的表示。

注释

这种表示是通过将该群视为三角棱柱的对称性来找到的。

sympy.combinatorics.galois.A4_in_S6()[源代码][源代码]

返回 A4 作为 S6 的传递子群的表示。

注释

这是使用 find_transitive_subgroups_of_S6() 计算的。

sympy.combinatorics.galois.S4m()[源代码][源代码]

返回 S6 的 S4- 传递子群的表示。

注释

这是使用 find_transitive_subgroups_of_S6() 计算的。

sympy.combinatorics.galois.S4p()[源代码][源代码]

返回 S6 的 S4+ 传递子群的表示。

注释

这是使用 find_transitive_subgroups_of_S6() 计算的。

sympy.combinatorics.galois.A4xC2()[源代码][源代码]

返回 S6 中 (A4 x C2) 传递子群的表示。

注释

这是使用 find_transitive_subgroups_of_S6() 计算的。

sympy.combinatorics.galois.S4xC2()[源代码][源代码]

返回 S6 的 (S4 x C2) 传递子群的表示。

注释

这是使用 find_transitive_subgroups_of_S6() 计算的。

sympy.combinatorics.galois.G18()[源代码][源代码]

返回群 G18 的表示,这是 S6 的一个传递子群,与 C3^2 和 C2 的半直积同构。

注释

这是使用 find_transitive_subgroups_of_S6() 计算的。

sympy.combinatorics.galois.G36m()[源代码][源代码]

返回群 G36- 的表示,这是 S6 的一个传递子群,同构于 C3^2 与 C2^2 的半直积。

注释

这是使用 find_transitive_subgroups_of_S6() 计算的。

sympy.combinatorics.galois.G36p()[源代码][源代码]

返回群 G36+ 的表示,这是 S6 的一个传递子群,同构于 C3^2 与 C4 的半直积。

注释

这是使用 find_transitive_subgroups_of_S6() 计算的。

sympy.combinatorics.galois.G72()[源代码][源代码]

返回群 G72 的表示,这是 S6 的一个传递子群,同构于 C3^2 与 D4 的半直积。

注释

参见 [1], 第325页。

sympy.combinatorics.galois.PSL2F5()[源代码][源代码]

返回群 \(PSL_2(\mathbb{F}_5)\) 的表示,作为 S6 的传递子群,同构于 \(A_5\)

注释

这是使用 find_transitive_subgroups_of_S6() 计算的。

sympy.combinatorics.galois.PGL2F5()[源代码][源代码]

返回群 \(PGL_2(\mathbb{F}_5)\) 的表示,作为 S6 的传递子群,同构于 \(S_5\)

注释

参见 [1], 第325页。

sympy.combinatorics.galois.find_transitive_subgroups_of_S6(
*targets,
print_report=False,
)[源代码][源代码]

搜索 \(S_6\) 的某些传递子群。

对称群 \(S_6\) 有 16 个不同的传递子群,直到共轭为止。有些比其他的更容易构造。例如,二面体群 \(D_6\) 可以立即找到,但如何实现 \(S_4\)\(S_5\)\(S_6\) 中的 传递性 则完全不明显。

在某些情况下,存在已知的构造可以使用。例如,\(S_5\) 同构于 \(PGL_2(\mathbb{F}_5)\),它在射影直线 \(P^1(\mathbb{F}_5)\) 上以自然的方式作用,这是一个阶为6的集合。

然而,在没有这种特殊构造的情况下,我们可以简单地搜索生成器。例如,\(A_4\)\(S_4\) 的传递实例可以通过这种方式在 \(S_6\) 中找到。

一旦我们开始进行此类搜索,那么通过简单的搜索找到那些像 \(S_5\) 这样具有特殊构造的群组可能会更容易(尽管可能不那么优雅)。

此函数在 \(S_6\) 中定位以下子群的传递实例的生成器:

  • \(A_4\)

  • \(S_4^-\) (\(S_4\) 不包含在 \(A_6\) 内)

  • \(S_4^+\) (\(S_4\) 包含于 \(A_6\) 中)

  • \(A_4 imes C_2\)

  • \(S_4 imes C_2\)

  • \(G_{18} = C_3^2 times C_2\)

  • \(G_{36}^- = C_3^2 times C_2^2\)

  • \(G_{36}^+ = C_3^2 times C_4\)

  • \(G_{72} = C_3^2 times D_4\)

  • \(A_5\)

  • \(S_5\)

注意:这些组中的每一个在这个模块中都有一个专门的功能,该功能使用通过此搜索过程找到的生成器立即返回该组。

搜索过程作为这些生成器如何被找到的记录。此外,由于置换群元素生成的随机性,可以再次调用它,以便(可能)为相同的群获得不同的生成器。

参数:
目标 : S6TransitiveSubgroups 值的列表列表

你想要查找的群组。

print_reportbool (默认 False)

如果为真,则将每个组找到的生成器打印到标准输出。

返回:
dict

targets 中的每个名称映射到找到的 PermutationGroup

参考文献