Skip to content

topology · StrongCoreReduction

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

Worked example

The complete checked program Reduce a finite Poset and its order complex with replayable evidence uses this API directly.

# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Reduce a finite Poset and its order complex with replayable evidence."""

from noether import Z
from noether.combin import Poset


def main() -> None:
    chain = Poset(4, [(0, 1), (1, 2), (2, 3)])
    core = chain.core()
    core.verify(chain)
    assert core.core.order == 1

    order_complex = chain.order_complex()
    morse = order_complex.morse_reduction(Z)
    morse.verify()
    assert sum(morse.critical_cells) == 1
    assert morse.reduced.homology_invariants(0).free_rank == 1
    print(
        f"Poset order {chain.order} -> core order {core.core.order}; "
        f"Morse cells {morse.original_cells} -> {morse.critical_cells}"
    )


if __name__ == "__main__":
    main()

Run it with .venv/bin/python examples/32_poset_core_and_morse.py.

topology.StrongCoreReduction

A verified reduction of a finite complex to its strong-homotopy core.

class StrongCoreReduction

noether::topology::StrongCoreReduction · Direct Rust declaration

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

Executable usage: validation/unit/topology/test_simplicial_complex_facade.py:26 · validation/unit/topology/test_simplicial_complex_facade.py:82 · validation/unit/topology/test_simplicial_complex_facade.py:88

topology.StrongCoreReduction.core

Return the core recorded by this StrongCoreReduction.

Detailed contract

Canonically relabeled strong-homotopy core.

(self) -> SimplicialComplex

noether::topology::StrongCoreReduction::core · Direct Rust declaration

pub fn core(&self) -> &SimplicialComplex
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/StrongCoreReduction@1

Executable usage: examples/32_poset_core_and_morse.py:11 · examples/32_poset_core_and_morse.py:12 · examples/32_poset_core_and_morse.py:13 · examples/32_poset_core_and_morse.py:21 · validation/unit/combinatorics/test_poset.py:101 · validation/unit/combinatorics/test_poset.py:104

topology.StrongCoreReduction.from_json

Deserialize and revalidate a StrongCoreReduction from typed JSON.

Detailed contract

Deserialize, replay, and revalidate the complete reduction.

(cls, value: str) -> StrongCoreReduction

noether::topology::StrongCoreReduction::from_json · Direct Rust declaration

pub fn from_json(value: &str) -> Result<Self, NoetherError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/StrongCoreReduction@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

topology.StrongCoreReduction.reduced

Return the reduced recorded by this StrongCoreReduction.

Detailed contract

Replayed irreducible complex before final canonical relabeling.

(self) -> SimplicialComplex

noether::topology::StrongCoreReduction::reduced · Direct Rust declaration

pub fn reduced(&self) -> &SimplicialComplex
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/StrongCoreReduction@1

Executable usage: examples/16_rational_functions.py:14 · examples/16_rational_functions.py:15 · examples/16_rational_functions.py:16 · examples/16_rational_functions.py:17 · examples/32_poset_core_and_morse.py:19 · examples/distributed/f2_linear_algebra.py:50

topology.StrongCoreReduction.source

Return the source recorded by this StrongCoreReduction.

Detailed contract

Source complex with its original labels.

(self) -> SimplicialComplex

noether::topology::StrongCoreReduction::source · Direct Rust declaration

pub fn source(&self) -> &SimplicialComplex
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/StrongCoreReduction@1

Executable usage: examples/09_finite_field_isomorphisms.py:11 · examples/09_finite_field_isomorphisms.py:13 · examples/09_finite_field_isomorphisms.py:9 · examples/30_modules_and_resolutions.py:34 · examples/30_modules_and_resolutions.py:37 · validation/unit/category/test_acceptance_workload.py:25

topology.StrongCoreReduction.steps

Return the steps recorded by this StrongCoreReduction.

Detailed contract

Ordered elementary strong collapses.

(self) -> list[DominatedVertex]

noether::topology::StrongCoreReduction::steps · Direct Rust declaration

pub fn steps(&self) -> &[DominatedVertex]
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/StrongCoreReduction@1

Executable usage: validation/unit/groups/test_acceptance_workload.py:69 · validation/unit/groups/test_acceptance_workload.py:70 · validation/unit/groups/test_acceptance_workload.py:71 · validation/unit/topology/test_simplicial_complex_facade.py:84 · validation/corpus/numthy/padic-newton-cube-root.py:3

topology.StrongCoreReduction.to_json

Serialize this StrongCoreReduction to its canonical typed JSON representation.

Detailed contract

Serialize the source and replayable steps; derived complexes are recomputed during deserialization.

(self) -> str

noether::topology::StrongCoreReduction::to_json · Direct Rust declaration

pub fn to_json(&self) -> Result<String, NoetherError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/StrongCoreReduction@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

topology.StrongCoreReduction.verify

Replay and verify the mathematical evidence carried by this StrongCoreReduction.

Detailed contract

Recheck every domination claim, replay every deletion, and recompute the canonical irreducible core.

(self) -> None

noether::topology::StrongCoreReduction::verify · Direct Rust declaration

pub fn verify(&self) -> Result<(), TopologyError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, geom-core, m4rst, m4rste
GIL attached / bounded
Semantic ID noether/topology/StrongCoreReduction@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