commalg · CotangentSpace¶
14 accepted declarations. Python and Rust forms, contracts, evidence, failure boundaries, and checked usages are kept together below.
Worked example¶
The complete checked program Compute in an exterior algebra and induce a linear map on two-forms uses this API directly.
# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Compute in an exterior algebra and induce a linear map on two-forms."""
from noether import Q
from noether.commalg import PolynomialRing
from noether.homalg import FreeModule, ModuleElement, ModuleHomomorphism
from noether.linalg import Matrix, Vector
def main() -> None:
ring = PolynomialRing(Q, ["t"])
module = FreeModule(ring, 3, basis_labels=["e0", "e1", "e2"])
exterior = module.exterior_algebra()
e0, e1, e2 = [exterior.generator(position) for position in range(3)]
volume = e0 * e1 * e2
assert volume == exterior.alternating_product(
[
ModuleElement(module, Vector.from_values(ring, [1, 0, 0])),
ModuleElement(module, Vector.from_values(ring, [0, 1, 0])),
ModuleElement(module, Vector.from_values(ring, [0, 0, 1])),
]
)
assert e1 * e0 == -(e0 * e1)
assert e0 * e0 == exterior.zero()
e0_dual = ModuleElement(module.dual(), Vector.from_values(ring, [1, 0, 0]))
assert volume.contract(e0_dual) == e1 * e2
linear_map = ModuleHomomorphism(
module,
module,
Matrix.from_rows(ring, [[1, 1, 0], [0, 1, 0], [0, 0, 2]]),
)
on_two_forms = linear_map.exterior_power(2)
on_two_forms.verify()
assert on_two_forms.apply_exterior(e1 * e2) == 2 * (e0 * e2 + e1 * e2)
print(
"Λ² has basis",
exterior.basis(2),
"and the induced map sends e1∧e2 to",
on_two_forms.apply_exterior(e1 * e2).terms,
)
if __name__ == "__main__":
main()
Run it with .venv/bin/python examples/40_exterior_algebra.py.
commalg.CotangentSpace¶
Exact cotangent fiber at a checked coefficient-field point.
noether::commalg::CotangentSpace · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/CotangentSpace@1 |
Executable usage: validation/unit/commalg/test_kahler_differentials.py:145 · validation/unit/commalg/test_kahler_differentials.py:18 · validation/unit/commalg/test_kahler_differentials.py:44
commalg.CotangentSpace.algebra¶
The affine algebra whose point defines this cotangent fiber.
Detailed contract
Affine algebra whose point is being studied.
noether::commalg::CotangentSpace::algebra · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/CotangentSpace@1 |
Executable usage: examples/40_exterior_algebra.py:3 · examples/distributed/f2_linear_algebra.py:3 · validation/unit/commalg/test_acceptance_workload.py:3 · validation/unit/commalg/test_construction_algebras.py:41 · validation/unit/commalg/test_construction_algebras.py:71 · validation/unit/commalg/test_construction_algebras.py:72
commalg.CotangentSpace.ambient_coordinate_count¶
Number of coordinates in the chosen ambient affine space.
Detailed contract
Number of affine coordinates before imposing differential relations.
noether::commalg::CotangentSpace::ambient_coordinate_count · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/CotangentSpace@1 |
Executable usage: validation/unit/commalg/test_kahler_differentials.py:47
commalg.CotangentSpace.coefficient_field¶
The exact coefficient field of the point and presentation matrix.
noether::commalg::CotangentSpace · Python projection
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/CotangentSpace@1 |
Executable usage: validation/unit/linalg/test_semilinear_facade.py:53 · validation/unit/numthy/test_padic_local_field_facade.py:49 · validation/unit/numthy/test_padic_local_field_facade.py:78 · validation/unit/numthy/test_qadic_field_facade.py:145 · validation/unit/numthy/test_qadic_field_facade.py:146 · validation/unit/numthy/test_qadic_field_facade.py:31
commalg.CotangentSpace.embedding_dimension¶
Dimension of m_p/m_p^2, computed as n - rank(J(p)).
Detailed contract
Exact dimension of the cotangent fiber over the coefficient field.
noether::commalg::CotangentSpace::embedding_dimension · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/CotangentSpace@1 |
Executable usage: examples/39_kahler_differentials.py:24 · examples/39_kahler_differentials.py:25 · examples/39_kahler_differentials.py:36 · validation/unit/commalg/test_kahler_differentials.py:115 · validation/unit/commalg/test_kahler_differentials.py:48 · validation/unit/commalg/test_kahler_differentials.py:72
commalg.CotangentSpace.evaluated_jacobian¶
The exact Jacobian J(p) evaluated at the point.
Detailed contract
Evaluated Jacobian, with equations as rows and variables as columns.
noether::commalg::CotangentSpace::evaluated_jacobian · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/CotangentSpace@1 |
Executable usage: examples/39_kahler_differentials.py:26 · validation/unit/commalg/test_kahler_differentials.py:70 · validation/unit/commalg/test_kahler_differentials.py:85 · validation/unit/commalg/test_kahler_differentials.py:86 · validation/parity/commalg/test_kahler_differentials_sage_parity.py:109 · validation/parity/commalg/test_kahler_differentials_sage_parity.py:131
commalg.CotangentSpace.from_json¶
Deserialize and verify an exact cotangent fiber.
Detailed contract
Deserialize and recheck an explicit point and its cotangent fiber.
noether::commalg::CotangentSpace::from_json · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | released |
| Semantic ID | noether/commalg/CotangentSpace@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
commalg.CotangentSpace.has_embedding_dimension¶
Test an expected embedding dimension without making a smoothness claim.
Detailed contract
Whether the exact cotangent fiber has the supplied embedding dimension. This is only an equality test on the computed vector-space dimension. It does not claim smoothness or regularity: such a conclusion also needs independently established local dimension and the appropriate field hypotheses.
noether::commalg::CotangentSpace::has_embedding_dimension · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/CotangentSpace@1 |
Executable usage: validation/unit/commalg/test_kahler_differentials.py:89 · validation/unit/commalg/test_kahler_differentials.py:90
commalg.CotangentSpace.jacobian_rank¶
Rank of J(p) over the coefficient field.
Detailed contract
Rank of the evaluated Jacobian over the exact coefficient field.
noether::commalg::CotangentSpace::jacobian_rank · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/CotangentSpace@1 |
Executable usage: validation/unit/commalg/test_kahler_differentials.py:46 · validation/bench/magma_release.py:1843
commalg.CotangentSpace.maximal_ideal_generators¶
Return the ambient polynomials x_i - p_i generating the point ideal.
Detailed contract
Generators x_i-a_i of the explicit point’s maximal ideal.
noether::commalg::CotangentSpace::maximal_ideal_generators · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | released |
| Semantic ID | noether/commalg/CotangentSpace@1 |
Executable usage: validation/unit/commalg/test_kahler_differentials.py:73
commalg.CotangentSpace.point¶
Coordinates of the checked field-valued point.
Detailed contract
Explicit point coordinates in polynomial-variable order.
noether::commalg::CotangentSpace::point · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/CotangentSpace@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
commalg.CotangentSpace.presentation_matrix¶
Matrix J(p)^T presenting this fiber as a cokernel over its field.
Detailed contract
Presentation matrix J(p)^T whose cokernel is the cotangent fiber.
noether::commalg::CotangentSpace::presentation_matrix · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/CotangentSpace@1 |
Executable usage: examples/39_kahler_differentials.py:26 · validation/unit/commalg/test_kahler_differentials.py:49 · validation/unit/commalg/test_kahler_differentials.py:71 · validation/bench/macaulay2_core.py:1521 · validation/bench/macaulay2_core.py:1537
commalg.CotangentSpace.to_json¶
Serialize the exact point, Jacobian, and dimension evidence as typed JSON.
Detailed contract
Serialize the algebra and point; deserialization exactly reevaluates the Jacobian, rank, and presentation.
noether::commalg::CotangentSpace::to_json · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | attached / bounded |
| Semantic ID | noether/commalg/CotangentSpace@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
commalg.CotangentSpace.verify¶
Replay point membership, evaluation, rank, and dimension checks.
Detailed contract
Re-evaluate the point and Jacobian and compare the exact presentation.
noether::commalg::CotangentSpace::verify · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel |
| GIL | released |
| Semantic ID | noether/commalg/CotangentSpace@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