Skip to content

geometry · Triangulation

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

Worked example

The complete checked program Compose cells, compute polygraphic homology, and inspect the Street model uses this API directly.

# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Compose cells, compute polygraphic homology, and inspect the Street model."""

from noether.category import AtomId, SteinerCategory


def main() -> None:
    triangle = SteinerCategory.oriental(2)
    first = triangle.atom(AtomId(1, 0))
    second = triangle.atom(AtomId(1, 2))
    long_path = first.compose_at(second, 0)

    assert long_path.top_atoms == [0, 2]
    assert triangle.exact_cell_counts() == [3, 4, 1]
    assert triangle.polygraphic_homology_invariants()[0].free_rank == 1

    categorical = triangle.categorical_homology()
    nerve = categorical.skeleton(2)
    assert nerve.verify()
    assert categorical.component_poset_slice(2).poset.order == 6
    print(
        "2-oriental:",
        f"cells={triangle.exact_cell_counts()}",
        f"Street simplices={nerve.simplex_counts}",
        "stable hPos_0 weight 2 has 6 elements",
    )


if __name__ == "__main__":
    main()

Run it with .venv/bin/python examples/28_steiner_categories.py.

geometry.Triangulation

A Delaunay or regular triangulation backed directly by geom-core.

class Triangulation

noether::geometry::Triangulation · Direct Rust declaration

pub struct Triangulation { /* private fields */ }
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, convex-hull
GIL attached / bounded
Semantic ID noether/geometry/Triangulation@1

Executable usage: validation/unit/geometry/test_acceptance_workload.py:30 · validation/unit/geometry/test_acceptance_workload.py:31 · validation/unit/geometry/test_acceptance_workload.py:9 · validation/unit/geometry/test_geometry_facade.py:56 · validation/unit/geometry/test_geometry_facade.py:57 · validation/unit/geometry/test_geometry_facade.py:67

geometry.Triangulation.cells

Conventional geometry alias for simplices.

Detailed contract

The finite cells, as vertex-index slices. Ghost cells are not reported; they are scaffolding, not geometry.

(self) -> list[list[int]]

noether::geometry::Triangulation::cells · Direct Rust declaration

pub fn cells(&self) -> impl Iterator<Item = &[u32]>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, convex-hull
GIL attached / bounded
Semantic ID noether/geometry/Triangulation@1

Executable usage: examples/28_steiner_categories.py:24 · examples/28_steiner_categories.py:3 · examples/32_poset_core_and_morse.py:22 · validation/unit/geometry/test_geometry_facade.py:60 · validation/bench/macaulay2_affine_normalization.py:636 · validation/bench/macaulay2_affine_normalization.py:637

geometry.Triangulation.circumcentres

Circumcentre and radius of every maximal simplex.

(self) -> list[tuple[list[float], float]]

noether::geometry::Triangulation · 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, geom-core, convex-hull
GIL attached / bounded
Semantic ID noether/geometry/Triangulation@1

Executable usage: validation/unit/geometry/test_acceptance_workload.py:45

geometry.Triangulation.dim

Short dimension alias retained for standard triangulation notation.

Detailed contract

The dimension actually triangulated — the affine rank of the input, which may be less than its coordinate count.

(self) -> int

noether::geometry::Triangulation::dim · Direct Rust declaration

pub fn dim(&self) -> usize
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, convex-hull
GIL attached / bounded
Semantic ID noether/geometry/Triangulation@1

Executable usage: validation/unit/geometry/test_geometry_facade.py:59 · validation/parity/polyhedral/test_convex_hull_parity.py:219 · validation/parity/polyhedral/test_convex_hull_parity.py:226 · validation/parity/polyhedral/test_convex_hull_parity.py:227 · validation/parity/polyhedral/test_convex_hull_parity.py:229 · validation/parity/polyhedral/test_convex_hull_parity.py:230

geometry.Triangulation.dimension

Affine dimension actually triangulated.

(self) -> int

noether::geometry::Triangulation · 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, geom-core, convex-hull
GIL attached / bounded
Semantic ID noether/geometry/Triangulation@1

Executable usage: examples/03_exact_linear_systems.py:15 · examples/03_exact_linear_systems.py:16 · examples/15_groebner_twisted_cubic.py:14 · examples/15_groebner_twisted_cubic.py:28 · examples/27_weight_characters.py:25 · examples/34_finite_group_cohomology.py:13

