Skip to content

linalg · IntegralLineEquivalence

6 accepted declarations. Python and Rust forms, contracts, evidence, failure boundaries, and checked usages are kept together below.

Worked example

The complete checked program Build and verify an isomorphism between two presentations of F_25 uses this API directly.

# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Build and verify an isomorphism between two presentations of F_25."""

from noether.numthy import FiniteField


def main() -> None:
    source = FiniteField.extension(5, 2)
    target = FiniteField.with_modulus(5, [2, 0, 1])
    isomorphism = source.isomorphism_to(target)
    isomorphism.verify()
    value = source.element_from_coefficients([3, 2])
    assert isomorphism.apply_inverse(isomorphism(value)) == value
    print(f"a maps to {isomorphism.generator_image}")


if __name__ == "__main__":
    main()

Run it with .venv/bin/python examples/09_finite_field_isomorphisms.py.

linalg.IntegralLineEquivalence

Verified unimodular equivalence between two line configurations.

class IntegralLineEquivalence

noether::linalg::IntegralLineEquivalence · Direct Rust declaration

pub struct IntegralLineEquivalence { /* private fields */ }
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, m4rst, m4rst-distributed, m4rste, mzs, pwvla, spar-core, sparla, sparb, lattice-enum
GIL attached / bounded
Semantic ID noether/linalg/IntegralLineEquivalence@1

Executable usage: validation/unit/linalg/test_lattice_facade.py:13 · validation/unit/linalg/test_lattice_facade.py:176 · validation/unit/linalg/test_lattice_facade.py:185

linalg.IntegralLineEquivalence.line_permutation

Induced bijection of source-line and target-line indices.

Detailed contract

Induced bijection from source-line indices to target-line indices.

(self) -> Permutation

noether::linalg::IntegralLineEquivalence::line_permutation · Direct Rust declaration

pub fn line_permutation(&self) -> &Permutation
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, m4rst, m4rst-distributed, m4rste, mzs, pwvla, spar-core, sparla, sparb, lattice-enum
GIL attached / bounded
Semantic ID noether/linalg/IntegralLineEquivalence@1

Executable usage: validation/unit/linalg/test_lattice_facade.py:180

linalg.IntegralLineEquivalence.source

Source configuration.

(self) -> IntegralLineConfiguration

noether::linalg::IntegralLineEquivalence::source · Direct Rust declaration

pub fn source(&self) -> &IntegralLineConfiguration
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, m4rst, m4rst-distributed, m4rste, mzs, pwvla, spar-core, sparla, sparb, lattice-enum
GIL attached / bounded
Semantic ID noether/linalg/IntegralLineEquivalence@1

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

linalg.IntegralLineEquivalence.target

Target configuration.

(self) -> IntegralLineConfiguration

noether::linalg::IntegralLineEquivalence::target · Direct Rust declaration

pub fn target(&self) -> &IntegralLineConfiguration
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, m4rst, m4rst-distributed, m4rste, mzs, pwvla, spar-core, sparla, sparb, lattice-enum
GIL attached / bounded
Semantic ID noether/linalg/IntegralLineEquivalence@1

Executable usage: examples/09_finite_field_isomorphisms.py:10 · examples/09_finite_field_isomorphisms.py:11 · examples/30_modules_and_resolutions.py:33 · examples/30_modules_and_resolutions.py:38 · examples/31_local_fields_and_precision.py:27 · examples/36_affine_normalization.py:16

linalg.IntegralLineEquivalence.transformation

Unimodular matrix carrying source to target.

Detailed contract

Unimodular matrix carrying the source to the target.

(self) -> Matrix[IntegerRing]

noether::linalg::IntegralLineEquivalence::transformation · Direct Rust declaration

pub fn transformation(&self) -> &Matrix<IntegerRing>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, m4rst, m4rst-distributed, m4rste, mzs, pwvla, spar-core, sparla, sparb, lattice-enum
GIL attached / bounded
Semantic ID noether/linalg/IntegralLineEquivalence@1

Executable usage: examples/04_smith_normal_form.py:3 · validation/unit/linalg/test_lattice_facade.py:172 · validation/unit/linalg/test_lattice_facade.py:173 · validation/unit/linalg/test_lattice_facade.py:179 · validation/bench/macaulay2_core.py:1372 · validation/corpus/linalg/picard-cremona-transformations.py:20

linalg.IntegralLineEquivalence.verify

Recheck all equivalence evidence exactly.

Detailed contract

Recheck the transformation and its induced line bijection exactly.

(self) -> None

noether::linalg::IntegralLineEquivalence::verify · Direct Rust declaration

pub fn verify(&self) -> Result<(), LineConfigurationError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, m4rst, m4rst-distributed, m4rste, mzs, pwvla, spar-core, sparla, sparb, lattice-enum
GIL attached / bounded
Semantic ID noether/linalg/IntegralLineEquivalence@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