topology · EilenbergMacLaneSpace¶
11 accepted declarations. Python and Rust forms, contracts, evidence, failure boundaries, and checked usages are kept together below.
Worked example¶
The complete checked program Compute exact additive and Cartan--Serre invariants of Eilenberg--Mac Lane spaces uses this API directly.
# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Compute exact additive and Cartan--Serre invariants of Eilenberg--Mac Lane spaces."""
from noether.homalg import FinitelyGeneratedAbelianGroup
from noether.numthy import FiniteField
from noether.topology import EilenbergMacLaneSpace
def main() -> None:
integral_space = EilenbergMacLaneSpace(FinitelyGeneratedAbelianGroup(2), 2)
homology = integral_space.integral_homology(6)
homology.verify()
assert [group.free_rank for group in homology.groups] == [1, 0, 2, 0, 3, 0, 4]
modular_space = EilenbergMacLaneSpace(FinitelyGeneratedAbelianGroup(1), 3)
cohomology = modular_space.modular_cohomology_through_degree(FiniteField.prime(2), 16)
cohomology.verify()
assert [generator.degree for generator in cohomology.generators] == [3, 5, 9]
print(
f"K(Z^2,2) ranks={[group.free_rank for group in homology.groups]}; "
f"K(Z,3) mod-two generators="
f"{[generator.display_name for generator in cohomology.generators]}"
)
if __name__ == "__main__":
main()
Run it with .venv/bin/python examples/35_eilenberg_maclane_spaces.py.
topology.EilenbergMacLaneSpace¶
A symbolic Eilenberg--Mac Lane space K(A,n).
noether::topology::EilenbergMacLaneSpace · 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 |
| Semantic ID | noether/topology/EilenbergMacLaneSpace@1 |
Executable usage: examples/35_eilenberg_maclane_spaces.py:11 · examples/35_eilenberg_maclane_spaces.py:16 · examples/35_eilenberg_maclane_spaces.py:7 · validation/unit/infra/test_public_api_index.py:188 · validation/unit/topology/test_eilenberg_maclane.py:109 · validation/unit/topology/test_eilenberg_maclane.py:116
topology.EilenbergMacLaneSpace.delooping_degree¶
Degree containing the sole nonzero homotopy group.
noether::topology::EilenbergMacLaneSpace::delooping_degree · 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 |
| Semantic ID | noether/topology/EilenbergMacLaneSpace@1 |
Executable usage: validation/unit/topology/test_eilenberg_maclane.py:45
topology.EilenbergMacLaneSpace.from_json¶
Deserialize and revalidate a EilenbergMacLaneSpace from typed JSON.
Detailed contract
Deserialize and reverify a symbolic space.
noether::topology::EilenbergMacLaneSpace::from_json · 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 |
| Semantic ID | noether/topology/EilenbergMacLaneSpace@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.EilenbergMacLaneSpace.group¶
The sole nonzero homotopy group.
noether::topology::EilenbergMacLaneSpace::group · 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 |
| Semantic ID | noether/topology/EilenbergMacLaneSpace@1 |
Executable usage: examples/19_permutation_groups.py:13 · examples/19_permutation_groups.py:14 · examples/19_permutation_groups.py:15 · examples/19_permutation_groups.py:16 · examples/19_permutation_groups.py:17 · examples/19_permutation_groups.py:18
topology.EilenbergMacLaneSpace.integral_cohomology¶
Exact additive integral cohomology through an inclusive degree bound.
Detailed contract
Compute additive integral cohomology exactly through max_degree. This applies the integral universal coefficient theorem to the exact homology result retained inside the returned evidence. It computes additive groups only; it makes no cup-product or ring-presentation claim.
noether::topology::EilenbergMacLaneSpace::integral_cohomology · 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 |
| Semantic ID | noether/topology/EilenbergMacLaneSpace@1 |
Executable usage: validation/unit/homalg/test_finite_group_cohomology.py:58 · validation/unit/infra/test_discovery.py:114 · validation/unit/topology/test_eilenberg_maclane.py:54 · validation/unit/topology/test_eilenberg_maclane.py:73
topology.EilenbergMacLaneSpace.integral_cohomology_presentation¶
Complete closed-form integral cohomology-ring presentation.
Detailed contract
Construct a complete integral cohomology-ring presentation when a closed-form native playbook is available. The presentation is a quotient of the free graded-commutative Z-algebra on its ordered generators. The current exact lanes are a point, K(Z^r,1), K(Z^r + C_m,1), K(Z^r + C_m + C_n,1) for m | n, and K(Z^r,2). In particular, square-zero relations for the odd torus classes are explicit: graded commutativity over Z alone would imply only that twice an odd square vanishes. The rank-two torsion formula is Theorem 6.3.1 of C. D. Roberts, The cohomology ring of a finite abelian group (2013).
noether::topology::EilenbergMacLaneSpace::integral_cohomology_presentation · 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 |
| Semantic ID | noether/topology/EilenbergMacLaneSpace@1 |
Executable usage: validation/unit/topology/test_eilenberg_maclane.py:111 · validation/unit/topology/test_eilenberg_maclane.py:118 · validation/unit/topology/test_eilenberg_maclane.py:136 · validation/unit/topology/test_eilenberg_maclane.py:84
topology.EilenbergMacLaneSpace.integral_homology¶
Exact integral homology through an inclusive degree bound.
Detailed contract
Compute integral homology exactly through max_degree. The native first edition covers K(A,1) for every finitely generated abelian group, K(Z^r,2), and the point K(0,n) in every positive degree. Other regimes return a typed unsupported-operation error.
noether::topology::EilenbergMacLaneSpace::integral_homology · 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 |
| Semantic ID | noether/topology/EilenbergMacLaneSpace@1 |
Executable usage: examples/35_eilenberg_maclane_spaces.py:12 · validation/unit/infra/test_public_api_index.py:188 · validation/unit/topology/test_eilenberg_maclane.py:142 · validation/unit/topology/test_eilenberg_maclane.py:144 · validation/unit/topology/test_eilenberg_maclane.py:41 · validation/unit/topology/test_eilenberg_maclane.py:67
topology.EilenbergMacLaneSpace.modular_cohomology¶
Complete closed-form cohomology algebra over a prime field.
Detailed contract
Construct a complete prime-field cohomology presentation when a closed-form native playbook is available. The current exact lanes are K(A,1), K(Z^r,2), and K(0,n). The result includes fundamental/derived generator names and the primary operations on those generators.
noether::topology::EilenbergMacLaneSpace::modular_cohomology · 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 |
| Semantic ID | noether/topology/EilenbergMacLaneSpace@1 |
Executable usage: examples/34_finite_group_cohomology.py:11 · validation/unit/homalg/test_finite_group_cohomology.py:124 · validation/unit/homalg/test_finite_group_cohomology.py:139 · validation/unit/homalg/test_finite_group_cohomology.py:147 · validation/unit/homalg/test_finite_group_cohomology.py:168 · validation/unit/homalg/test_finite_group_cohomology.py:181
topology.EilenbergMacLaneSpace.modular_cohomology_through_degree¶
Cohomology algebra exact through an inclusive degree bound.
Detailed contract
Compute a prime-field cohomology presentation exactly through an inclusive degree bound when a bounded native playbook is available. The bounded Cartan–Serre lanes enumerate admissible squares over F_2 and admissible Bockstein/reduced-power words at odd primes for n >= 2, free abelian summands, and primary cyclic torsion. The finite presentation contains every algebra generator that can affect the requested range and makes no assertion above it.
noether::topology::EilenbergMacLaneSpace::modular_cohomology_through_degree · 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 |
| Semantic ID | noether/topology/EilenbergMacLaneSpace@1 |
Executable usage: examples/35_eilenberg_maclane_spaces.py:17 · validation/unit/topology/test_eilenberg_maclane.py:194 · validation/unit/topology/test_eilenberg_maclane.py:222 · validation/unit/topology/test_eilenberg_maclane.py:228 · validation/unit/topology/test_eilenberg_maclane.py:241 · validation/unit/topology/test_eilenberg_maclane.py:252
topology.EilenbergMacLaneSpace.to_json¶
Serialize this EilenbergMacLaneSpace to its canonical typed JSON representation.
Detailed contract
Serialize the symbolic space as typed JSON.
noether::topology::EilenbergMacLaneSpace::to_json · 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 |
| Semantic ID | noether/topology/EilenbergMacLaneSpace@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.EilenbergMacLaneSpace.verify¶
Replay and verify the mathematical evidence carried by this EilenbergMacLaneSpace.
Detailed contract
Recheck the positive delooping degree and canonical group.
noether::topology::EilenbergMacLaneSpace::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 |
| Semantic ID | noether/topology/EilenbergMacLaneSpace@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