Skip to content

numthy · Module functions

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

Worked example

The complete checked program Factor an integer and construct a cyclotomic polynomial uses this API directly.

# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Factor an integer and construct a cyclotomic polynomial."""

from noether.numthy import cyclotomic_polynomial, factor, is_prime


def main() -> None:
    integer = 2**20 * 3**7 * 101
    factorization = factor(integer)
    assert factorization.verify(integer)
    assert all(is_prime(prime) for prime, _ in factorization.factors)
    phi = cyclotomic_polynomial(12)
    assert phi.terms() == [([4], 1), ([2], -1), ([0], 1)]
    print(f"{integer} = {factorization}; Phi_12 = {phi}")


if __name__ == "__main__":
    main()

Run it with .venv/bin/python examples/07_integer_factorization.py.

numthy.cyclotomic_polynomial

Return the positive-index cyclotomic polynomial in Z[x].

(index: int) -> Polynomial[IntegerRing]

noether::numthy::cyclotomic_polynomial · Direct Rust declaration

pub fn cyclotomic_polynomial( index: u64, ) -> Result<Polynomial<IntegerRing>, CyclotomicPolynomialError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core
GIL released

Executable usage: examples/07_integer_factorization.py:13 · examples/07_integer_factorization.py:5 · validation/unit/numthy/test_integer_arithmetic_facade.py:13 · validation/unit/numthy/test_integer_arithmetic_facade.py:86 · validation/unit/numthy/test_integer_arithmetic_facade.py:91 · validation/unit/numthy/test_integer_arithmetic_facade.py:94

numthy.factor

Return the complete proved factorization of a nonzero integer.

Detailed contract

Return the complete proved factorization of a nonzero Python integer.

(value: int) -> IntegerFactorization

noether::numthy::factor · Direct Rust declaration

pub fn factor(value: &Integer) -> Result<IntegerFactorization, FactorError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Dispatch / backing flint
GIL released
Evidence IntegerFactorization.verify

Executable usage: examples/07_integer_factorization.py:10 · examples/07_integer_factorization.py:5 · examples/12_number_field_ideals.py:3 · validation/unit/commalg/test_context_tower_workload.py:87 · validation/unit/commalg/test_polynomial_facade.py:120 · validation/unit/commalg/test_polynomial_facade.py:134

Example

from noether.numthy import factor
result = factor(-360)
assert result.factors == [(2, 3), (3, 2), (5, 1)]
assert result.verify(-360)

numthy.is_prime

Test primality with FLINT's deterministic primality prover.

(value: int) -> bool

noether::numthy::is_prime · Direct Rust declaration

pub fn is_prime(value: &Integer) -> bool
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core
GIL released

Executable usage: examples/07_integer_factorization.py:12 · examples/07_integer_factorization.py:5 · validation/unit/infra/test_discovery.py:92 · validation/unit/numthy/test_integer_arithmetic_facade.py:15 · validation/unit/numthy/test_integer_arithmetic_facade.py:55 · validation/unit/numthy/test_integer_arithmetic_facade.py:56

numthy.partial_factor

Return a deterministic partial factorization within explicit work bounds.

Detailed contract

Return deterministic partial factorization within explicit work bounds.

(value: int, *, trial_bound: int=10000, primality_proof_bits: int=256) -> PartialIntegerFactorization

noether::numthy::partial_factor · Direct Rust declaration

pub fn partial_factor( value: &Integer, trial_bound: u64, primality_proof_bits: u64, ) -> Result<PartialIntegerFactorization, PartialFactorError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core
GIL released

Executable usage: validation/unit/infra/test_concurrency.py:119 · validation/unit/infra/test_concurrency.py:18 · validation/unit/infra/test_discovery.py:91 · validation/unit/infra/test_public_api_index.py:254 · validation/unit/numthy/test_integer_arithmetic_facade.py:16 · validation/unit/numthy/test_integer_arithmetic_facade.py:65