Skip to content

commalg · PolynomialPrimaryCertificate

17 accepted declarations. Python and Rust forms, contracts, evidence, failure boundaries, and checked usages are kept together below.

Worked example

The complete checked program Split rational primes and factor an ideal in the Gaussian integers uses this API directly.

# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Split rational primes and factor an ideal in the Gaussian integers."""

from noether import Q
from noether.commalg import PolynomialRing
from noether.numthy import NumberField


def main() -> None:
    polynomials = PolynomialRing(Q, ["x"])
    field = NumberField(polynomials.generator("x") ** 2 + 1, name="i")
    order = field.maximal_order()
    primes = order.prime_ideals_above(5)
    assert len(primes) == 2
    assert all(prime.norm() == 5 for prime in primes)
    ideal = order.fractional_ideal([1 + field.generator])
    assert ideal.norm() == 2
    print(f"(5) splits into norms {[prime.norm() for prime in primes]}; N(1+i)={ideal.norm()}")


if __name__ == "__main__":
    main()

Run it with .venv/bin/python examples/12_number_field_ideals.py.

commalg.PolynomialPrimaryCertificate

Exact evidence that a polynomial ideal is primary.

class PolynomialPrimaryCertificate

noether::commalg::PolynomialPrimaryCertificate · Direct Rust declaration

pub struct PolynomialPrimaryCertificate<R: Field> { /* private fields */ }
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/PolynomialPrimaryCertificate@1

Executable usage: validation/unit/commalg/test_polynomial_ideal_facade.py:1258 · validation/unit/commalg/test_polynomial_ideal_facade.py:1297 · validation/unit/commalg/test_polynomial_ideal_facade.py:26 · validation/unit/commalg/test_polynomial_ideal_facade.py:625 · validation/unit/commalg/test_polynomial_ideal_facade.py:635 · validation/unit/commalg/test_polynomial_ideal_facade.py:828

commalg.PolynomialPrimaryCertificate.associated_prime

Exact prime equal to the radical of this primary ideal.

(self) -> PolynomialPrimeCertificate[C]

noether::commalg::PolynomialPrimaryCertificate::associated_prime · Direct Rust declaration

pub fn associated_prime(&self) -> &PolynomialPrimeCertificate<R>
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/PolynomialPrimaryCertificate@1

Executable usage: validation/unit/commalg/test_polynomial_ideal_facade.py:1090 · validation/unit/commalg/test_polynomial_ideal_facade.py:1292 · validation/unit/commalg/test_polynomial_ideal_facade.py:733 · validation/unit/commalg/test_polynomial_ideal_facade.py:859 · validation/unit/commalg/test_polynomial_ideal_facade.py:903 · validation/unit/commalg/test_polynomial_ideal_facade.py:907

commalg.PolynomialPrimaryCertificate.ehv_associated_primes

Complete EHV associated-prime evidence used by the general primary route.

(self) -> AssociatedPrimeSet[C] | None

noether::commalg::PolynomialPrimaryCertificate::ehv_associated_primes · Direct Rust declaration

pub fn ehv_associated_primes(&self) -> Option<&AssociatedPrimeSet<R>>
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/PolynomialPrimaryCertificate@1

Executable usage: validation/unit/commalg/test_polynomial_ideal_facade.py:602 · validation/unit/commalg/test_polynomial_ideal_facade.py:603 · validation/unit/commalg/test_polynomial_ideal_facade.py:620

commalg.PolynomialPrimaryCertificate.ehv_equidimensional_hull

EHV equidimensional-hull evidence used by an isolated primary component.

(self) -> EquidimensionalHull[C] | None

noether::commalg::PolynomialPrimaryCertificate::ehv_equidimensional_hull · Direct Rust declaration

pub fn ehv_equidimensional_hull(&self) -> Option<&EquidimensionalHull<R>>
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/PolynomialPrimaryCertificate@1

