topology · SimplicialMorseReduction¶
7 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.SimplicialMorseReduction¶
Verified critical-cell chain model of a simplicial complex.
noether::topology::SimplicialMorseReduction · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, geom-core, m4rst, m4rste |
| GIL | attached / bounded |
Executable usage: validation/unit/topology/test_simplicial_complex_facade.py:208 · validation/unit/topology/test_simplicial_complex_facade.py:23
topology.SimplicialMorseReduction.critical_cells¶
Number of critical cells in each simplicial dimension.
noether::topology::SimplicialMorseReduction::critical_cells · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, geom-core, m4rst, m4rste |
| GIL | attached / bounded |
Executable usage: examples/32_poset_core_and_morse.py:18 · examples/32_poset_core_and_morse.py:22 · validation/unit/topology/test_simplicial_complex_facade.py:211
topology.SimplicialMorseReduction.matched_pairs¶
Number of matched face/coface pairs.
noether::topology::SimplicialMorseReduction::matched_pairs · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, geom-core, m4rst, m4rste |
| GIL | attached / bounded |
Executable usage: validation/unit/topology/test_simplicial_complex_facade.py:212
topology.SimplicialMorseReduction.original_cells¶
Number of nonempty simplices before reduction.
noether::topology::SimplicialMorseReduction::original_cells · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, geom-core, m4rst, m4rste |
| GIL | attached / bounded |
Executable usage: examples/32_poset_core_and_morse.py:22 · validation/unit/topology/test_simplicial_complex_facade.py:210
topology.SimplicialMorseReduction.reduced¶
Chain complex generated by critical cells.
Detailed contract
Chain complex generated by the critical cells.
noether::topology::SimplicialMorseReduction::reduced · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, geom-core, m4rst, m4rste |
| GIL | attached / bounded |
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.SimplicialMorseReduction.source¶
Source simplicial complex.
noether::topology::SimplicialMorseReduction::source · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, geom-core, m4rst, m4rste |
| GIL | attached / bounded |
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.SimplicialMorseReduction.verify¶
Recheck the acyclic matching and Morse boundary.
Detailed contract
Recheck the matching, its acyclicity order, and the Morse boundary.
noether::topology::SimplicialMorseReduction::verify · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, geom-core, m4rst, m4rste |
| GIL | attached / bounded |
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