Skip to content

category · SteinerCategory

41 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.SteinerCategory

Validated finite strong Steiner category.

SteinerCategory(atom_counts: Sequence[int], boundaries: Sequence[Sequence[SignedBoundary]])

noether::category::SteinerCategory · Direct Rust declaration

pub struct SteinerCategory { /* private fields */ }
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded
Semantic ID noether/category/SteinerCategory@1

Executable usage: examples/28_steiner_categories.py:5 · examples/28_steiner_categories.py:9 · validation/unit/category/test_acceptance_workload.py:20 · validation/unit/category/test_acceptance_workload.py:24 · validation/unit/category/test_acceptance_workload.py:5 · validation/unit/category/test_acceptance_workload.py:9

category.SteinerCategory.__eq__

Test mathematical equality with another value.

(self, other: object) -> bool

noether::category::SteinerCategory · 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
GIL attached / bounded
Semantic ID noether/category/SteinerCategory@1

category.SteinerCategory.atom

Compute atom for this SteinerCategory.

Detailed contract

Return one atomic cell.

(self, atom: AtomId) -> SteinerCell

noether::category::SteinerCategory::atom · Direct Rust declaration

pub fn atom(&self, atom: AtomId) -> Result<SteinerCell, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded
Semantic ID noether/category/SteinerCategory@1

Executable usage: examples/28_steiner_categories.py:10 · examples/28_steiner_categories.py:11 · validation/unit/category/test_acceptance_workload.py:10 · validation/unit/category/test_acceptance_workload.py:11 · validation/unit/category/test_acceptance_workload.py:25 · validation/unit/category/test_acceptance_workload.py:26

category.SteinerCategory.atom_count

Return the atom count recorded by this SteinerCategory.

Detailed contract

Total number of atoms.

(self) -> int

noether::category::SteinerCategory::atom_count · Direct Rust declaration

pub fn atom_count(&self) -> usize
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded
Semantic ID noether/category/SteinerCategory@1

category.SteinerCategory.atom_count_in_degree

Compute atom count in degree for this SteinerCategory.

Detailed contract

Number of atoms in one degree; zero beyond the stored complex.

(self, degree: int) -> int

noether::category::SteinerCategory::atom_count_in_degree · Direct Rust declaration

pub fn atom_count_in_degree(&self, degree: usize) -> usize
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded
Semantic ID noether/category/SteinerCategory@1

category.SteinerCategory.atom_counts

Return the atom counts recorded by this SteinerCategory.

Detailed contract

Numbers of atoms in each stored degree.

(self) -> list[int]

noether::category::SteinerCategory::atom_counts · Direct Rust declaration

pub fn atom_counts(&self) -> &[usize]
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded
Semantic ID noether/category/SteinerCategory@1

Executable usage: validation/unit/category/test_acceptance_workload.py:22 · validation/unit/category/test_category.py:19

category.SteinerCategory.automorphism_group

Compute automorphism group for this SteinerCategory.

Detailed contract

Complete automorphism group acting on flattened atomic ids.

(self) -> PermutationGroup

noether::category::SteinerCategory::automorphism_group · Direct Rust declaration

pub fn automorphism_group(&self) -> Result<PermutationGroup, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@1

Executable usage: examples/21_graph_symmetry.py:16 · examples/21_graph_symmetry.py:18 · examples/29_integral_line_configurations.py:10 · validation/unit/category/test_category.py:55 · validation/unit/combin/test_acceptance_workload.py:31 · validation/unit/combin/test_graph_facade.py:91

category.SteinerCategory.boundary

Compute boundary for this SteinerCategory.

Detailed contract

Signed boundary of one atom.

(self, atom: AtomId) -> SignedBoundary

noether::category::SteinerCategory::boundary · Direct Rust declaration

pub fn boundary(&self, atom: AtomId) -> Result<&SignedBoundary, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded
Semantic ID noether/category/SteinerCategory@1

Executable usage: validation/unit/commalg/test_kahler_differentials.py:3 · validation/unit/conftest.py:5 · validation/unit/homalg/test_chain_complex.py:116 · validation/unit/homalg/test_chain_complex.py:117 · validation/unit/homalg/test_chain_complex.py:185 · validation/unit/homalg/test_chain_complex.py:186

category.SteinerCategory.canonical_form

Compute canonical form for this SteinerCategory.

Detailed contract

Canonical representative under degree-preserving atom permutations.

(self) -> SteinerCategory

