Skip to content

groups · Transversal

4 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.Transversal

A transversal of Stab_G(point) in G, paired with the orbit it indexes.

class Transversal

noether::groups::Transversal · Direct Rust declaration

pub struct Transversal { pub base: u32, pub orbit: Vec<u32>, pub reps: Vec<Perm>, }
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, perm-core
GIL attached / bounded

Executable usage: validation/unit/groups/test_acceptance_workload.py:21 · validation/unit/groups/test_acceptance_workload.py:48

groups.Transversal.base

The base point of this transversal.

(self) -> int

noether::groups::Transversal · Python projection

Python projection convenience over this Rust mathematical type
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, perm-core
GIL attached / bounded

Executable usage: validation/unit/commalg/test_acceptance_workload.py:59 · validation/unit/commalg/test_acceptance_workload.py:60 · validation/unit/commalg/test_base_change.py:112 · validation/unit/commalg/test_base_change.py:113 · validation/unit/commalg/test_polynomial_ideal_facade.py:398 · validation/unit/commalg/test_polynomial_ideal_facade.py:399

groups.Transversal.orbit

The orbit base^G, in BFS-from-base order.

Detailed contract

The orbit base^G, in BFS-from-base order. list[int].

(self) -> list[int]

noether::groups::Transversal · Python projection

Python projection convenience over this Rust mathematical type
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, perm-core
GIL attached / bounded

Executable usage: examples/20_conjugacy_classes.py:3 · validation/unit/groups/test_acceptance_workload.py:125 · validation/unit/groups/test_acceptance_workload.py:126 · validation/unit/groups/test_acceptance_workload.py:127 · validation/unit/groups/test_acceptance_workload.py:128 · validation/unit/groups/test_acceptance_workload.py:129

groups.Transversal.reps

The coset representatives, list[Permutation] of the same length as orbit.

Detailed contract

The coset representatives, list[Permutation] of the same length as orbit. reps[i] maps base to orbit[i].

(self) -> list[Permutation]

noether::groups::Transversal · Python projection

Python projection convenience over this Rust mathematical type
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, perm-core
GIL attached / bounded

Executable usage: validation/unit/groups/test_acceptance_workload.py:51 · validation/parity/_noether_bsgs.py:136