Skip to content

homalg · FiniteGroupCohomologyAlgebraTruncation

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

Worked example

The complete checked program Certify a complete presentation of the mod-two cohomology of C2 uses this API directly.

# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Certify a complete presentation of the mod-two cohomology of C2."""

from noether.groups import Permutation, PermutationGroup


def main() -> None:
    transposition = Permutation.from_images([1, 0])
    cyclic_two = PermutationGroup.from_generators(2, [transposition])
    truncation = cyclic_two.modular_cohomology(2, 2)
    truncation.verify()
    assert [truncation.dimension(degree) for degree in range(3)] == [1, 1, 1]

    complete = truncation.algebra_truncation().certify_symonds_universal_bound()
    complete.verify()
    assert complete.completion_strategy == "symonds_universal_bound"
    print(
        f"H^0..2(C2; F2) dimensions="
        f"{[truncation.dimension(degree) for degree in range(3)]}; "
        f"completion={complete.completion_strategy}"
    )


if __name__ == "__main__":
    main()

Run it with .venv/bin/python examples/34_finite_group_cohomology.py.

homalg.FiniteGroupCohomologyAlgebraTruncation

Minimal generators and all relations visible in an exact cohomology range.

class FiniteGroupCohomologyAlgebraTruncation

noether::homalg::FiniteGroupCohomologyAlgebraTruncation · Direct Rust declaration

pub struct FiniteGroupCohomologyAlgebraTruncation { /* 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/FiniteGroupCohomologyAlgebraTruncation@1

Executable usage: validation/unit/homalg/test_finite_group_cohomology.py:13 · validation/unit/homalg/test_finite_group_cohomology.py:150 · validation/unit/homalg/test_finite_group_cohomology.py:151

homalg.FiniteGroupCohomologyAlgebraTruncation.certify_symonds_parameter_criterion

Promote using exact elementary-abelian restriction evidence and Symonds's parameter criterion.

Detailed contract

Promote using exact elementary-abelian restriction evidence and Symonds's parameter criterion.

Certify this quotient as the complete cohomology ring using Symonds’s parameter criterion. Candidate parameters are selected deterministically from the minimal algebra generators. Parameterhood in the actual group cohomology is proved by exact restriction to every maximal elementary abelian p-subgroup of a Sylow subgroup. The operation then proves that the current algebra approximation is finite over those parameters and checks Symonds’s stopping inequality. It fails closed if the retained exact range or resolution model cannot supply all of that evidence.

(self) -> FiniteGroupCohomologyCompletePresentation

noether::homalg::FiniteGroupCohomologyAlgebraTruncation::certify_symonds_parameter_criterion · Direct Rust declaration

pub fn certify_symonds_parameter_criterion( &self, ) -> Result<FiniteGroupCohomologyCompletePresentation, FiniteGroupCohomologyError>
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/FiniteGroupCohomologyAlgebraTruncation@1

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

homalg.FiniteGroupCohomologyAlgebraTruncation.certify_symonds_universal_bound

Promote to a complete presentation using Symonds's universal bounds.

Detailed contract

Certify this quotient as the complete cohomology ring using Symonds’s universal generator and relation bounds. For a finite group G, generators occur in degrees at most |G|-1 and relations in degrees at most 2(|G|-1). This operation fails closed unless the retained exact range reaches the latter bound.

(self) -> FiniteGroupCohomologyCompletePresentation

noether::homalg::FiniteGroupCohomologyAlgebraTruncation::certify_symonds_universal_bound · Direct Rust declaration

pub fn certify_symonds_universal_bound( &self, ) -> Result<FiniteGroupCohomologyCompletePresentation, FiniteGroupCohomologyError>
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/FiniteGroupCohomologyAlgebraTruncation@1

Executable usage: examples/34_finite_group_cohomology.py:15 · validation/unit/homalg/test_finite_group_cohomology.py:169 · validation/unit/homalg/test_finite_group_cohomology.py:183

homalg.FiniteGroupCohomologyAlgebraTruncation.cohomology

Source exact cohomology truncation.

(self) -> FiniteGroupCohomologyTruncation

noether::homalg::FiniteGroupCohomologyAlgebraTruncation::cohomology · Direct Rust declaration

pub const fn cohomology(&self) -> &FiniteGroupCohomologyTruncation
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/FiniteGroupCohomologyAlgebraTruncation@1

Executable usage: examples/33_simplicial_cohomology_operations.py:24 · examples/33_simplicial_cohomology_operations.py:25 · examples/33_simplicial_cohomology_operations.py:26 · examples/33_simplicial_cohomology_operations.py:27 · examples/33_simplicial_cohomology_operations.py:3 · examples/33_simplicial_cohomology_operations.py:30

homalg.FiniteGroupCohomologyAlgebraTruncation.generators

Deterministic minimal homogeneous generators.

Detailed contract

Deterministic minimal homogeneous generator family.

(self) -> list[FiniteGroupCohomologyAlgebraGenerator]

noether::homalg::FiniteGroupCohomologyAlgebraTruncation::generators · Direct Rust declaration

pub fn generators(&self) -> &[FiniteGroupCohomologyAlgebraGenerator]
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/FiniteGroupCohomologyAlgebraTruncation@1

Executable usage: examples/14_weighted_polynomials.py:11 · examples/15_groebner_twisted_cubic.py:11 · examples/15_groebner_twisted_cubic.py:19 · examples/17_weighted_power_series.py:15 · examples/18_finite_field_schemes.py:12 · examples/30_modules_and_resolutions.py:20

homalg.FiniteGroupCohomologyAlgebraTruncation.max_degree

Largest degree in which the presentation is exact.

Detailed contract

Largest degree in which the generators and relation ideal are exact.

(self) -> int

noether::homalg::FiniteGroupCohomologyAlgebraTruncation::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/FiniteGroupCohomologyAlgebraTruncation@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.FiniteGroupCohomologyAlgebraTruncation.presentation

Quotient presentation exact through max_degree only.

Detailed contract

Graded-commutative quotient whose relation ideal is exact through the retained degree bound.

(self) -> GradedCommutativePresentation

noether::homalg::FiniteGroupCohomologyAlgebraTruncation::presentation · Direct Rust declaration

pub const fn presentation(&self) -> &GradedCommutativePresentation
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/FiniteGroupCohomologyAlgebraTruncation@1

Executable usage: examples/34_finite_group_cohomology.py:3 · validation/unit/category/test_category.py:70 · validation/unit/category/test_category.py:71 · validation/unit/category/test_category.py:72 · validation/unit/commalg/test_graded_commutative_facade.py:24 · validation/unit/commalg/test_graded_commutative_facade.py:25

homalg.FiniteGroupCohomologyAlgebraTruncation.verify

Recompute generator selection and relation extraction.

Detailed contract

Recompute generator selection and every relation from the retained cohomology multiplication table.

(self) -> None

noether::homalg::FiniteGroupCohomologyAlgebraTruncation::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/FiniteGroupCohomologyAlgebraTruncation@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