noether::category::SteinerCategory::canonical_form · Direct Rust declaration

pub fn canonical_form(&self) -> Result<Self, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@1

Executable usage: validation/unit/category/test_category.py:38 · validation/unit/combin/test_acceptance_workload.py:27 · validation/unit/combin/test_acceptance_workload.py:29 · validation/unit/infra/test_discovery.py:122 · validation/unit/infra/test_discovery.py:125 · validation/unit/infra/test_discovery.py:56

category.SteinerCategory.canonical_label

Compute canonical label for this SteinerCategory.

Detailed contract

Exact canonical labeling and complete atomic automorphism group.

(self) -> SteinerCanonicalLabel

noether::category::SteinerCategory::canonical_label · Direct Rust declaration

pub fn canonical_label(&self) -> Result<SteinerCanonicalLabel, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@1

Executable usage: examples/21_graph_symmetry.py:14 · validation/unit/category/test_category.py:16 · validation/unit/category/test_category.py:17 · validation/unit/combin/test_graph_facade.py:84 · validation/unit/combin/test_graph_facade.py:85 · validation/unit/combinatorics/test_poset.py:106

category.SteinerCategory.categorical_homology

Compute categorical homology for this SteinerCategory.

Detailed contract

Exact lazy presentation of categorical homology with coefficients in N.

(self) -> CategoricalHomologyPresentation

noether::category::SteinerCategory::categorical_homology · Direct Rust declaration

pub fn categorical_homology(&self) -> CategoricalHomologyPresentation
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@1

Executable usage: examples/28_steiner_categories.py:18 · validation/unit/category/test_category.py:70 · validation/unit/category/test_category.py:76

category.SteinerCategory.cell

Compute cell for this SteinerCategory.

Detailed contract

Construct the unwhiskered cell generated by a nonempty top atomic chain.

(self, dimension: int, top_atoms: Sequence[int]) -> SteinerCell

noether::category::SteinerCategory::cell · Direct Rust declaration

pub fn cell( &self, dimension: usize, top_atoms: &[usize], ) -> Result<SteinerCell, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded
Semantic ID noether/category/SteinerCategory@1

Executable usage: validation/unit/category/test_category.py:24 · validation/unit/category/test_category.py:26 · validation/unit/category/test_category.py:27 · validation/unit/category/test_category.py:29 · validation/parity/combinatorics/test_tree_core_parity.py:13 · validation/parity/combinatorics/test_tree_pyo3.py:16

category.SteinerCategory.cell_from_supports

Compute cell from supports for this SteinerCategory.

Detailed contract

Reconstruct a cell from its complete Steiner double sequence. Unlike Self::cell, this retains common lower-dimensional support and therefore represents whiskered cells faithfully. Each support must be a sorted degree-local subset. The two sequences are checked against all boundary, augmentation, and top-chain equations before the cell is returned.

(self, negative_supports: Sequence[Sequence[int]], positive_supports: Sequence[Sequence[int]]) -> SteinerCell

noether::category::SteinerCategory::cell_from_supports · Direct Rust declaration

pub fn cell_from_supports( &self, negative_supports: Vec<Vec<usize>>, positive_supports: Vec<Vec<usize>>, ) -> Result<SteinerCell, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded
Semantic ID noether/category/SteinerCategory@1

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

category.SteinerCategory.cells

Compute cells for this SteinerCategory.

Detailed contract

Enumerate all cells at one dimension, including iterated identities.

(self, dimension: int) -> list[SteinerCell]

noether::category::SteinerCategory::cells · Direct Rust declaration

pub fn cells(&self, dimension: usize) -> Result<Vec<SteinerCell>, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@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

category.SteinerCategory.component_poset

Compute component poset for this SteinerCategory.

Detailed contract

Gepner–Heine Poset of components. Its elements are the objects of this strong Steiner category, ordered by the existence of a 1-cell.

(self) -> Poset

noether::category::SteinerCategory::component_poset · Direct Rust declaration

pub fn component_poset(&self) -> Result<Poset, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@1

Executable usage: validation/unit/category/test_acceptance_workload.py:28 · validation/unit/infra/test_discovery.py:187

category.SteinerCategory.cube

Construct a SteinerCategory using cube.

Detailed contract

The directed dimension-cube, formed by repeated Gray tensor product.

(dimension: int) -> SteinerCategory

noether::category::SteinerCategory::cube · Direct Rust declaration

pub fn cube(dimension: usize) -> Result<Self, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded
Semantic ID noether/category/SteinerCategory@1

