Skip to content

topology · SimplicialCohomologyBasisElement

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

topology.SimplicialCohomologyBasisElement

One canonical cohomology class and its simplicial cocycle.

class SimplicialCohomologyBasisElement

noether::topology::SimplicialCohomologyBasisElement · Direct Rust declaration

pub struct SimplicialCohomologyBasisElement { /* 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

topology.SimplicialCohomologyBasisElement.cocycle

Return the cocycle recorded by this SimplicialCohomologyBasisElement.

Detailed contract

Canonical cocycle in the lexicographic simplex basis.

(self) -> Vector[FiniteField]

noether::topology::SimplicialCohomologyBasisElement::cocycle · Direct Rust declaration

pub fn cocycle(&self) -> &Vector<FiniteField>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded

Executable usage: validation/unit/topology/test_simplicial_set_facade.py:183 · validation/unit/topology/test_simplicial_set_facade.py:185 · validation/unit/topology/test_simplicial_set_facade.py:186

topology.SimplicialCohomologyBasisElement.degree

Return the degree recorded by this SimplicialCohomologyBasisElement.

Detailed contract

Cohomological degree.

(self) -> int

noether::topology::SimplicialCohomologyBasisElement::degree · Direct Rust declaration

pub fn degree(&self) -> u32
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded

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

topology.SimplicialCohomologyBasisElement.id

Return the id recorded by this SimplicialCohomologyBasisElement.

Detailed contract

Stable degree-local identifier such as h1_0.

(self) -> str

noether::topology::SimplicialCohomologyBasisElement::id · Direct Rust declaration

pub fn id(&self) -> &str
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded

Executable usage: validation/unit/infra/test_corpus_acceptance.py:137 · validation/unit/infra/test_corpus_acceptance.py:147 · validation/unit/infra/test_corpus_acceptance.py:162 · validation/unit/infra/test_corpus_acceptance.py:166 · validation/unit/infra/test_corpus_acceptance.py:52 · validation/unit/infra/test_corpus_acceptance.py:81