Skip to content

commalg · AffineNormalization

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

Worked example

The complete checked program Normalize the cusp y^2=x^3 with exact conductor evidence uses this API directly.

# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Normalize the cusp y^2=x^3 with exact conductor evidence."""

from noether import Q
from noether.commalg import PolynomialRing


def main() -> None:
    ring = PolynomialRing(Q, ["x", "y"])
    x, y = ring.generators()
    cusp = ring.ideal([y**2 - x**3])
    normalization = cusp.normalization()
    normalization.verify()

    target = normalization.normal_algebra.base_ring
    t = target.generator(0)
    assert normalization.coordinate_images == [t**2, t**3]
    assert normalization.source_conductor == ring.ideal([x, y])
    assert not normalization.is_normal
    print(
        f"cusp normalization: x -> t^2, y -> t^3; proof={normalization.proof_kind}, conductor=(x,y)"
    )


if __name__ == "__main__":
    main()

Run it with .venv/bin/python examples/36_affine_normalization.py.

commalg.AffineNormalization

A verified finite birational normalization and its conductor.

class AffineNormalization

noether::commalg::AffineNormalization · Direct Rust declaration

pub struct AffineNormalization<R: Field + Display> { /* 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/AffineNormalization@1

Executable usage: validation/unit/commalg/test_affine_normalization_facade.py:11 · validation/unit/commalg/test_affine_normalization_facade.py:170 · validation/unit/commalg/test_affine_normalization_facade.py:28 · validation/unit/commalg/test_affine_normalization_facade.py:45 · validation/unit/commalg/test_affine_normalization_facade.py:52

commalg.AffineNormalization.conductor_theorem

Return the conductor theorem recorded by this AffineNormalization.

Detailed contract

Exact conductor theorem used by the retained route.

(self) -> str

noether::commalg::AffineNormalization::conductor_theorem · Direct Rust declaration

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

commalg.AffineNormalization.coordinate_images

Return the coordinate images recorded by this AffineNormalization.

Detailed contract

Images of the source ambient coordinates in the normal algebra.

(self) -> list[Polynomial[C]]

noether::commalg::AffineNormalization::coordinate_images · Direct Rust declaration

pub fn coordinate_images(&self) -> &[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/AffineNormalization@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.AffineNormalization.fraction_denominators

Return the fraction denominators recorded by this AffineNormalization.

Detailed contract

Nonzero fraction denominators for the normal ambient generators.

(self) -> list[Polynomial[C]]

noether::commalg::AffineNormalization::fraction_denominators · Direct Rust declaration

pub fn fraction_denominators(&self) -> &[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/AffineNormalization@1

Executable usage: validation/unit/commalg/test_affine_normalization_facade.py:102 · validation/unit/commalg/test_affine_normalization_facade.py:110 · validation/unit/commalg/test_affine_normalization_facade.py:36

commalg.AffineNormalization.fraction_numerators

Return the fraction numerators recorded by this AffineNormalization.

Detailed contract

Fraction numerators for the normal ambient generators.

(self) -> list[Polynomial[C]]

noether::commalg::AffineNormalization::fraction_numerators · Direct Rust declaration

pub fn fraction_numerators(&self) -> &[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/AffineNormalization@1

Executable usage: validation/unit/commalg/test_affine_normalization_facade.py:101 · validation/unit/commalg/test_affine_normalization_facade.py:109 · validation/unit/commalg/test_affine_normalization_facade.py:35

commalg.AffineNormalization.from_json

Deserialize and revalidate a AffineNormalization from typed JSON.

Detailed contract

Deserialize and exactly reverify an affine normalization.

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

noether::commalg::AffineNormalization::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/AffineNormalization@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.AffineNormalization.integral_equations

Return the integral equations recorded by this AffineNormalization.

Detailed contract

Monic equations for the normal ambient generators. Each inner vector contains coefficients in increasing degree and omits the leading coefficient 1.

(self) -> list[list[Polynomial[C]]]

noether::commalg::AffineNormalization::integral_equations · Direct Rust declaration

pub fn integral_equations(&self) -> &[Vec<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/AffineNormalization@1

Executable usage: validation/unit/commalg/test_affine_normalization_facade.py:34

commalg.AffineNormalization.is_normal

Test whether this AffineNormalization is normal.

Detailed contract

Whether the structure map is an isomorphism by the retained conductor.

(self) -> bool

noether::commalg::AffineNormalization::is_normal · Direct Rust declaration

pub fn is_normal(&self) -> bool
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/AffineNormalization@1

Executable usage: examples/36_affine_normalization.py:20 · validation/unit/commalg/test_affine_normalization_facade.py:143 · validation/unit/commalg/test_affine_normalization_facade.py:187 · validation/unit/commalg/test_affine_normalization_facade.py:195 · validation/unit/commalg/test_affine_normalization_facade.py:32 · validation/unit/commalg/test_affine_normalization_facade.py:59

commalg.AffineNormalization.nonnormal_locus

Return the nonnormal locus recorded by this AffineNormalization.

Detailed contract

Ideal defining the source nonnormal locus.

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

noether::commalg::AffineNormalization::nonnormal_locus · Direct Rust declaration

pub fn nonnormal_locus(&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/AffineNormalization@1

Executable usage: validation/unit/commalg/test_affine_normalization_facade.py:193 · validation/unit/commalg/test_affine_normalization_facade.py:38

commalg.AffineNormalization.normal_algebra

Return the normal algebra recorded by this AffineNormalization.

Detailed contract

Integral closure B in the source fraction field.

(self) -> QuotientRing[C]

noether::commalg::AffineNormalization::normal_algebra · Direct Rust declaration

pub fn normal_algebra(&self) -> &QuotientRing<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/AffineNormalization@1

Executable usage: examples/36_affine_normalization.py:16 · validation/unit/commalg/test_affine_normalization_facade.py:100 · validation/unit/commalg/test_affine_normalization_facade.py:107 · validation/unit/commalg/test_affine_normalization_facade.py:108 · validation/unit/commalg/test_affine_normalization_facade.py:163 · validation/unit/commalg/test_affine_normalization_facade.py:25

commalg.AffineNormalization.normal_conductor

Return the normal conductor recorded by this AffineNormalization.

Detailed contract

Conductor ideal in the normal polynomial presentation.

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

noether::commalg::AffineNormalization::normal_conductor · Direct Rust declaration

pub fn normal_conductor(&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/AffineNormalization@1

Executable usage: validation/unit/commalg/test_affine_normalization_facade.py:39 · validation/unit/commalg/test_affine_normalization_facade.py:71

commalg.AffineNormalization.normal_jacobian_minors

Return the normal jacobian minors recorded by this AffineNormalization.

Detailed contract

Expected-codimension Jacobian minors proving a supplied target smooth.

(self) -> list[Polynomial[C]]

noether::commalg::AffineNormalization::normal_jacobian_minors · Direct Rust declaration

pub fn normal_jacobian_minors(&self) -> &[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/AffineNormalization@1

Executable usage: validation/unit/commalg/test_affine_normalization_facade.py:166

commalg.AffineNormalization.normal_prime

Return the normal prime recorded by this AffineNormalization.

Detailed contract

Prime certificate for a non-polynomial normal target model.

(self) -> PolynomialPrimeCertificate[C] | None

noether::commalg::AffineNormalization::normal_prime · Direct Rust declaration

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

Executable usage: validation/unit/commalg/test_affine_normalization_facade.py:164 · validation/unit/commalg/test_affine_normalization_facade.py:165

commalg.AffineNormalization.normal_singular_locus

Return the normal singular locus recorded by this AffineNormalization.

Detailed contract

Empty singular-locus ideal of a supplied smooth target model.

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

noether::commalg::AffineNormalization::normal_singular_locus · Direct Rust declaration

pub fn normal_singular_locus(&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/AffineNormalization@1

Executable usage: validation/unit/commalg/test_affine_normalization_facade.py:167

commalg.AffineNormalization.proof_kind

Return the proof kind recorded by this AffineNormalization.

Detailed contract

Canonical name of the exact discovery/proof route.

(self) -> str

noether::commalg::AffineNormalization::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/AffineNormalization@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.AffineNormalization.source

Return the source recorded by this AffineNormalization.

Detailed contract

Defining prime ideal of the source affine domain.

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

noether::commalg::AffineNormalization::source · Direct Rust declaration

pub fn source(&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/AffineNormalization@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.AffineNormalization.source_algebra

Return the source algebra recorded by this AffineNormalization.

Detailed contract

Source coordinate algebra A.

(self) -> QuotientRing[C]

noether::commalg::AffineNormalization::source_algebra · Direct Rust declaration

pub fn source_algebra(&self) -> &QuotientRing<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/AffineNormalization@1

Executable usage: validation/unit/commalg/test_affine_normalization_facade.py:182 · validation/unit/commalg/test_affine_normalization_facade.py:189 · validation/unit/commalg/test_affine_normalization_facade.py:41

commalg.AffineNormalization.source_conductor

Return the source conductor recorded by this AffineNormalization.

Detailed contract

Preimage in the source polynomial presentation of the conductor ideal.

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

noether::commalg::AffineNormalization::source_conductor · Direct Rust declaration

pub fn source_conductor(&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/AffineNormalization@1

Executable usage: examples/36_affine_normalization.py:19 · validation/unit/commalg/test_affine_normalization_facade.py:103 · validation/unit/commalg/test_affine_normalization_facade.py:111 · validation/unit/commalg/test_affine_normalization_facade.py:168 · validation/unit/commalg/test_affine_normalization_facade.py:192 · validation/unit/commalg/test_affine_normalization_facade.py:193

commalg.AffineNormalization.source_prime

Return the source prime recorded by this AffineNormalization.

Detailed contract

Exact primality evidence for the source ideal.

(self) -> PolynomialPrimeCertificate[C]

noether::commalg::AffineNormalization::source_prime · Direct Rust declaration

pub fn source_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/AffineNormalization@1

Executable usage: validation/unit/commalg/test_affine_normalization_facade.py:126 · validation/unit/commalg/test_affine_normalization_facade.py:30

commalg.AffineNormalization.structure_map

Return the structure map recorded by this AffineNormalization.

Detailed contract

Checked finite birational structure map A -> B.

(self) -> QuotientRingMap[C, C]

noether::commalg::AffineNormalization::structure_map · Direct Rust declaration

pub fn structure_map(&self) -> &AffineNormalizationMap<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/AffineNormalization@1

Executable usage: validation/unit/commalg/test_affine_normalization_facade.py:40

commalg.AffineNormalization.theorem

Return the theorem recorded by this AffineNormalization.

Detailed contract

Exact theorem certified by this value.

(self) -> str

noether::commalg::AffineNormalization::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/AffineNormalization@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.AffineNormalization.to_json

Serialize this AffineNormalization to its canonical typed JSON representation.

Detailed contract

Serialize the complete finite birational map and conductor evidence.

(self) -> str

noether::commalg::AffineNormalization::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/AffineNormalization@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.AffineNormalization.verify

Replay and verify the mathematical evidence carried by this AffineNormalization.

Detailed contract

Replay primality, finiteness, birationality, normality, and conductor evidence.

(self) -> None

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

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