Executable usage: validation/unit/homalg/test_module_facade.py:336 · validation/unit/homalg/test_module_facade.py:338 · validation/unit/homalg/test_module_facade.py:343 · validation/unit/homalg/test_module_facade.py:345 · validation/unit/homalg/test_module_facade.py:348 · validation/parity/polyhedral/test_convex_hull_parity.py:14

category.SteinerCategory.dimension

Return the dimension recorded by this SteinerCategory.

Detailed contract

Largest degree containing an atom, or -1 for the empty category.

(self) -> int

noether::category::SteinerCategory::dimension · Direct Rust declaration

pub fn dimension(&self) -> i64
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded
Semantic ID noether/category/SteinerCategory@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

category.SteinerCategory.disjoint_union

Compute disjoint union for this SteinerCategory.

Detailed contract

Coproduct (disjoint union) of two finite strong Steiner categories.

(self, other: SteinerCategory) -> SteinerCategory

noether::category::SteinerCategory::disjoint_union · Direct Rust declaration

pub fn disjoint_union(&self, other: &Self) -> Result<Self, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded
Semantic ID noether/category/SteinerCategory@1

Executable usage: validation/unit/category/test_category.py:51 · validation/unit/category/test_category.py:53

category.SteinerCategory.dual

Compute dual for this SteinerCategory.

Detailed contract

Reverse the selected globular dimensions. A selected positive degree negates that differential, equivalently interchanging the negative and positive atomic boundary supports. The entries must be distinct positive dimensions present in the category. The result is returned only when this same atomic basis remains strong and loop-free; a strict categorical dual can exist outside that presentation class.

(self, dimensions: Sequence[int]) -> SteinerCategory

noether::category::SteinerCategory::dual · Direct Rust declaration

pub fn dual(&self, dimensions: &[usize]) -> Result<Self, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@1

Executable usage: examples/40_exterior_algebra.py:28 · validation/unit/category/test_category.py:18 · validation/unit/groups/test_weight_characters.py:47 · validation/unit/homalg/test_exterior_algebra.py:123 · validation/unit/homalg/test_exterior_algebra.py:124 · validation/unit/homalg/test_exterior_algebra.py:125

category.SteinerCategory.empty

Construct a SteinerCategory using empty.

Detailed contract

The empty strict omega-category.

() -> SteinerCategory

noether::category::SteinerCategory::empty · Direct Rust declaration

pub fn empty() -> Self
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded
Semantic ID noether/category/SteinerCategory@1

Executable usage: validation/unit/category/test_category.py:49 · validation/unit/category/test_category.py:52 · validation/unit/category/test_category.py:53 · validation/unit/combinatorics/test_matroid.py:74 · validation/unit/combinatorics/test_matroid.py:75 · validation/unit/combinatorics/test_matroid.py:76

category.SteinerCategory.exact_cell_counts

Compute exact cell counts for this SteinerCategory.

Detailed contract

Exact-dimensional nonidentity cell counts.

(self) -> list[int]

noether::category::SteinerCategory::exact_cell_counts · Direct Rust declaration

pub fn exact_cell_counts(&self) -> Result<Vec<usize>, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@1

Executable usage: examples/28_steiner_categories.py:15 · examples/28_steiner_categories.py:24 · validation/unit/category/test_acceptance_workload.py:14 · validation/unit/category/test_category.py:54 · validation/unit/infra/test_discovery.py:189

category.SteinerCategory.exact_cells

Compute exact cells for this SteinerCategory.

Detailed contract

Enumerate exact-dimensional nonidentity cells in one degree.

(self, dimension: int) -> list[SteinerCell]

noether::category::SteinerCategory::exact_cells · Direct Rust declaration

pub fn exact_cells( &self, dimension: usize, ) -> Result<Vec<SteinerCell>, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@1

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

category.SteinerCategory.from_json

Deserialize and revalidate a SteinerCategory from typed JSON.

(value: str) -> SteinerCategory

noether::category::SteinerCategory · 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
GIL attached / bounded
Semantic ID noether/category/SteinerCategory@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

category.SteinerCategory.fundamental_poset

Compute fundamental poset for this SteinerCategory.

Detailed contract

Gepner–Heine fundamental Poset at an ordered pair of objects. This uses the strong-Steiner description by directed atomic paths and atomic 2-cell relations, avoiding the generic iterated-boundary filter.

(self, source: SteinerCell, target: SteinerCell) -> Poset

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

