Skip to content

homalg · FiniteGroupIntegralCohomologyTruncation

9 accepted declarations. Python and Rust forms, contracts, evidence, failure boundaries, and checked usages are kept together below.

Worked example

The complete checked program Construct S4 natively and inspect its stabilizer chain consequences uses this API directly.

# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Construct S4 natively and inspect its stabilizer chain consequences."""

from noether.groups import Permutation, PermutationGroup


def main() -> None:
    group = PermutationGroup.from_generators(
        4,
        [Permutation.from_images([1, 0, 2, 3]), Permutation.from_images([1, 2, 3, 0])],
    )
    assert group.order == 24
    assert group.is_transitive
    assert group.stabilizer(0).order == 6
    random = group.uniform_random_element(seed=2026)
    assert random.element in group
    print(f"|S4|={group.order}; |Stab(0)|={group.stabilizer(0).order}; sample={random.element}")


if __name__ == "__main__":
    main()

Run it with .venv/bin/python examples/19_permutation_groups.py.

homalg.FiniteGroupIntegralCohomologyTruncation

Exact initial segment of a finite group's integral cohomology ring.

class FiniteGroupIntegralCohomologyTruncation

noether::homalg::FiniteGroupIntegralCohomologyTruncation · Direct Rust declaration

pub struct FiniteGroupIntegralCohomologyTruncation { /* private fields */ }
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, m4rst, m4rste, module-core, resolution-kernel, sparla
GIL attached / bounded
Semantic ID noether/homalg/FiniteGroupIntegralCohomologyTruncation@1

Executable usage: validation/unit/homalg/test_finite_group_cohomology.py:18 · validation/unit/homalg/test_finite_group_cohomology.py:59

homalg.FiniteGroupIntegralCohomologyTruncation.additive_group

Compute additive group for this FiniteGroupIntegralCohomologyTruncation.

Detailed contract

Canonical additive group in one cohomological degree.

(self, degree: int) -> FinitelyGeneratedAbelianGroup

noether::homalg::FiniteGroupIntegralCohomologyTruncation::additive_group · Direct Rust declaration

pub fn additive_group( &self, degree: usize, ) -> Result<&FinitelyGeneratedAbelianGroup, FiniteGroupIntegralCohomologyError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, m4rst, m4rste, module-core, resolution-kernel, sparla
GIL attached / bounded
Semantic ID noether/homalg/FiniteGroupIntegralCohomologyTruncation@1

Executable usage: validation/unit/homalg/test_finite_group_cohomology.py:119 · validation/unit/homalg/test_finite_group_cohomology.py:61 · validation/unit/homalg/test_finite_group_cohomology.py:82 · validation/unit/homalg/test_finite_group_cohomology.py:83 · validation/unit/topology/test_eilenberg_maclane.py:101 · validation/unit/topology/test_eilenberg_maclane.py:114

homalg.FiniteGroupIntegralCohomologyTruncation.basis_cocycles

Compute basis cocycles for this FiniteGroupIntegralCohomologyTruncation.

Detailed contract

Deterministic normalized-bar cocycles for the canonical summands. The scalable universal low-degree strategy returns None: it certifies the groups theoremically without materializing bar cochains.

(self, degree: int) -> list[Vector[IntegerRing]] | None

noether::homalg::FiniteGroupIntegralCohomologyTruncation::basis_cocycles · Direct Rust declaration

pub fn basis_cocycles( &self, degree: usize, ) -> Result<Option<&[Vector<IntegerRing>]>, FiniteGroupIntegralCohomologyError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, m4rst, m4rste, module-core, resolution-kernel, sparla
GIL attached / bounded
Semantic ID noether/homalg/FiniteGroupIntegralCohomologyTruncation@1

Executable usage: validation/unit/homalg/test_finite_group_cohomology.py:133 · validation/unit/homalg/test_finite_group_cohomology.py:64

homalg.FiniteGroupIntegralCohomologyTruncation.basis_cup_product

Compute basis cup product for this FiniteGroupIntegralCohomologyTruncation.

Detailed contract

Canonical coordinates of the cup product of two basis summands. Torsion coordinates are reduced to the interval [0, order). Free coordinates are exact integers.

(self, left_degree: int, left_index: int, right_degree: int, right_index: int) -> list[int]

noether::homalg::FiniteGroupIntegralCohomologyTruncation::basis_cup_product · Direct Rust declaration

