Skip to content

homalg · ChainCancellation

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

homalg.ChainCancellation

One universal-unit pivot removed from a based chain complex.

ChainCancellation(degree: int, row: int, column: int, unit: UniversalUnit)

noether::homalg::ChainCancellation · Direct Rust declaration

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

Executable usage: validation/unit/homalg/test_chain_complex.py:11 · validation/unit/homalg/test_chain_complex.py:84 · validation/unit/homalg/test_chain_complex.py:87 · validation/unit/homalg/test_chain_complex.py:95

homalg.ChainCancellation.column

Current matrix column of the pivot.

Detailed contract

Column of the universal-unit pivot in the current basis.

(self) -> int

noether::homalg::ChainCancellation::column · Direct Rust declaration

pub const fn column(&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

Executable usage: validation/unit/homalg/test_chain_complex.py:85 · validation/unit/homalg/test_chain_complex.py:88 · validation/unit/homalg/test_exterior_algebra.py:464 · validation/unit/infra/test_concurrency.py:150 · validation/unit/infra/test_concurrency.py:71 · validation/unit/infra/test_macaulay2_benchmark_protocol.py:434

homalg.ChainCancellation.degree

Displayed differential degree at the time of cancellation.

Detailed contract

Displayed degree of the cancelled boundary or coboundary.

(self) -> int

noether::homalg::ChainCancellation::degree · Direct Rust declaration

pub const fn degree(&self) -> i32
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

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

homalg.ChainCancellation.row

Current matrix row of the pivot.

Detailed contract

Row of the universal-unit pivot in the current basis.

(self) -> int

noether::homalg::ChainCancellation::row · Direct Rust declaration

pub const fn row(&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

Executable usage: validation/unit/commalg/test_residue_ring_facade.py:64 · validation/unit/groups/test_acceptance_workload.py:152 · validation/unit/homalg/test_chain_complex.py:85 · validation/unit/homalg/test_chain_complex.py:88 · validation/unit/homalg/test_exterior_algebra.py:464 · validation/unit/homalg/test_finite_group_cohomology.py:245

homalg.ChainCancellation.unit

Universal unit, either 1 or -1.

Detailed contract

Whether the pivot is 1 or -1.

(self) -> UniversalUnit

noether::homalg::ChainCancellation::unit · Direct Rust declaration

pub const fn unit(&self) -> UniversalUnit
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

Executable usage: validation/unit/commalg/test_local_algebra.py:42 · validation/unit/commalg/test_local_algebra.py:44 · validation/unit/commalg/test_local_algebra.py:45 · validation/unit/commalg/test_polynomial_ideal_facade.py:62 · validation/unit/commalg/test_polynomial_ideal_facade.py:68 · validation/unit/commalg/test_polynomial_ideal_facade.py:69