Skip to content

category · CategoricalHomologyPresentation

12 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.

category.CategoricalHomologyPresentation

Exact categorical-homology presentation over the coefficient monoid N.

class CategoricalHomologyPresentation

noether::category::CategoricalHomologyPresentation · Direct Rust declaration

pub struct CategoricalHomologyPresentation { /* private fields */ }
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded

Executable usage: validation/unit/infra/test_discovery.py:181 · validation/unit/infra/test_discovery.py:182 · validation/unit/infra/test_discovery.py:183 · validation/unit/infra/test_discovery.py:184

category.CategoricalHomologyPresentation.basepoint

Return the basepoint recorded by this CategoricalHomologyPresentation.

Detailed contract

Distinguished object for reduced categorical homology, when present.

(self) -> SteinerCell | None

noether::category::CategoricalHomologyPresentation::basepoint · Direct Rust declaration

pub fn basepoint(&self) -> Option<&SteinerCell>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded

category.CategoricalHomologyPresentation.coefficient_monoid

Return the coefficient monoid recorded by this CategoricalHomologyPresentation.

Detailed contract

Stable coefficient monoid name.

(self) -> str

noether::category::CategoricalHomologyPresentation::coefficient_monoid · Direct Rust declaration

pub const fn coefficient_monoid(&self) -> &'static str
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded

category.CategoricalHomologyPresentation.component_poset_slice

Compute component poset slice for this CategoricalHomologyPresentation.

Detailed contract

Finite particle-number slice of the zeroth homotopy Poset. For non-reduced categorical homology this is the particle_number-th symmetric power of pi_0(source). The full zeroth Poset is the coproduct of these slices over all particle numbers. Reduced categorical homology is a filtered colimit in which particle number is not generally preserved, so it deliberately has no such slice API.

(self, particle_number: int) -> CategoricalHomologyComponentSlice

noether::category::CategoricalHomologyPresentation::component_poset_slice · Direct Rust declaration

pub fn component_poset_slice( &self, particle_number: usize, ) -> Result<CategoricalHomologyComponentSlice, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released

Executable usage: examples/28_steiner_categories.py:21 · validation/unit/category/test_category.py:72 · validation/unit/infra/test_discovery.py:182

category.CategoricalHomologyPresentation.fundamental_poset

Compute fundamental poset for this CategoricalHomologyPresentation.

Detailed contract

Fundamental Poset in a fixed finite-particle sector. A morphism between two words in the free symmetric-monoidal category first chooses a permutation matching their particles. Its component Poset is the cartesian product of the corresponding fundamental Posets in the source. This method returns the disjoint union over every permutation sector. Words of different lengths have the empty Poset.

(self, source_word: Sequence[SteinerCell], target_word: Sequence[SteinerCell]) -> Poset

noether::category::CategoricalHomologyPresentation::fundamental_poset · Direct Rust declaration

pub fn fundamental_poset( &self, source_word: &[SteinerCell], target_word: &[SteinerCell], ) -> Result<Poset, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released

Executable usage: validation/unit/category/test_category.py:33 · validation/unit/category/test_category.py:76 · validation/unit/infra/test_discovery.py:183

category.CategoricalHomologyPresentation.infinite_loop_model

Return the infinite loop model recorded by this CategoricalHomologyPresentation.

Detailed contract

Infinite-loop category in which the homotopy Posets are computed.

(self) -> str

noether::category::CategoricalHomologyPresentation::infinite_loop_model · Direct Rust declaration

pub const fn infinite_loop_model(&self) -> &'static str
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded

category.CategoricalHomologyPresentation.is_reduced

Test whether this CategoricalHomologyPresentation is reduced.

Detailed contract

Whether this is the reduced pointed presentation.

(self) -> bool

noether::category::CategoricalHomologyPresentation::is_reduced · Direct Rust declaration

pub fn is_reduced(&self) -> bool
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded

Executable usage: validation/unit/commalg/test_polynomial_ideal_facade.py:105 · validation/unit/commalg/test_polynomial_ideal_facade.py:114 · validation/unit/commalg/test_polynomial_ideal_facade.py:1146 · validation/unit/commalg/test_polynomial_ideal_facade.py:455

category.CategoricalHomologyPresentation.model

Return the model recorded by this CategoricalHomologyPresentation.

Detailed contract

Stable combinatorial model name.

(self) -> str

noether::category::CategoricalHomologyPresentation::model · Direct Rust declaration

pub const fn model(&self) -> &'static str
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded

Executable usage: examples/28_steiner_categories.py:3 · validation/unit/category/test_category.py:36 · validation/unit/category/test_category.py:37 · validation/unit/category/test_category.py:38 · validation/parity/m1_bsgs.py:19 · validation/parity/u1_graph_core.py:20

category.CategoricalHomologyPresentation.particle_homotopy_poset

Compute particle homotopy poset for this CategoricalHomologyPresentation.

Detailed contract

Higher homotopy Poset in one fixed permutation/particle sector. The sector is specified by one source-category oriented basepoint per particle. All factors must have the same homotopy degree. The answer is their cartesian product; varying the first-level permutation gives the other disjoint sectors of the free symmetric-monoidal category.

(self, factors: Sequence[OrientedBasepoint]) -> Poset

noether::category::CategoricalHomologyPresentation::particle_homotopy_poset · Direct Rust declaration

pub fn particle_homotopy_poset( &self, factors: &[OrientedBasepoint], ) -> Result<Poset, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released

Executable usage: validation/unit/infra/test_discovery.py:184

category.CategoricalHomologyPresentation.skeleton

Compute skeleton for this CategoricalHomologyPresentation.

Detailed contract

Materialize the exact finite generator presentation through one degree.

(self, max_degree: int) -> StreetNerveSkeleton

noether::category::CategoricalHomologyPresentation::skeleton · Direct Rust declaration

pub fn skeleton( &self, max_degree: usize, ) -> Result<StreetNerveSkeleton, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released

Executable usage: examples/28_steiner_categories.py:19 · validation/unit/infra/test_discovery.py:181

category.CategoricalHomologyPresentation.source

Return the source recorded by this CategoricalHomologyPresentation.

Detailed contract

Source category.

(self) -> SteinerCategory

noether::category::CategoricalHomologyPresentation::source · Direct Rust declaration

pub fn source(&self) -> &SteinerCategory
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
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

category.CategoricalHomologyPresentation.spectrum_model

Return the spectrum model recorded by this CategoricalHomologyPresentation.

Detailed contract

Stable categorical spectrum represented by this presentation.

(self) -> str

noether::category::CategoricalHomologyPresentation::spectrum_model · Direct Rust declaration

pub const fn spectrum_model(&self) -> &'static str
Contract Value
Guarantee documented numeric bound
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded

Executable usage: validation/unit/category/test_category.py:71