Skip to content

commalg · RationalFunctionField

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

Worked example

The complete checked program Reduce and specialize an exact rational function uses this API directly.

# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Reduce and specialize an exact rational function."""

from fractions import Fraction

from noether import Q
from noether.commalg import RationalFunctionField


def main() -> None:
    functions = RationalFunctionField(Q, "x")
    x = functions.polynomial_ring.generator("x")
    reduced = functions.fraction(x**2 - 1, x - 1)
    assert reduced == functions(x + 1)
    assert (reduced + Fraction(1, 2)).specialize(2) == Fraction(7, 2)
    print(f"(x^2-1)/(x-1) = {reduced}")


if __name__ == "__main__":
    main()

Run it with .venv/bin/python examples/16_rational_functions.py.

commalg.RationalFunctionField

A rational function field over Q or one concrete finite field.

RationalFunctionField(coefficient_ring: C, variable: str)

noether::commalg::RationalFunctionField · Direct Rust declaration

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

Executable usage: examples/16_rational_functions.py:12 · examples/16_rational_functions.py:8 · examples/26_elliptic_descent_functions.py:11 · examples/26_elliptic_descent_functions.py:6 · validation/unit/commalg/test_acceptance_workload.py:17 · validation/unit/commalg/test_acceptance_workload.py:60

commalg.RationalFunctionField.__call__

Coerce a scalar, polynomial, or rational function into this fraction field.

(self, value: RationalFunction[C] | Polynomial[C] | FunctionCoefficient) -> RationalFunction[C]

noether::commalg::RationalFunctionField · Python projection

Python projection convenience over this Rust mathematical type
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/RationalFunctionField@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.RationalFunctionField.coefficient_ring

Return the coefficient ring recorded by this RationalFunctionField.

Detailed contract

Coefficient field.

(self) -> C

noether::commalg::RationalFunctionField::coefficient_ring · Direct Rust declaration

pub fn coefficient_ring(&self) -> &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/RationalFunctionField@1

Executable usage: validation/unit/commalg/test_affine_normalization_facade.py:115 · validation/unit/commalg/test_affine_normalization_facade.py:117 · validation/unit/commalg/test_affine_normalization_facade.py:119 · validation/unit/commalg/test_base_change.py:31 · validation/unit/commalg/test_base_change.py:53 · validation/unit/commalg/test_construction_algebras.py:19

commalg.RationalFunctionField.constant

Compute constant for this RationalFunctionField.

Detailed contract

Embed one coefficient as a constant rational function.

(self, value: FunctionCoefficient) -> RationalFunction[C]

noether::commalg::RationalFunctionField::constant · Direct Rust declaration

pub fn constant( &self, coefficient: R::Element, ) -> Result<RationalFunction<R>, RationalFunctionError>
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/RationalFunctionField@1

Executable usage: validation/unit/commalg/test_curve_facade.py:150 · validation/unit/commalg/test_normalization_facade.py:71 · validation/unit/commalg/test_polynomial_ideal_facade.py:304 · validation/unit/commalg/test_polynomial_ideal_facade.py:409 · validation/unit/commalg/test_polynomial_ideal_facade.py:413 · validation/unit/commalg/test_polynomial_ideal_facade.py:62

commalg.RationalFunctionField.element

Compute element for this RationalFunctionField.

(self, numerator: Polynomial[C] | FunctionCoefficient | RationalFunction[C], denominator: Polynomial[C] | FunctionCoefficient | None=None) -> RationalFunction[C]

noether::commalg::RationalFunctionField · Python projection

Python projection convenience over this Rust mathematical type
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/RationalFunctionField@1

Executable usage: examples/19_permutation_groups.py:17 · examples/19_permutation_groups.py:18 · examples/30_modules_and_resolutions.py:3 · examples/38_exact_linear_systems.py:52 · examples/38_exact_linear_systems.py:56 · examples/38_exact_linear_systems.py:58

commalg.RationalFunctionField.fraction

Compute fraction for this RationalFunctionField.

Detailed contract

Construct and canonically reduce numerator / denominator.

(self, numerator: Polynomial[C] | FunctionCoefficient, denominator: Polynomial[C] | FunctionCoefficient) -> RationalFunction[C]

noether::commalg::RationalFunctionField::fraction · Direct Rust declaration

pub fn fraction( &self, numerator: Polynomial<R>, denominator: Polynomial<R>, ) -> Result<RationalFunction<R>, RationalFunctionError>
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/RationalFunctionField@1

Executable usage: examples/16_rational_functions.py:14 · validation/unit/commalg/test_curve_facade.py:102 · validation/unit/commalg/test_local_algebra.py:42 · validation/unit/commalg/test_local_algebra.py:47 · validation/unit/commalg/test_local_algebra.py:91 · validation/unit/commalg/test_prime_localization.py:23

commalg.RationalFunctionField.from_json

Deserialize and revalidate a supported rational-function field.

Detailed contract

Deserialize and revalidate a rational-function field context.

(cls, value: str) -> RationalFunctionField[FunctionCoefficientRing]

noether::commalg::RationalFunctionField::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, module-core, poly-core, resolution-kernel
GIL attached / bounded
Semantic ID noether/commalg/RationalFunctionField@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.RationalFunctionField.from_polynomial

Construct a RationalFunctionField using polynomial.

Detailed contract

Embed one polynomial from the associated univariate polynomial ring.

(self, value: Polynomial[C]) -> RationalFunction[C]

noether::commalg::RationalFunctionField::from_polynomial · Direct Rust declaration

pub fn from_polynomial( &self, polynomial: Polynomial<R>, ) -> Result<RationalFunction<R>, ContextMismatchError>
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/RationalFunctionField@1

