Skip to content

Noether

Noether is the deterministic computation layer for scientific mathematics: a typed Python package over a Rust engine and specialized exact-arithmetic kernels.

A complete first calculation

This is not pseudocode. It is the checked source of Compute and verify a Bézout certificate over the integers.

# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Compute and verify a Bézout certificate over the integers."""

from noether import Z


def main() -> None:
    identity = Z.extended_gcd(987_654_321, 123_456_789)
    identity.verify(Z, 987_654_321, 123_456_789)
    assert (
        identity.coefficient_a * 987_654_321 + identity.coefficient_b * 123_456_789 == identity.gcd
    )
    print(identity)


if __name__ == "__main__":
    main()

Start from a mathematical task

Browse by domain

  • category

    117 declarations
    Finite strong Steiner categories, cells, Gray products, mapping categories, and categorical homology presentations.

  • combin

    191 declarations
    Finite graphs, trees, posets, matroids, tableaux, crystals, partitions, and symmetric functions.

  • commalg

    1486 declarations
    Residue, polynomial, rational-function, quotient, and power-series rings together with ideals, schemes, local algebra, and intersection theory.

  • geometry

    51 declarations
    Exact predicates, point clouds, triangulations, Euclidean balls, and exact rational polytopes.

  • groups

    181 declarations
    Permutation groups, actions, conjugacy, characters, representations, and finite-group cohomology entry points.

  • homalg

    638 declarations
    Free and presented modules, exact submodules, chain complexes, homology, resolutions, and algebraic constructions on modules.

  • linalg

    370 declarations
    Dense, sparse, local, and MPI-distributed exact linear algebra, normal forms, solution modules, and lattices.

  • numthy

    573 declarations
    Integer arithmetic, finite and local fields, number fields, orders, ideals, and elliptic curves.

  • root

    148 declarations
    Shared coefficient contexts, exact scalar values, validity, errors, and installed-surface discovery.

  • topology

    302 declarations
    Simplicial objects, filtrations, persistence, homology, cohomology operations, and symbolic Eilenberg–Mac Lane spaces.

For implementation details, open the architecture paper, the transport schemas, or the complete Rust rustdoc.