groups · ConjugacyClass¶
7 accepted declarations. Python and Rust forms, contracts, evidence, failure boundaries, and checked usages are kept together below.
Worked example¶
The complete checked program Compute all conjugacy classes of A5 and verify orbit-stabilizer uses this API directly.
# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Compute all conjugacy classes of A5 and verify orbit-stabilizer."""
from noether.groups import Permutation, PermutationGroup
def main() -> None:
group = PermutationGroup.from_generators(
5,
[Permutation.from_images([1, 2, 0, 3, 4]), Permutation.from_images([1, 2, 3, 4, 0])],
)
classes = group.conjugacy_classes()
for conjugacy_class in classes:
conjugacy_class.verify()
assert conjugacy_class.centralizer().order * conjugacy_class.size == group.order
assert sorted(conjugacy_class.size for conjugacy_class in classes) == [1, 12, 12, 15, 20]
print(f"A5 conjugacy-class sizes: {[value.size for value in classes]}")
if __name__ == "__main__":
main()
Run it with .venv/bin/python examples/20_conjugacy_classes.py.
groups.ConjugacyClass¶
One exact conjugacy class in a concrete permutation group.
noether::groups::ConjugacyClass · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, perm-core |
| GIL | attached / bounded |
| Semantic ID | noether/groups/ConjugacyClass@1 |
Executable usage: validation/unit/groups/test_acceptance_workload.py:79 · validation/unit/groups/test_acceptance_workload.py:9 · validation/unit/groups/test_conjugacy.py:13 · validation/unit/groups/test_conjugacy.py:37 · validation/unit/groups/test_conjugacy.py:51 · validation/unit/groups/test_conjugacy.py:52
groups.ConjugacyClass.centralizer¶
Centralizer of the representative inside the source group.
noether::groups::ConjugacyClass::centralizer · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, perm-core |
| GIL | released |
| Semantic ID | noether/groups/ConjugacyClass@1 |
Executable usage: examples/20_conjugacy_classes.py:16 · validation/unit/groups/test_acceptance_workload.py:83 · validation/unit/groups/test_conjugacy.py:43 · validation/unit/groups/test_conjugacy.py:64 · validation/parity/groups/test_perm_core_gap_parity.py:111 · validation/parity/groups/test_perm_core_gap_parity.py:8
groups.ConjugacyClass.elements¶
Class elements in deterministic order, materialized lazily.
Detailed contract
Class elements in lexicographic image-vector order, materialized lazily.
noether::groups::ConjugacyClass::elements · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, perm-core |
| GIL | released |
| Semantic ID | noether/groups/ConjugacyClass@1 |
Executable usage: examples/28_steiner_categories.py:26 · validation/unit/groups/test_acceptance_workload.py:135 · validation/unit/groups/test_acceptance_workload.py:166 · validation/unit/groups/test_acceptance_workload.py:93 · validation/unit/groups/test_acceptance_workload.py:94 · validation/unit/groups/test_acceptance_workload.py:95
groups.ConjugacyClass.group¶
The source permutation group.
Detailed contract
The group in which conjugacy is being computed.
noether::groups::ConjugacyClass::group · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, perm-core |
| GIL | attached / bounded |
| Semantic ID | noether/groups/ConjugacyClass@1 |
Executable usage: examples/19_permutation_groups.py:13 · examples/19_permutation_groups.py:14 · examples/19_permutation_groups.py:15 · examples/19_permutation_groups.py:16 · examples/19_permutation_groups.py:17 · examples/19_permutation_groups.py:18
groups.ConjugacyClass.representative¶
Canonical representative of the class.
Detailed contract
Lexicographically least element of the class.
noether::groups::ConjugacyClass::representative · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, perm-core |
| GIL | attached / bounded |
| Semantic ID | noether/groups/ConjugacyClass@1 |
Executable usage: validation/unit/commalg/test_residue_ring_facade.py:101 · validation/unit/commalg/test_residue_ring_facade.py:110 · validation/unit/commalg/test_residue_ring_facade.py:129 · validation/unit/commalg/test_residue_ring_facade.py:26 · validation/unit/commalg/test_residue_ring_facade.py:80 · validation/unit/groups/test_acceptance_workload.py:125
groups.ConjugacyClass.size¶
Exact class size as a Python integer.
Detailed contract
Exact class size.
noether::groups::ConjugacyClass::size · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, perm-core |
| GIL | attached / bounded |
| Semantic ID | noether/groups/ConjugacyClass@1 |
Executable usage: examples/20_conjugacy_classes.py:16 · examples/20_conjugacy_classes.py:17 · examples/20_conjugacy_classes.py:18 · examples/distributed/f2_linear_algebra.py:14 · examples/distributed/f2_linear_algebra.py:60 · validation/unit/combinatorics/test_partition_composition.py:15
groups.ConjugacyClass.verify¶
Recompute the conjugation orbit and orbit-centralizer identity.
Detailed contract
Recompute the orbit under conjugation and its centralizer identity.
noether::groups::ConjugacyClass::verify · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, perm-core |
| GIL | released |
| Semantic ID | noether/groups/ConjugacyClass@1 |
Executable usage: examples/01_bezout_certificates.py:10 · examples/01_bezout_certificates.py:3 · examples/03_exact_linear_systems.py:13 · examples/03_exact_linear_systems.py:3 · examples/04_smith_normal_form.py:12 · examples/06_shortest_lattice_vectors.py:12