Skip to content

topology · SimplicialSetCohomologyRing

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

Worked example

The complete checked program Compute the mod-two cohomology ring of RP2 and its Steenrod square uses this API directly.

# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Compute the mod-two cohomology ring of RP2 and its Steenrod square."""

from noether.numthy import FiniteField
from noether.topology import AdmissibleCohomologyOperation, SimplicialComplex


def main() -> None:
    projective_plane = SimplicialComplex(
        [
            [0, 1, 2],
            [0, 1, 4],
            [0, 2, 3],
            [0, 3, 5],
            [0, 4, 5],
            [1, 2, 5],
            [1, 3, 4],
            [1, 3, 5],
            [2, 3, 4],
            [2, 4, 5],
        ]
    )
    cohomology = projective_plane.cohomology_ring(FiniteField.prime(2))
    cohomology.verify()
    assert [basis.degree for basis in cohomology.basis] == [0, 1, 2]
    assert cohomology.product(1, 1)[0].basis == 2

    square = AdmissibleCohomologyOperation.steenrod_square(1)
    image = cohomology.apply_operation(square, 1)
    assert image[0].basis == 2 and int(image[0].coefficient) == 1
    print(f"H*(RP2; F2) degrees={[basis.degree for basis in cohomology.basis]}; Sq^1(h)=h^2")


if __name__ == "__main__":
    main()

Run it with .venv/bin/python examples/33_simplicial_cohomology_operations.py.

topology.SimplicialSetCohomologyRing

Complete normalized cohomology algebra of a finite simplicial set.

class SimplicialSetCohomologyRing

noether::topology::SimplicialSetCohomologyRing · Direct Rust declaration

pub struct SimplicialSetCohomologyRing { /* private fields */ }
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/SimplicialSetCohomologyRing@1

Executable usage: validation/unit/topology/test_simplicial_set_facade.py:161 · validation/unit/topology/test_simplicial_set_facade.py:166 · validation/unit/topology/test_simplicial_set_facade.py:21

topology.SimplicialSetCohomologyRing.apply_operation

Compute apply operation for this SimplicialSetCohomologyRing.

Detailed contract

Apply one typed admissible Steenrod word to a canonical basis class. The rightmost operation acts first, and every intermediate cocycle is reduced into the canonical normalized cohomology basis.

(self, operation: AdmissibleCohomologyOperation, source: int) -> list[SimplicialCohomologyProductTerm]

noether::topology::SimplicialSetCohomologyRing::apply_operation · Direct Rust declaration

pub fn apply_operation( &self, operation: &AdmissibleCohomologyOperation, source_index: usize, ) -> Result<Vec<SimplicialCohomologyProductTerm>, TopologyError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/SimplicialSetCohomologyRing@1

Executable usage: examples/33_simplicial_cohomology_operations.py:30 · validation/unit/topology/test_simplicial_complex_facade.py:197 · validation/unit/topology/test_simplicial_set_facade.py:192

topology.SimplicialSetCohomologyRing.basis

Return the basis recorded by this SimplicialSetCohomologyRing.

Detailed contract

Canonical basis, ordered first by degree and then by quotient pivot.

(self) -> list[SimplicialCohomologyBasisElement]

noether::topology::SimplicialSetCohomologyRing::basis · Direct Rust declaration

pub fn basis(&self) -> &[SimplicialCohomologyBasisElement]
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/SimplicialSetCohomologyRing@1

Executable usage: examples/26_elliptic_descent_functions.py:28 · examples/30_modules_and_resolutions.py:27 · examples/30_modules_and_resolutions.py:28 · examples/30_modules_and_resolutions.py:29 · examples/33_simplicial_cohomology_operations.py:26 · examples/33_simplicial_cohomology_operations.py:27

topology.SimplicialSetCohomologyRing.bockstein_reduced_power

Compute bockstein reduced power for this SimplicialSetCohomologyRing.

Detailed contract

Odd-primary operation beta P^power on one canonical cohomology-basis class.

(self, power: int, source: int) -> list[SimplicialCohomologyProductTerm]

noether::topology::SimplicialSetCohomologyRing::bockstein_reduced_power · Direct Rust declaration

pub fn bockstein_reduced_power( &self, power: usize, source_index: usize, ) -> Result<Vec<SimplicialCohomologyProductTerm>, TopologyError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/SimplicialSetCohomologyRing@1

Executable usage: validation/unit/infra/test_discovery.py:141 · validation/unit/infra/test_discovery.py:149 · validation/unit/topology/test_simplicial_set_facade.py:186 · validation/unit/topology/test_simplicial_set_facade.py:190 · validation/unit/topology/test_simplicial_set_facade.py:191

topology.SimplicialSetCohomologyRing.field

Return the field recorded by this SimplicialSetCohomologyRing.

Detailed contract

Exact coefficient field.

(self) -> FiniteField

noether::topology::SimplicialSetCohomologyRing::field · Direct Rust declaration

pub fn field(&self) -> &FiniteField
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/SimplicialSetCohomologyRing@1

Executable usage: examples/08_finite_field_extensions.py:10 · examples/08_finite_field_extensions.py:11 · examples/08_finite_field_extensions.py:12 · examples/08_finite_field_extensions.py:13 · examples/08_finite_field_extensions.py:14 · examples/08_finite_field_extensions.py:3

topology.SimplicialSetCohomologyRing.from_json

Deserialize and revalidate a SimplicialSetCohomologyRing from typed JSON.

Detailed contract

Deserialize and exactly revalidate a simplicial-set cohomology ring.

(cls, value: str) -> SimplicialSetCohomologyRing

noether::topology::SimplicialSetCohomologyRing::from_json · Direct Rust declaration

pub fn from_json(value: &str) -> Result<Self, NoetherError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/SimplicialSetCohomologyRing@1