geometry.Triangulation.from_json

Deserialize by reconstructing the deterministic triangulation.

(value: str) -> Triangulation

noether::geometry::Triangulation · 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, geom-core, convex-hull
GIL attached / bounded
Semantic ID noether/geometry/Triangulation@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

geometry.Triangulation.n_cells

Number of maximal simplices.

Detailed contract

Number of finite cells.

(self) -> int

noether::geometry::Triangulation::n_cells · Direct Rust declaration

pub fn n_cells(&self) -> usize
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, convex-hull
GIL attached / bounded
Semantic ID noether/geometry/Triangulation@1

Executable usage: validation/unit/geometry/test_geometry_facade.py:61 · validation/unit/geometry/test_geometry_facade.py:81 · validation/unit/topology/test_filtration_builders.py:66

geometry.Triangulation.points

Sites in input order.

Detailed contract

The sites, in input order.

(self) -> list[list[float]]

noether::geometry::Triangulation::points · Direct Rust declaration

pub fn points(&self) -> &[Vec<f64>]
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, convex-hull
GIL attached / bounded
Semantic ID noether/geometry/Triangulation@1

Executable usage: examples/18_finite_field_schemes.py:18 · examples/18_finite_field_schemes.py:3 · examples/39_kahler_differentials.py:3 · validation/unit/commalg/test_scheme_facade.py:103 · validation/unit/commalg/test_scheme_facade.py:104 · validation/unit/commalg/test_scheme_facade.py:122

geometry.Triangulation.simplices

Maximal simplices as vertex-index lists, in canonical order.

(self) -> list[list[int]]

noether::geometry::Triangulation · 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, geom-core, convex-hull
GIL attached / bounded
Semantic ID noether/geometry/Triangulation@1

Executable usage: examples/28_steiner_categories.py:25 · validation/unit/geometry/test_acceptance_workload.py:42 · validation/unit/geometry/test_geometry_facade.py:60 · validation/unit/geometry/test_geometry_facade.py:64 · validation/unit/geometry/test_geometry_facade.py:82 · validation/unit/topology/test_persistence_facade.py:60

geometry.Triangulation.to_json

Serialize the checked sites and optional regular weights.

(self) -> str

noether::geometry::Triangulation · 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, geom-core, convex-hull
GIL attached / bounded
Semantic ID noether/geometry/Triangulation@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

geometry.Triangulation.verify

Recompute the deterministic checked construction and compare its value.

Detailed contract

Reconstruct this deterministic triangulation from its defining data.

(self) -> None

noether::geometry::Triangulation::verify · Direct Rust declaration

pub fn verify(&self) -> Result<(), String>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, convex-hull
GIL released
Semantic ID noether/geometry/Triangulation@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

geometry.Triangulation.weighted

Whether this is a regular rather than ordinary Delaunay triangulation.

(self) -> bool

noether::geometry::Triangulation · 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, geom-core, convex-hull
GIL attached / bounded
Semantic ID noether/geometry/Triangulation@1

Executable usage: examples/14_weighted_polynomials.py:18 · examples/17_weighted_power_series.py:3 · validation/unit/combin/test_graph_facade.py:114 · validation/unit/combin/test_graph_facade.py:116 · validation/unit/commalg/test_polynomial_facade.py:309 · validation/unit/commalg/test_polynomial_facade.py:310

geometry.Triangulation.weights

Regular weights, or None for an ordinary Delaunay triangulation.

Detailed contract

Regular-triangulation weights, or None for an ordinary Delaunay triangulation.

(self) -> list[float] | None

noether::geometry::Triangulation::weights · Direct Rust declaration

pub fn weights(&self) -> Option<&[f64]>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, convex-hull
GIL attached / bounded
Semantic ID noether/geometry/Triangulation@1

Executable usage: examples/23_kashiwara_crystals.py:16 · validation/unit/commalg/test_polynomial_facade.py:330 · validation/unit/commalg/test_polynomial_facade.py:435 · validation/unit/commalg/test_power_series_facade.py:111 · validation/unit/commalg/test_power_series_facade.py:115 · validation/unit/commalg/test_power_series_facade.py:221