Skip to content

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.

class ConjugacyClass

noether::groups::ConjugacyClass · Direct Rust declaration

pub struct ConjugacyClass { /* private fields */ }
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.

(self) -> PermutationGroup

noether::groups::ConjugacyClass::centralizer · Direct Rust declaration

pub fn centralizer(&self) -> Result<PermGroup, GroupError>
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.

(self) -> list[Permutation]

noether::groups::ConjugacyClass::elements · Direct Rust declaration

pub fn elements(&self) -> &[Perm]
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.

(self) -> PermutationGroup

noether::groups::ConjugacyClass::group · Direct Rust declaration

pub fn group(&self) -> &PermGroup
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.

(self) -> Permutation

noether::groups::ConjugacyClass::representative · Direct Rust declaration

pub fn representative(&self) -> &Perm
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.

(self) -> int

noether::groups::ConjugacyClass::size · Direct Rust declaration

pub fn size(&self) -> BigUInt
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.

(self) -> None

noether::groups::ConjugacyClass::verify · Direct Rust declaration

pub fn verify(&self) -> Result<(), GroupError>
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