groups · DoubleCoset¶
7 accepted declarations. Python and Rust forms, contracts, evidence, failure boundaries, and checked usages are kept together below.
Worked example¶
The complete checked program Decompose a polynomial by a nonstandard positive grading uses this API directly.
# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Decompose a polynomial by a nonstandard positive grading."""
from noether import Z
from noether.commalg import PolynomialRing, WeightedGrading
def main() -> None:
ring = PolynomialRing(Z, ["x", "y", "z"], grading=WeightedGrading([1, 2, 3]))
x, y, z = ring.generators()
sparse = ring.from_terms([([0, 0, 0], 1), ([2, 0, 0], 1), ([0, 1, 0], 1)])
polynomial = sparse + z
assert sparse * (x + y) == (1 + x**2 + y) * (x + y)
components = polynomial.homogeneous_components()
assert [degree for degree, _ in components] == [0, 2, 3]
assert x**2 + y == components[1][1]
print(f"weighted homogeneous degrees: {[degree for degree, _ in components]}")
if __name__ == "__main__":
main()
Run it with .venv/bin/python examples/14_weighted_polynomials.py.
groups.DoubleCoset¶
One exact double coset of two subgroups in a concrete ambient group.
noether::groups::DoubleCoset · 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/DoubleCoset@1 |
Executable usage: validation/unit/groups/test_acceptance_workload.py:10 · validation/unit/groups/test_acceptance_workload.py:145 · validation/unit/groups/test_acceptance_workload.py:148
groups.DoubleCoset.degree¶
Degree of the common permutation action.
noether::groups::DoubleCoset::degree · 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/DoubleCoset@1 |
Executable usage: examples/14_weighted_polynomials.py:16 · examples/14_weighted_polynomials.py:18 · examples/15_groebner_twisted_cubic.py:15 · examples/15_groebner_twisted_cubic.py:28 · examples/31_local_fields_and_precision.py:37 · examples/33_simplicial_cohomology_operations.py:26
groups.DoubleCoset.inverse_representative¶
Canonical representative of the inverse double coset for equal subgroups.
Detailed contract
Canonical representative of the inverse double coset when the left and right subgroups are equal.
noether::groups::DoubleCoset::inverse_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/DoubleCoset@1 |
groups.DoubleCoset.representative¶
Canonical ambient-group representative.
Detailed contract
Canonical element representing this double coset.
noether::groups::DoubleCoset::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/DoubleCoset@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.DoubleCoset.right_coset_count¶
Number of right-subgroup cosets in this double coset.
Detailed contract
Number of right-subgroup cosets contained in this double coset.
noether::groups::DoubleCoset::right_coset_count · 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/DoubleCoset@1 |
Executable usage: validation/unit/groups/test_acceptance_workload.py:146
groups.DoubleCoset.size¶
Exact number of ambient elements in this double coset.
Detailed contract
Exact number of ambient group elements in this double coset.
noether::groups::DoubleCoset::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/DoubleCoset@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.DoubleCoset.verify¶
Recompute this double coset and verify its evidence.
Detailed contract
Recompute and verify this double coset exactly.
noether::groups::DoubleCoset::verify · 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/DoubleCoset@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