Skip to content

homalg · DerivedModule

13 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.DerivedModule

One exact Tor or Ext module with its verified resolution and homology evidence.

Detailed contract

One exact Tor or Ext module with its verified resolution and homology evidence.

class DerivedModule

noether::homalg::DerivedModule · Direct Rust declaration

pub struct DerivedModule<R: Ring> { /* 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/DerivedModule@1

Executable usage: validation/unit/homalg/test_module_facade.py:22 · validation/unit/homalg/test_module_facade.py:356 · validation/unit/homalg/test_module_facade.py:369 · validation/unit/homalg/test_module_facade.py:447

homalg.DerivedModule.coefficient_module

Return the coefficient module recorded by this DerivedModule.

Detailed contract

Second module argument: the tensor factor for Tor or the target for Ext.

(self) -> PresentedModule[_GroebnerModuleRing]

noether::homalg::DerivedModule::coefficient_module · Direct Rust declaration

pub fn coefficient_module(&self) -> &PresentedModule<R>
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/DerivedModule@1

Executable usage: validation/unit/homalg/test_module_facade.py:361

homalg.DerivedModule.degree

Return the degree recorded by this DerivedModule.

Detailed contract

Homological or cohomological degree.

(self) -> int

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

pub const fn 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/DerivedModule@1

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.DerivedModule.from_json

Deserialize and revalidate a DerivedModule from typed JSON.

Detailed contract

Deserialize and independently revalidate polynomial-ring evidence. Deserialize and independently revalidate quotient-ring evidence.

(cls, value: str) -> DerivedModule[_GroebnerModuleRing]

noether::homalg::DerivedModule::from_json · Direct Rust declaration

pub fn from_json(value: &str) -> Result<Self, NoetherError>where C: for<'de> Deserialize<'de>, C::Element: for<'de> Deserialize<'de>,
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/DerivedModule@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

homalg.DerivedModule.functor

Return the functor recorded by this DerivedModule.

Detailed contract

Derived functor represented by this value.

(self) -> Literal['tor', 'ext']

noether::homalg::DerivedModule::functor · Direct Rust declaration

pub const fn functor(&self) -> DerivedFunctor
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/DerivedModule@1

Executable usage: validation/unit/homalg/test_module_facade.py:353 · validation/unit/homalg/test_module_facade.py:355 · validation/unit/homalg/test_module_facade.py:358 · validation/unit/homalg/test_module_facade.py:373 · validation/unit/homalg/test_module_facade.py:374 · validation/unit/homalg/test_module_facade.py:431

homalg.DerivedModule.homology_evidence

Return the homology evidence recorded by this DerivedModule.

Detailed contract

Complete cycle/boundary quotient evidence.

(self) -> PresentedModuleHomology[_GroebnerModuleRing]

noether::homalg::DerivedModule::homology_evidence · Direct Rust declaration

pub fn homology_evidence(&self) -> &PresentedModuleHomology<R>
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/DerivedModule@1

Executable usage: validation/unit/homalg/test_module_facade.py:363

homalg.DerivedModule.justified_through_degree

Return the justified through degree recorded by this DerivedModule.

Detailed contract

Greatest derived degree justified by a truncated resolution. None means the resolution is complete and every degree is justified.

(self) -> int | None

noether::homalg::DerivedModule::justified_through_degree · Direct Rust declaration

pub fn justified_through_degree(&self) -> Option<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/DerivedModule@1

Executable usage: validation/unit/homalg/test_module_facade.py:436

homalg.DerivedModule.map_coefficients

Compute map coefficients for this DerivedModule.

Detailed contract

Apply Tor or Ext covariantly to a homomorphism of the second module argument and retain the complete induced-homology evidence. Apply quotient-ring Tor or Ext covariantly to a homomorphism of the second module argument.

(self, homomorphism: PresentedModuleHomomorphism[_GroebnerModuleRing]) -> DerivedModuleHomomorphism[_GroebnerModuleRing]

noether::homalg::DerivedModule::map_coefficients · Direct Rust declaration

pub fn map_coefficients( &self, homomorphism: &PresentedModuleHomomorphism<PolynomialRing<C>>, ) -> Result<DerivedModuleHomomorphism<PolynomialRing<C>>, DerivedError>
pub fn map_coefficients( &self, homomorphism: &PresentedModuleHomomorphism<QuotientRing<PolynomialRing<C>>>, ) -> Result<DerivedModuleHomomorphism<QuotientRing<PolynomialRing<C>>>, DerivedError>
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/DerivedModule@1

Executable usage: validation/unit/homalg/test_module_facade.py:391 · validation/unit/homalg/test_module_facade.py:392 · validation/unit/homalg/test_module_facade.py:439 · validation/bench/sage_power_series.py:188

homalg.DerivedModule.module

Return the module recorded by this DerivedModule.

Detailed contract

The resulting presented module.

(self) -> PresentedModule[_GroebnerModuleRing]

noether::homalg::DerivedModule::module · Direct Rust declaration

pub fn module(&self) -> &PresentedModule<R>
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/DerivedModule@1

Executable usage: examples/30_modules_and_resolutions.py:3 · examples/30_modules_and_resolutions.py:51 · examples/40_exterior_algebra.py:13 · examples/40_exterior_algebra.py:14 · examples/40_exterior_algebra.py:20 · examples/40_exterior_algebra.py:21

homalg.DerivedModule.order

Return the order recorded by this DerivedModule.

Detailed contract

Exact module-monomial order used to construct and verify homology.

(self) -> ModuleMonomialOrder

noether::homalg::DerivedModule::order · Direct Rust declaration

pub fn order(&self) -> &ModuleMonomialOrder
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/DerivedModule@1

Executable usage: examples/11_qadic_witt_vectors.py:14 · examples/12_number_field_ideals.py:13 · examples/12_number_field_ideals.py:14 · examples/12_number_field_ideals.py:17 · examples/15_groebner_twisted_cubic.py:18 · examples/19_permutation_groups.py:13

homalg.DerivedModule.resolution

Return the resolution recorded by this DerivedModule.

Detailed contract

Verified resolution used in the construction.

(self) -> FreeResolution[_GroebnerModuleRing]

noether::homalg::DerivedModule::resolution · Direct Rust declaration

pub fn resolution(&self) -> &FreeResolution<R>
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/DerivedModule@1

Executable usage: examples/30_modules_and_resolutions.py:3 · examples/30_modules_and_resolutions.py:42 · examples/30_modules_and_resolutions.py:43 · examples/30_modules_and_resolutions.py:44 · validation/unit/commalg/test_polynomial_ideal_facade.py:570 · validation/unit/homalg/test_module_facade.py:351

homalg.DerivedModule.to_json

Serialize this DerivedModule to its canonical typed JSON representation.

Detailed contract

Serialize the resolution, finite range, and complete homology diagram.

(self) -> str

noether::homalg::DerivedModule::to_json · Direct Rust declaration

pub fn to_json(&self) -> Result<String, NoetherError>where R: Serialize, R::Element: Serialize,
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/DerivedModule@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

homalg.DerivedModule.verify

Replay and verify the mathematical evidence carried by this DerivedModule.

Detailed contract

Independently replay the polynomial-ring resolution, functorial differential, and module-valued homology evidence. Independently replay the quotient-ring resolution, functorial differential, and module-valued homology evidence.

(self) -> None

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

pub fn verify(&self) -> Result<(), DerivedError>
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/DerivedModule@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