Skip to content

Reduce and specialize an exact rational function

Continuously checked

This is the exact source run by make test-examples and the ordinary Python test gate.

Domains: commalg · root

Source: examples/16_rational_functions.py

# 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

.venv/bin/python examples/16_rational_functions.py