Executable usage: validation/unit/commalg/test_polynomial_ideal_facade.py:608 · validation/unit/commalg/test_polynomial_ideal_facade.py:609 · validation/unit/commalg/test_polynomial_ideal_facade.py:610 · validation/unit/commalg/test_polynomial_ideal_facade.py:630 · validation/unit/commalg/test_polynomial_ideal_facade.py:689

commalg.PolynomialPrimaryCertificate.from_json

Deserialize and exactly reverify polynomial primary evidence.

Detailed contract

Deserialize and exactly reverify primary evidence.

(cls, value: str) -> PolynomialPrimaryCertificate[RationalField | FiniteField]

noether::commalg::PolynomialPrimaryCertificate::from_json · Direct Rust declaration

pub fn from_json(value: &str) -> Result<Self, NoetherError>
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/PolynomialPrimaryCertificate@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.PolynomialPrimaryCertificate.ideal

Canonical polynomial ideal certified as primary.

(self) -> Ideal[PolynomialRing[C]]

noether::commalg::PolynomialPrimaryCertificate::ideal · Direct Rust declaration

pub fn ideal(&self) -> &Ideal<PolynomialRing<R>>
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/PolynomialPrimaryCertificate@1

Executable usage: examples/12_number_field_ideals.py:17 · examples/12_number_field_ideals.py:18 · examples/12_number_field_ideals.py:19 · examples/12_number_field_ideals.py:3 · examples/15_groebner_twisted_cubic.py:12 · examples/15_groebner_twisted_cubic.py:13

commalg.PolynomialPrimaryCertificate.nilpotence_bound

Nilpotence bound when the Artinian-local route applies.

Detailed contract

Nilpotence bound supplied by the zero-dimensional local route.

(self) -> int | None

noether::commalg::PolynomialPrimaryCertificate::nilpotence_bound · Direct Rust declaration

pub const fn nilpotence_bound(&self) -> Option<usize>
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/PolynomialPrimaryCertificate@1

Executable usage: validation/unit/commalg/test_polynomial_ideal_facade.py:1260 · validation/unit/commalg/test_polynomial_ideal_facade.py:1291

commalg.PolynomialPrimaryCertificate.polynomial_graph_base

Polynomial-graph base below a graph-relative primary component.

(self) -> Ideal[PolynomialRing[C]] | None

noether::commalg::PolynomialPrimaryCertificate::polynomial_graph_base · Direct Rust declaration

pub fn polynomial_graph_base(&self) -> Option<&Ideal<PolynomialRing<R>>>
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/PolynomialPrimaryCertificate@1

Executable usage: validation/unit/commalg/test_polynomial_ideal_facade.py:812 · validation/unit/commalg/test_polynomial_ideal_facade.py:855 · validation/unit/commalg/test_polynomial_ideal_facade.py:899

commalg.PolynomialPrimaryCertificate.polynomial_graph_factor

Irreducible free-variable factor defining the component radical.

(self) -> Polynomial[C] | None

noether::commalg::PolynomialPrimaryCertificate::polynomial_graph_factor · Direct Rust declaration

pub fn polynomial_graph_factor(&self) -> Option<&Polynomial<R>>
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/PolynomialPrimaryCertificate@1

Executable usage: validation/unit/commalg/test_polynomial_ideal_facade.py:814 · validation/unit/commalg/test_polynomial_ideal_facade.py:857

commalg.PolynomialPrimaryCertificate.polynomial_graph_factor_exponent

Positive multiplicity of the hypersurface factor over the graph base.

(self) -> int | None

noether::commalg::PolynomialPrimaryCertificate::polynomial_graph_factor_exponent · Direct Rust declaration

pub fn polynomial_graph_factor_exponent(&self) -> Option<u64>
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/PolynomialPrimaryCertificate@1

