commalg · NoetherNormalization¶
21 accepted declarations. Python and Rust forms, contracts, evidence, failure boundaries, and checked usages are kept together below.
Worked example¶
The complete checked program Compute in an exterior algebra and induce a linear map on two-forms uses this API directly.
# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Compute in an exterior algebra and induce a linear map on two-forms."""
from noether import Q
from noether.commalg import PolynomialRing
from noether.homalg import FreeModule, ModuleElement, ModuleHomomorphism
from noether.linalg import Matrix, Vector
def main() -> None:
ring = PolynomialRing(Q, ["t"])
module = FreeModule(ring, 3, basis_labels=["e0", "e1", "e2"])
exterior = module.exterior_algebra()
e0, e1, e2 = [exterior.generator(position) for position in range(3)]
volume = e0 * e1 * e2
assert volume == exterior.alternating_product(
[
ModuleElement(module, Vector.from_values(ring, [1, 0, 0])),
ModuleElement(module, Vector.from_values(ring, [0, 1, 0])),
ModuleElement(module, Vector.from_values(ring, [0, 0, 1])),
]
)
assert e1 * e0 == -(e0 * e1)
assert e0 * e0 == exterior.zero()
e0_dual = ModuleElement(module.dual(), Vector.from_values(ring, [1, 0, 0]))
assert volume.contract(e0_dual) == e1 * e2
linear_map = ModuleHomomorphism(
module,
module,
Matrix.from_rows(ring, [[1, 1, 0], [0, 1, 0], [0, 0, 2]]),
)
on_two_forms = linear_map.exterior_power(2)
on_two_forms.verify()
assert on_two_forms.apply_exterior(e1 * e2) == 2 * (e0 * e2 + e1 * e2)
print(
"Λ² has basis",
exterior.basis(2),
"and the induced map sends e1∧e2 to",
on_two_forms.apply_exterior(e1 * e2).terms,
)
if __name__ == "__main__":
main()
Run it with .venv/bin/python examples/40_exterior_algebra.py.
commalg.NoetherNormalization¶
A verified finite polynomial-subring map into an affine algebra.
noether::commalg::NoetherNormalization · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@1 |
Executable usage: validation/unit/commalg/test_normalization_facade.py:10 · validation/unit/commalg/test_normalization_facade.py:21 · validation/unit/commalg/test_normalization_facade.py:39 · validation/unit/commalg/test_normalization_facade.py:46
commalg.NoetherNormalization.__call__¶
Coerce the supplied input through this context or mathematical map.
noether::commalg::NoetherNormalization · Python projection
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@1 |
Executable usage: validation/unit/infra/test_discovery.py:57 · validation/unit/infra/test_public_api_index.py:155 · validation/unit/infra/test_public_api_index.py:169
commalg.NoetherNormalization.algebra¶
Return the algebra recorded by this NoetherNormalization.
Detailed contract
Target affine algebra k[x_1,...,x_n]/I.
noether::commalg::NoetherNormalization::algebra · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@1 |
Executable usage: examples/40_exterior_algebra.py:3 · examples/distributed/f2_linear_algebra.py:3 · validation/unit/commalg/test_acceptance_workload.py:3 · validation/unit/commalg/test_construction_algebras.py:41 · validation/unit/commalg/test_construction_algebras.py:71 · validation/unit/commalg/test_construction_algebras.py:72
commalg.NoetherNormalization.apply¶
Apply this NoetherNormalization to the supplied value.
Detailed contract
Apply the retained injective finite map to one parameter polynomial.
noether::commalg::NoetherNormalization::apply · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@1 |
Executable usage: examples/05_sparse_exact_operators.py:16 · validation/unit/commalg/test_local_algebra.py:94 · validation/unit/commalg/test_local_algebra.py:97 · validation/unit/commalg/test_polynomial_facade.py:199 · validation/unit/commalg/test_quotient_facade.py:186 · validation/unit/groups/test_weight_characters.py:39
commalg.NoetherNormalization.coordinate_images¶
Return the coordinate images recorded by this NoetherNormalization.
Detailed contract
Images of all sheared coordinates as ambient polynomials before quotienting.
noether::commalg::NoetherNormalization::coordinate_images · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@1 |
Executable usage: examples/36_affine_normalization.py:18 · validation/unit/commalg/test_affine_normalization_facade.py:33 · validation/unit/commalg/test_affine_normalization_facade.py:69 · validation/bench/macaulay2_normalization.py:218 · validation/bench/macaulay2_normalization.py:219 · validation/corpus/commalg/cusp-normalization-conductor.py:18
commalg.NoetherNormalization.dependent_indices¶
Return the dependent indices recorded by this NoetherNormalization.
Detailed contract
Complementary coordinates proved finite over the parameters.
noether::commalg::NoetherNormalization::dependent_indices · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@1 |
Executable usage: validation/unit/commalg/test_normalization_facade.py:25
commalg.NoetherNormalization.dimension¶
Return the dimension recorded by this NoetherNormalization.
Detailed contract
Krull dimension of the target affine algebra.
noether::commalg::NoetherNormalization::dimension · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@1 |
Executable usage: examples/03_exact_linear_systems.py:15 · examples/03_exact_linear_systems.py:16 · examples/15_groebner_twisted_cubic.py:14 · examples/15_groebner_twisted_cubic.py:28 · examples/27_weight_characters.py:25 · examples/34_finite_group_cohomology.py:13
commalg.NoetherNormalization.from_json¶
Deserialize and revalidate a NoetherNormalization from typed JSON.
Detailed contract
Deserialize and exactly reverify a Noether normalization.
noether::commalg::NoetherNormalization::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, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@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
commalg.NoetherNormalization.module_generator_count¶
Return the module generator count recorded by this NoetherNormalization.
Detailed contract
Exact cardinality of the retained rectangular module generating family.
noether::commalg::NoetherNormalization::module_generator_count · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@1 |
Executable usage: validation/unit/commalg/test_normalization_facade.py:29 · validation/unit/commalg/test_normalization_facade.py:62 · validation/bench/macaulay2_normalization.py:431 · validation/bench/macaulay2_normalization.py:433 · validation/bench/macaulay2_normalization.py:434
commalg.NoetherNormalization.module_generator_exponents¶
Compute module generator exponents for this NoetherNormalization.
Detailed contract
Ambient exponent vectors for a finite spanning family over the parameter ring.
noether::commalg::NoetherNormalization::module_generator_exponents · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@1 |
Executable usage: validation/unit/commalg/test_normalization_facade.py:30
commalg.NoetherNormalization.module_generators¶
Compute module generators for this NoetherNormalization.
Detailed contract
A finite family of target elements spanning the algebra over the parameters.
noether::commalg::NoetherNormalization::module_generators · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@1 |
Executable usage: validation/unit/commalg/test_normalization_facade.py:31 · validation/bench/macaulay2_core.py:2669 · validation/bench/macaulay2_core.py:2774
commalg.NoetherNormalization.parameter_images¶
Return the parameter images recorded by this NoetherNormalization.
Detailed contract
Images of the polynomial parameters in the target affine algebra.
noether::commalg::NoetherNormalization::parameter_images · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@1 |
Executable usage: validation/unit/commalg/test_normalization_facade.py:27
commalg.NoetherNormalization.parameter_indices¶
Return the parameter indices recorded by this NoetherNormalization.
Detailed contract
Ambient pivot coordinates used for the parameter shear chart.
noether::commalg::NoetherNormalization::parameter_indices · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@1 |
Executable usage: validation/unit/commalg/test_normalization_facade.py:24 · validation/unit/infra/test_macaulay2_benchmark_protocol.py:217 · validation/unit/infra/test_macaulay2_benchmark_protocol.py:218 · validation/bench/macaulay2_normalization.py:226 · validation/bench/macaulay2_normalization.py:227 · validation/bench/macaulay2_normalization.py:375
commalg.NoetherNormalization.parameter_ring¶
Return the parameter ring recorded by this NoetherNormalization.
Detailed contract
Polynomial parameter ring k[t_1,...,t_d].
noether::commalg::NoetherNormalization::parameter_ring · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@1 |
Executable usage: validation/unit/commalg/test_normalization_facade.py:35 · validation/unit/commalg/test_normalization_facade.py:60 · validation/unit/commalg/test_normalization_facade.py:61 · validation/unit/commalg/test_normalization_facade.py:63 · validation/unit/commalg/test_polynomial_ideal_facade.py:100 · validation/unit/commalg/test_polynomial_ideal_facade.py:103
commalg.NoetherNormalization.pure_power_bounds¶
Return the pure power bounds recorded by this NoetherNormalization.
Detailed contract
Strict exponent bounds for dependent monomials spanning the finite module.
noether::commalg::NoetherNormalization::pure_power_bounds · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@1 |
Executable usage: validation/unit/commalg/test_normalization_facade.py:28 · validation/unit/commalg/test_normalization_facade.py:44 · validation/unit/commalg/test_normalization_facade.py:55
commalg.NoetherNormalization.shear_coefficients¶
Return the shear coefficients recorded by this NoetherNormalization.
Detailed contract
Shear coefficients, with rows aligned to parameters and columns to dependents.
noether::commalg::NoetherNormalization::shear_coefficients · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@1 |
Executable usage: validation/unit/commalg/test_normalization_facade.py:26
commalg.NoetherNormalization.source¶
Return the source recorded by this NoetherNormalization.
Detailed contract
Defining ideal of the affine algebra being normalized.
noether::commalg::NoetherNormalization::source · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@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
commalg.NoetherNormalization.theorem¶
Return the theorem recorded by this NoetherNormalization.
Detailed contract
The exact commutative-algebra theorem certified by this value.
noether::commalg::NoetherNormalization::theorem · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@1 |
Executable usage: examples/13_chinese_remainder_theorem.py:3 · validation/unit/commalg/test_polynomial_ideal_facade.py:1150 · validation/unit/commalg/test_polynomial_ideal_facade.py:507 · validation/unit/commalg/test_polynomial_ideal_facade.py:583 · validation/unit/commalg/test_polynomial_ideal_facade.py:659 · validation/unit/homalg/test_module_facade.py:509
commalg.NoetherNormalization.to_json¶
Serialize this NoetherNormalization to its canonical typed JSON representation.
Detailed contract
Serialize the source, finite map, coordinate change, and spanning evidence.
noether::commalg::NoetherNormalization::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, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@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
commalg.NoetherNormalization.transformed_ideal¶
Return the transformed ideal recorded by this NoetherNormalization.
Detailed contract
Defining ideal after the retained invertible coordinate change and block order.
noether::commalg::NoetherNormalization::transformed_ideal · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@1 |
commalg.NoetherNormalization.verify¶
Replay and verify the mathematical evidence carried by this NoetherNormalization.
Detailed contract
Independently replay the coordinate change and finite-module proof.
noether::commalg::NoetherNormalization::verify · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/NoetherNormalization@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