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.
noether::homalg::DerivedModule · Direct Rust declaration
| 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.
noether::homalg::DerivedModule::coefficient_module · Direct Rust declaration
| 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.
noether::homalg::DerivedModule::degree · Direct Rust declaration
| 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.
noether::homalg::DerivedModule::from_json · Direct Rust declaration
| 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.
noether::homalg::DerivedModule::functor · Direct Rust declaration
| 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.
noether::homalg::DerivedModule::homology_evidence · Direct Rust declaration
| 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.
noether::homalg::DerivedModule::justified_through_degree · Direct Rust declaration
| 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.
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.
noether::homalg::DerivedModule::module · Direct Rust declaration
| 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.
noether::homalg::DerivedModule::order · Direct Rust declaration
| 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.
noether::homalg::DerivedModule::resolution · Direct Rust declaration
| 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.
noether::homalg::DerivedModule::to_json · Direct Rust declaration
| 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.
noether::homalg::DerivedModule::verify · Direct Rust declaration
| 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