Executable usage: validation/unit/category/test_category.py:14 · validation/unit/combin/test_acceptance_workload.py:65 · validation/unit/combin/test_acceptance_workload.py:86 · validation/unit/combin/test_graph_facade.py:106 · validation/unit/combin/test_graph_facade.py:25 · validation/unit/combinatorics/test_kashiwara_crystal.py:32

topology.SimplicialSetCohomologyRing.presentation

Return the presentation recorded by this SimplicialSetCohomologyRing.

Detailed contract

Complete connected quotient presentation, when H^0 is the coefficient field.

(self) -> GradedCommutativePresentation | None

noether::topology::SimplicialSetCohomologyRing::presentation · Direct Rust declaration

pub fn presentation(&self) -> Option<&GradedCommutativePresentation>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/SimplicialSetCohomologyRing@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

topology.SimplicialSetCohomologyRing.product

Compute product for this SimplicialSetCohomologyRing.

Detailed contract

Return a basis product in either order, applying its Koszul sign.

(self, left: int, right: int) -> list[SimplicialCohomologyProductTerm]

noether::topology::SimplicialSetCohomologyRing::product · Direct Rust declaration

pub fn product( &self, left: usize, right: usize, ) -> Result<Vec<SimplicialCohomologyProductTerm>, TopologyError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/SimplicialSetCohomologyRing@1

Executable usage: examples/33_simplicial_cohomology_operations.py:27 · validation/unit/combin/test_acceptance_workload.py:41 · validation/unit/combin/test_acceptance_workload.py:43 · validation/unit/combin/test_acceptance_workload.py:44 · validation/unit/combin/test_acceptance_workload.py:45 · validation/unit/commalg/test_polynomial_facade.py:234

topology.SimplicialSetCohomologyRing.products

Return the products recorded by this SimplicialSetCohomologyRing.

Detailed contract

Ordered basis products with left <= right.

(self) -> list[SimplicialCohomologyProduct]

noether::topology::SimplicialSetCohomologyRing::products · Direct Rust declaration

pub fn products(&self) -> &[SimplicialCohomologyProduct]
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/SimplicialSetCohomologyRing@1

Executable usage: validation/bench/macaulay2_derived.py:6 · validation/corpus/linalg/cubic-discriminant-matrix-factorization.py:54

topology.SimplicialSetCohomologyRing.simplicial_set

Return the simplicial set recorded by this SimplicialSetCohomologyRing.

Detailed contract

Source simplicial set in its fixed normalized bases.

(self) -> SimplicialSet

noether::topology::SimplicialSetCohomologyRing::simplicial_set · Direct Rust declaration

pub fn simplicial_set(&self) -> &SimplicialSet
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/SimplicialSetCohomologyRing@1

topology.SimplicialSetCohomologyRing.steenrod_reduced_power

Compute steenrod reduced power for this SimplicialSetCohomologyRing.

Detailed contract

Odd-primary Steenrod reduced power P^power of one canonical cohomology-basis class.

(self, power: int, source: int) -> list[SimplicialCohomologyProductTerm]

noether::topology::SimplicialSetCohomologyRing::steenrod_reduced_power · Direct Rust declaration

pub fn steenrod_reduced_power( &self, power: usize, source_index: usize, ) -> Result<Vec<SimplicialCohomologyProductTerm>, TopologyError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/SimplicialSetCohomologyRing@1

Executable usage: validation/unit/infra/test_discovery.py:140 · validation/unit/infra/test_discovery.py:148 · validation/unit/topology/test_simplicial_set_facade.py:185 · validation/unit/topology/test_simplicial_set_facade.py:189

topology.SimplicialSetCohomologyRing.steenrod_square

Compute steenrod square for this SimplicialSetCohomologyRing.

Detailed contract

Steenrod square of one canonical cohomology-basis class.

(self, square: int, source: int) -> list[SimplicialCohomologyProductTerm]

noether::topology::SimplicialSetCohomologyRing::steenrod_square · Direct Rust declaration

pub fn steenrod_square( &self, square: usize, source_index: usize, ) -> Result<Vec<SimplicialCohomologyProductTerm>, TopologyError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/SimplicialSetCohomologyRing@1

Executable usage: examples/33_simplicial_cohomology_operations.py:29 · validation/unit/infra/test_discovery.py:139 · validation/unit/infra/test_discovery.py:147 · validation/unit/topology/test_simplicial_complex_facade.py:171 · validation/unit/topology/test_simplicial_complex_facade.py:192 · validation/unit/topology/test_simplicial_complex_facade.py:193

topology.SimplicialSetCohomologyRing.to_json

Serialize this SimplicialSetCohomologyRing to its canonical typed JSON representation.

Detailed contract

Serialize the source, field, cocycles, products, and presentation.

(self) -> str

noether::topology::SimplicialSetCohomologyRing::to_json · Direct Rust declaration

pub fn to_json(&self) -> Result<String, NoetherError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/SimplicialSetCohomologyRing@1

Executable usage: validation/unit/category/test_category.py:14 · validation/unit/category/test_category.py:15 · validation/unit/combin/test_acceptance_workload.py:30 · validation/unit/combin/test_acceptance_workload.py:65 · validation/unit/combin/test_acceptance_workload.py:86 · validation/unit/combin/test_graph_facade.py:106

topology.SimplicialSetCohomologyRing.verify

Replay and verify the mathematical evidence carried by this SimplicialSetCohomologyRing.

Detailed contract

Recompute and compare every canonical cocycle, product, and presentation.

(self) -> None

noether::topology::SimplicialSetCohomologyRing::verify · Direct Rust declaration

pub fn verify(&self) -> Result<(), TopologyError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/SimplicialSetCohomologyRing@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