Skip to content

homalg · FreeModulePower

9 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.FreeModulePower

A canonical symmetric or exterior power of a based free module.

class FreeModulePower

noether::homalg::FreeModulePower · Direct Rust declaration

pub struct FreeModulePower<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/FreeModulePower@1

Executable usage: validation/unit/homalg/test_exterior_algebra.py:21 · validation/unit/homalg/test_exterior_algebra.py:244 · validation/unit/homalg/test_exterior_algebra.py:449 · validation/unit/homalg/test_module_powers.py:10 · validation/unit/homalg/test_module_powers.py:147 · validation/unit/homalg/test_module_powers.py:59

homalg.FreeModulePower.basis_exponents

Return the basis exponents recorded by this FreeModulePower.

Detailed contract

Canonical exponent vectors indexing the output basis.

(self) -> list[list[int]]

noether::homalg::FreeModulePower::basis_exponents · Direct Rust declaration

pub fn basis_exponents(&self) -> &[Vec<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 released
Semantic ID noether/homalg/FreeModulePower@1

Executable usage: validation/unit/homalg/test_exterior_algebra.py:445 · validation/unit/homalg/test_module_powers.py:38 · validation/unit/homalg/test_module_powers.py:56

homalg.FreeModulePower.degree

Return the degree recorded by this FreeModulePower.

Detailed contract

Nonnegative power degree.

(self) -> int

noether::homalg::FreeModulePower::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/FreeModulePower@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.FreeModulePower.from_json

Deserialize and revalidate a FreeModulePower from typed JSON.

Detailed contract

Deserialize and revalidate the complete construction.

(cls, value: str) -> FreeModulePower[_BasicModuleRing]

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

pub fn from_json(value: &str) -> Result<Self, NoetherError>where R: 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 released
Semantic ID noether/homalg/FreeModulePower@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.FreeModulePower.kind

Return the kind recorded by this FreeModulePower.

Detailed contract

Symmetric or exterior construction.

(self) -> ModulePowerKind

noether::homalg::FreeModulePower::kind · Direct Rust declaration

pub const fn kind(&self) -> ModulePowerKind
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/FreeModulePower@1

Executable usage: validation/unit/combinatorics/test_poset.py:95 · validation/unit/commalg/test_curve_facade.py:137 · validation/unit/commalg/test_curve_facade.py:43 · validation/unit/commalg/test_curve_facade.py:44 · validation/unit/commalg/test_curve_facade.py:45 · validation/unit/commalg/test_curve_facade.py:80

homalg.FreeModulePower.module

Return the module recorded by this FreeModulePower.

Detailed contract

Constructed based free module.

(self) -> FreeModule[_BasicModuleRing]

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

pub fn module(&self) -> &FreeModule<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 released
Semantic ID noether/homalg/FreeModulePower@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.FreeModulePower.source

Return the source recorded by this FreeModulePower.

Detailed contract

Source based free module.

(self) -> FreeModule[_BasicModuleRing]

noether::homalg::FreeModulePower::source · Direct Rust declaration

pub fn source(&self) -> &FreeModule<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 released
Semantic ID noether/homalg/FreeModulePower@1

Executable usage: examples/09_finite_field_isomorphisms.py:11 · examples/09_finite_field_isomorphisms.py:13 · examples/09_finite_field_isomorphisms.py:9 · examples/30_modules_and_resolutions.py:34 · examples/30_modules_and_resolutions.py:37 · validation/unit/category/test_acceptance_workload.py:25

homalg.FreeModulePower.to_json

Serialize this FreeModulePower to its canonical typed JSON representation.

Detailed contract

Serialize the complete construction.

(self) -> str

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

pub fn to_json(&self) -> Result<String, NoetherError>where R: 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 released
Semantic ID noether/homalg/FreeModulePower@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.FreeModulePower.verify

Replay and verify the mathematical evidence carried by this FreeModulePower.

Detailed contract

Recompute basis combinatorics and inherited metadata.

(self) -> None

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

pub fn verify(&self) -> Result<(), ModulePowerError>
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 released
Semantic ID noether/homalg/FreeModulePower@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