Executable usage: validation/unit/commalg/test_acceptance_workload.py:65 · validation/unit/commalg/test_local_algebra.py:27 · validation/unit/commalg/test_local_algebra.py:54 · validation/unit/commalg/test_local_algebra.py:56 · validation/unit/commalg/test_local_algebra.py:63 · validation/unit/commalg/test_local_algebra.py:79

commalg.RationalFunctionField.generator

Compute generator for this RationalFunctionField.

Detailed contract

Transcendental generator.

(self) -> RationalFunction[C]

noether::commalg::RationalFunctionField::generator · Direct Rust declaration

pub fn generator(&self) -> RationalFunction<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/RationalFunctionField@1

Executable usage: examples/08_finite_field_extensions.py:10 · examples/08_finite_field_extensions.py:11 · examples/08_finite_field_extensions.py:12 · examples/08_finite_field_extensions.py:13 · examples/08_finite_field_extensions.py:14 · examples/10_padic_hensel_lifting.py:12

commalg.RationalFunctionField.induced_map

Extend one checked prime-subfield embedding coefficientwise and map the source generator to the target generator.

Detailed contract

Extend one checked prime-subfield embedding coefficientwise and map the source generator to the target generator.

(self: RationalFunctionField[FiniteField], target: RationalFunctionField[FiniteField], coefficient_map: PrimeSubfieldEmbedding) -> RationalFunctionFieldMap

noether::commalg::RationalFunctionField · Python projection

Python projection convenience over this Rust mathematical type
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/RationalFunctionField@1

Executable usage: validation/unit/commalg/test_quotient_facade.py:100 · validation/unit/commalg/test_quotient_facade.py:113 · validation/unit/commalg/test_quotient_facade.py:86 · validation/unit/commalg/test_rational_function_facade.py:123 · validation/unit/commalg/test_rational_function_facade.py:151 · validation/unit/homalg/test_module_facade.py:316

commalg.RationalFunctionField.inverse

Compute inverse for this RationalFunctionField.

(self, value: RationalFunction[C] | Polynomial[C] | FunctionCoefficient) -> RationalFunction[C]

noether::commalg::RationalFunctionField::inverse · Direct Rust declaration

fn inverse( &self, value: &Self::Element, ) -> Result<Self::Element, InversionError>
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/RationalFunctionField@1

Executable usage: examples/distributed/f2_linear_algebra.py:37 · examples/distributed/f2_linear_algebra.py:39 · validation/unit/commalg/test_context_tower_workload.py:121 · validation/unit/commalg/test_context_tower_workload.py:122 · validation/unit/commalg/test_context_tower_workload.py:75 · validation/unit/commalg/test_context_tower_workload.py:77

commalg.RationalFunctionField.one

Compute one for this RationalFunctionField.

(self) -> RationalFunction[C]

noether::commalg::RationalFunctionField::one · Direct Rust declaration

fn one(&self) -> Self::Element
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/RationalFunctionField@1

Executable usage: examples/02_ball_arithmetic.py:13 · examples/11_qadic_witt_vectors.py:11 · examples/24_homology_and_persistence.py:3 · examples/31_local_fields_and_precision.py:27 · validation/unit/combinatorics/test_poset.py:3 · validation/unit/commalg/test_acceptance_workload.py:37

commalg.RationalFunctionField.polynomial_ring

Return the polynomial ring recorded by this RationalFunctionField.

Detailed contract

Associated univariate polynomial ring.

(self) -> PolynomialRing[C]

noether::commalg::RationalFunctionField::polynomial_ring · Direct Rust declaration

pub fn polynomial_ring(&self) -> &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/RationalFunctionField@1

Executable usage: examples/16_rational_functions.py:13 · validation/unit/commalg/test_acceptance_workload.py:65 · validation/unit/commalg/test_rational_function_facade.py:102 · validation/unit/commalg/test_rational_function_facade.py:24 · validation/unit/commalg/test_rational_function_facade.py:72 · validation/unit/homalg/test_module_facade.py:409

commalg.RationalFunctionField.to_json

Serialize the complete coefficient-field and variable context.

(self) -> str

noether::commalg::RationalFunctionField::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, module-core, poly-core, resolution-kernel
GIL attached / bounded
Semantic ID noether/commalg/RationalFunctionField@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.RationalFunctionField.variable

Return the variable recorded by this RationalFunctionField.

Detailed contract

Name of the transcendental generator.

(self) -> str

noether::commalg::RationalFunctionField::variable · Direct Rust declaration

pub fn variable(&self) -> &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/RationalFunctionField@1

Executable usage: validation/unit/commalg/test_polynomial_facade.py:296 · validation/unit/commalg/test_polynomial_facade.py:473 · validation/unit/commalg/test_polynomial_ideal_facade.py:1094 · validation/unit/commalg/test_rational_function_facade.py:71 · validation/unit/infra/test_macaulay2_benchmark_protocol.py:1006 · validation/unit/infra/test_macaulay2_benchmark_protocol.py:1042

commalg.RationalFunctionField.zero

Compute zero for this RationalFunctionField.

(self) -> RationalFunction[C]

noether::commalg::RationalFunctionField::zero · Direct Rust declaration

fn zero(&self) -> Self::Element
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/RationalFunctionField@1

Executable usage: examples/08_finite_field_extensions.py:11 · examples/10_padic_hensel_lifting.py:15 · examples/40_exterior_algebra.py:26 · examples/distributed/f2_linear_algebra.py:28 · examples/distributed/f2_linear_algebra.py:29 · examples/distributed/f2_linear_algebra.py:30