pub fn fundamental_poset( &self, source: &SteinerCell, target: &SteinerCell, ) -> Result<Poset, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@1

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

category.SteinerCategory.globe

Construct a SteinerCategory using globe.

Detailed contract

The walking dimension-cell.

(dimension: int) -> SteinerCategory

noether::category::SteinerCategory::globe · Direct Rust declaration

pub fn globe(dimension: usize) -> Result<Self, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded
Semantic ID noether/category/SteinerCategory@1

Executable usage: validation/unit/category/test_acceptance_workload.py:20 · validation/unit/category/test_category.py:38 · validation/unit/category/test_category.py:65 · validation/unit/category/test_category.py:69

category.SteinerCategory.gray_tensor

Compute gray tensor for this SteinerCategory.

Detailed contract

Non-symmetric Gray tensor product.

(self, other: SteinerCategory) -> SteinerCategory

noether::category::SteinerCategory::gray_tensor · Direct Rust declaration

pub fn gray_tensor(&self, other: &Self) -> Result<Self, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@1

Executable usage: validation/unit/category/test_acceptance_workload.py:21

category.SteinerCategory.homotopy_poset

Compute homotopy poset for this SteinerCategory.

Detailed contract

Compute the Gepner–Heine homotopy Poset at a valid basepoint.

(self, basepoint: OrientedBasepoint) -> Poset

noether::category::SteinerCategory::homotopy_poset · Direct Rust declaration

pub fn homotopy_poset( &self, basepoint: &OrientedBasepoint, ) -> Result<Poset, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@1

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

category.SteinerCategory.is_isomorphic

Test whether this SteinerCategory is isomorphic.

Detailed contract

Whether two categories are strictly isomorphic.

(self, other: SteinerCategory) -> bool

noether::category::SteinerCategory::is_isomorphic · Direct Rust declaration

pub fn is_isomorphic(&self, other: &Self) -> Result<bool, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@1

category.SteinerCategory.mapping_category

Compute mapping category for this SteinerCategory.

Detailed contract

Mapping omega-category between two objects.

(self, source: SteinerCell, target: SteinerCell) -> FiniteOmegaCategory

noether::category::SteinerCategory::mapping_category · Direct Rust declaration

pub fn mapping_category( &self, source: &SteinerCell, target: &SteinerCell, ) -> Result<FiniteOmegaCategory, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@1

Executable usage: validation/unit/category/test_acceptance_workload.py:27 · validation/unit/category/test_category.py:35 · validation/unit/infra/test_discovery.py:186

category.SteinerCategory.monomorphic_oriented_basepoints

Compute monomorphic oriented basepoints for this SteinerCategory.

Detailed contract

Enumerate monomorphic oriented basepoints of one dimension.

(self, dimension: int) -> list[OrientedBasepoint]

noether::category::SteinerCategory::monomorphic_oriented_basepoints · Direct Rust declaration

pub fn monomorphic_oriented_basepoints( &self, dimension: usize, ) -> Result<Vec<OrientedBasepoint>, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@1

category.SteinerCategory.oriental

Construct the Street oriental of the requested dimension.

Detailed contract

Street’s oriented dimension-simplex.

(dimension: int) -> SteinerCategory

noether::category::SteinerCategory::oriental · Direct Rust declaration

pub fn oriental(dimension: usize) -> Result<Self, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Dispatch / backing noether
GIL attached / bounded
Semantic ID noether/category/SteinerCategory@1
Evidence SteinerCategory.verify
Failures dimension exceeds the bounded construction limit

Executable usage: examples/28_steiner_categories.py:23 · examples/28_steiner_categories.py:9 · validation/unit/category/test_acceptance_workload.py:24 · validation/unit/category/test_acceptance_workload.py:9 · validation/unit/category/test_category.py:13 · validation/unit/category/test_category.py:23

category.SteinerCategory.point

Construct a SteinerCategory using point.

Detailed contract

The terminal zero-category.

() -> SteinerCategory

noether::category::SteinerCategory::point · Direct Rust declaration

pub fn point() -> Self
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded
Semantic ID noether/category/SteinerCategory@1

Executable usage: examples/26_elliptic_descent_functions.py:17 · examples/26_elliptic_descent_functions.py:18 · examples/26_elliptic_descent_functions.py:20 · examples/26_elliptic_descent_functions.py:25 · examples/26_elliptic_descent_functions.py:31 · examples/26_elliptic_descent_functions.py:32