Executable usage: validation/unit/commalg/test_polynomial_ideal_facade.py:815 · validation/unit/commalg/test_polynomial_ideal_facade.py:819 · validation/unit/commalg/test_polynomial_ideal_facade.py:821 · validation/unit/commalg/test_polynomial_ideal_facade.py:858

commalg.PolynomialPrimaryCertificate.polynomial_graph_factors

Irreducible regular-sequence factors and their positive multiplicities.

(self) -> list[tuple[Polynomial[C], int]] | None

noether::commalg::PolynomialPrimaryCertificate::polynomial_graph_factors · Direct Rust declaration

pub fn polynomial_graph_factors(&self) -> Option<&[(Polynomial<R>, u64)]>
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/PolynomialPrimaryCertificate@1

Executable usage: validation/unit/commalg/test_polynomial_ideal_facade.py:860 · validation/unit/commalg/test_polynomial_ideal_facade.py:902

commalg.PolynomialPrimaryCertificate.polynomial_graph_monomial_source

Monomial primary ideal pulled back through a polynomial-graph quotient.

(self) -> MonomialIdeal[C] | None

noether::commalg::PolynomialPrimaryCertificate::polynomial_graph_monomial_source · Direct Rust declaration

pub fn polynomial_graph_monomial_source(&self) -> Option<&MonomialIdeal<R>>
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/PolynomialPrimaryCertificate@1

Executable usage: validation/unit/commalg/test_polynomial_ideal_facade.py:901

commalg.PolynomialPrimaryCertificate.polynomial_graph_pivots

Pivot variables eliminated by the polynomial-graph base.

(self) -> list[int] | None

noether::commalg::PolynomialPrimaryCertificate::polynomial_graph_pivots · Direct Rust declaration

pub fn polynomial_graph_pivots(&self) -> Option<&[usize]>
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/PolynomialPrimaryCertificate@1

Executable usage: validation/unit/commalg/test_polynomial_ideal_facade.py:1036 · validation/unit/commalg/test_polynomial_ideal_facade.py:1043 · validation/unit/commalg/test_polynomial_ideal_facade.py:813 · validation/unit/commalg/test_polynomial_ideal_facade.py:856 · validation/unit/commalg/test_polynomial_ideal_facade.py:900 · validation/unit/commalg/test_polynomial_ideal_facade.py:907

commalg.PolynomialPrimaryCertificate.proof_kind

Canonical name of the exact primary proof route.

(self) -> str

noether::commalg::PolynomialPrimaryCertificate::proof_kind · Direct Rust declaration

pub const fn proof_kind(&self) -> &'static str
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/PolynomialPrimaryCertificate@1

Executable usage: examples/36_affine_normalization.py:22 · validation/unit/commalg/test_affine_normalization_facade.py:128 · validation/unit/commalg/test_affine_normalization_facade.py:162 · validation/unit/commalg/test_affine_normalization_facade.py:216 · validation/unit/commalg/test_affine_normalization_facade.py:31 · validation/unit/commalg/test_affine_normalization_facade.py:60

commalg.PolynomialPrimaryCertificate.theorem

Exact theorem certifying the recorded ideal as primary.

Detailed contract

Exact theorem turning the retained evidence into a primary claim.

(self) -> str

noether::commalg::PolynomialPrimaryCertificate::theorem · Direct Rust declaration

pub const fn theorem(&self) -> &'static str
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/PolynomialPrimaryCertificate@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.PolynomialPrimaryCertificate.to_json

Serialize the complete primary evidence.

Detailed contract

Serialize the primary ideal, associated prime, and complete proof evidence.

(self) -> str

noether::commalg::PolynomialPrimaryCertificate::to_json · Direct Rust declaration

pub fn to_json(&self) -> Result<String, NoetherError>
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/PolynomialPrimaryCertificate@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.PolynomialPrimaryCertificate.verify

Independently recheck the complete primary evidence.

(self) -> None

noether::commalg::PolynomialPrimaryCertificate::verify · Direct Rust declaration

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