pub fn basis_cup_product( &self, left_degree: usize, left_index: usize, right_degree: usize, right_index: usize, ) -> Result<Vec<Integer>, FiniteGroupIntegralCohomologyError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, m4rst, m4rste, module-core, resolution-kernel, sparla
GIL attached / bounded
Semantic ID noether/homalg/FiniteGroupIntegralCohomologyTruncation@1

Executable usage: validation/unit/homalg/test_finite_group_cohomology.py:134 · validation/unit/homalg/test_finite_group_cohomology.py:142 · validation/unit/homalg/test_finite_group_cohomology.py:143 · validation/unit/homalg/test_finite_group_cohomology.py:241 · validation/unit/homalg/test_finite_group_cohomology.py:245 · validation/unit/homalg/test_finite_group_cohomology.py:262

homalg.FiniteGroupIntegralCohomologyTruncation.basis_orders

Compute basis orders for this FiniteGroupIntegralCohomologyTruncation.

Detailed contract

Orders of the canonical basis summands; None denotes a free summand.

(self, degree: int) -> list[int | None]

noether::homalg::FiniteGroupIntegralCohomologyTruncation::basis_orders · Direct Rust declaration

pub fn basis_orders( &self, degree: usize, ) -> Result<&[Option<Integer>], FiniteGroupIntegralCohomologyError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, m4rst, m4rste, module-core, resolution-kernel, sparla
GIL attached / bounded
Semantic ID noether/homalg/FiniteGroupIntegralCohomologyTruncation@1

Executable usage: validation/unit/homalg/test_finite_group_cohomology.py:62

homalg.FiniteGroupIntegralCohomologyTruncation.group

Return the group recorded by this FiniteGroupIntegralCohomologyTruncation.

Detailed contract

Supplied concrete permutation group.

(self) -> PermutationGroup

noether::homalg::FiniteGroupIntegralCohomologyTruncation::group · Direct Rust declaration

pub const fn group(&self) -> &PermutationGroup
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, m4rst, m4rste, module-core, resolution-kernel, sparla
GIL attached / bounded
Semantic ID noether/homalg/FiniteGroupIntegralCohomologyTruncation@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

homalg.FiniteGroupIntegralCohomologyTruncation.max_degree

Return the max degree recorded by this FiniteGroupIntegralCohomologyTruncation.

Detailed contract

Largest cohomological degree computed exactly.

(self) -> int

noether::homalg::FiniteGroupIntegralCohomologyTruncation::max_degree · Direct Rust declaration

pub const fn max_degree(&self) -> usize
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, m4rst, m4rste, module-core, resolution-kernel, sparla
GIL attached / bounded
Semantic ID noether/homalg/FiniteGroupIntegralCohomologyTruncation@1

Executable usage: validation/unit/homalg/test_finite_group_cohomology.py:130 · validation/unit/homalg/test_finite_group_cohomology.py:152 · validation/unit/homalg/test_finite_group_cohomology.py:153 · validation/unit/homalg/test_finite_group_cohomology.py:173 · validation/unit/topology/test_eilenberg_maclane.py:48 · validation/parity/groups/test_finite_group_cohomology_hap_parity.py:41

homalg.FiniteGroupIntegralCohomologyTruncation.resolution_strategy

Return the resolution strategy recorded by this FiniteGroupIntegralCohomologyTruncation.

Detailed contract

Exact mathematical strategy used by this calculation.

(self) -> Literal['normalized_bar', 'universal_low_degree']

noether::homalg::FiniteGroupIntegralCohomologyTruncation::resolution_strategy · Direct Rust declaration

pub const fn resolution_strategy(&self) -> FiniteGroupIntegralResolutionStrategy
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, m4rst, m4rste, module-core, resolution-kernel, sparla
GIL attached / bounded
Semantic ID noether/homalg/FiniteGroupIntegralCohomologyTruncation@1

Executable usage: validation/unit/homalg/test_finite_group_cohomology.py:131 · validation/unit/homalg/test_finite_group_cohomology.py:237 · validation/unit/homalg/test_finite_group_cohomology.py:260 · validation/unit/homalg/test_finite_group_cohomology.py:60

homalg.FiniteGroupIntegralCohomologyTruncation.verify

Replay and verify the mathematical evidence carried by this FiniteGroupIntegralCohomologyTruncation.

Detailed contract

Recompute all exact evidence retained by this object.

(self) -> None

noether::homalg::FiniteGroupIntegralCohomologyTruncation::verify · Direct Rust declaration

pub fn verify(&self) -> Result<(), VerificationError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, m4rst, m4rste, module-core, resolution-kernel, sparla
GIL attached / bounded
Semantic ID noether/homalg/FiniteGroupIntegralCohomologyTruncation@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