Example

from noether.category import SteinerCategory
point = SteinerCategory.point()
assert point.dimension == 0
assert point.atom_counts == [1]
point.verify()

category.SteinerCategory.polygraphic_homology

Compute polygraphic homology for this SteinerCategory.

Detailed contract

Integral polygraphic homology with source-retaining witnesses.

(self) -> GradedHomology[IntegerRing]

noether::category::SteinerCategory::polygraphic_homology · Direct Rust declaration

pub fn polygraphic_homology( &self, ) -> Result<GradedHomology<IntegerRing>, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@1

category.SteinerCategory.polygraphic_homology_invariants

Compute polygraphic homology invariants for this SteinerCategory.

Detailed contract

Lean integral polygraphic homology invariants by degree.

(self) -> dict[int, FinitelyGeneratedAbelianGroup]

noether::category::SteinerCategory::polygraphic_homology_invariants · Direct Rust declaration

pub fn polygraphic_homology_invariants( &self, ) -> Result<BTreeMap<i32, FinitelyGeneratedAbelianGroup>, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@1

Executable usage: examples/28_steiner_categories.py:16 · validation/unit/category/test_acceptance_workload.py:15

category.SteinerCategory.precedence_poset

Compute precedence poset for this SteinerCategory.

Detailed contract

The strong precedence Poset on the flattened atomic basis.

(self) -> Poset

noether::category::SteinerCategory::precedence_poset · Direct Rust declaration

pub fn precedence_poset(&self) -> Result<Poset, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded
Semantic ID noether/category/SteinerCategory@1

category.SteinerCategory.reduced_categorical_homology

Compute reduced categorical homology for this SteinerCategory.

Detailed contract

Reduced categorical homology pointed at one object.

(self, object: SteinerCell) -> CategoricalHomologyPresentation

noether::category::SteinerCategory::reduced_categorical_homology · Direct Rust declaration

pub fn reduced_categorical_homology( &self, object: &SteinerCell, ) -> Result<CategoricalHomologyPresentation, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@1

category.SteinerCategory.street_nerve_skeleton

Compute street nerve skeleton for this SteinerCategory.

Detailed contract

Exact Street-nerve skeleton through max_simplicial_degree.

(self, max_degree: int) -> StreetNerveSkeleton

noether::category::SteinerCategory::street_nerve_skeleton · Direct Rust declaration

pub fn street_nerve_skeleton( &self, max_simplicial_degree: usize, ) -> Result<StreetNerveSkeleton, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@1

Executable usage: validation/unit/category/test_acceptance_workload.py:16

category.SteinerCategory.to_json

Serialize this SteinerCategory to its canonical typed JSON representation.

(self) -> str

noether::category::SteinerCategory · 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
GIL attached / bounded
Semantic ID noether/category/SteinerCategory@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

category.SteinerCategory.truncate

Compute truncate for this SteinerCategory.

Detailed contract

Strict truncation obtained by forgetting all atoms above dimension.

(self, dimension: int) -> SteinerCategory

noether::category::SteinerCategory::truncate · Direct Rust declaration

pub fn truncate(&self, dimension: usize) -> Result<Self, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@1

Executable usage: validation/unit/category/test_category.py:19 · validation/parity/commalg/test_intersection_theory_sage_parity.py:117 · validation/parity/commalg/test_intersection_theory_sage_parity.py:121 · validation/parity/commalg/test_intersection_theory_sage_parity.py:123 · validation/parity/commalg/test_intersection_theory_sage_parity.py:134 · validation/parity/commalg/test_intersection_theory_sage_parity.py:137

category.SteinerCategory.underlying_chain_complex

Compute underlying chain complex for this SteinerCategory.

Detailed contract

Underlying integral atomic chain complex.

(self) -> ChainComplex[IntegerRing]

noether::category::SteinerCategory::underlying_chain_complex · Direct Rust declaration

pub fn underlying_chain_complex( &self, ) -> Result<ChainComplex<IntegerRing>, CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL released
Semantic ID noether/category/SteinerCategory@1

category.SteinerCategory.verify

Replay and verify the mathematical evidence carried by this SteinerCategory.

Detailed contract

Recheck d^2 = 0, unitality, and strong loop-freeness.

(self) -> None

noether::category::SteinerCategory::verify · Direct Rust declaration

pub fn verify(&self) -> Result<(), CategoryError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether
GIL attached / bounded
Semantic ID noether/category/SteinerCategory@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