Skip to content

linalg · IntegralLineAutomorphismGroup

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

Worked example

The complete checked program Certify symmetries, realizations, and completions of integral lines uses this API directly.

# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Certify symmetries, realizations, and completions of integral lines."""

from noether.linalg import IntegralLineConfiguration


def main() -> None:
    axes = IntegralLineConfiguration(2, [[1, 0], [0, 1]])
    symmetries = axes.automorphism_group()
    symmetries.verify()
    assert symmetries.order == 8

    a2_lines = IntegralLineConfiguration(2, [[1, 0], [0, 1], [1, -1]])
    realization = a2_lines.realize_minimum(max_iterations=20)
    realization.verify()
    assert realization.status == "realized"
    assert realization.realization is not None

    completion = axes.complete_minimum(max_iterations=20)
    completion.verify()
    assert completion.status == "completed"
    assert completion.realization is not None

    print(
        "integral lines:",
        f"axis symmetry order={symmetries.order}",
        f"A2 Gram matrix={realization.realization.gram_matrix}",
        f"axis completion={completion.realization.configuration.vectors}",
    )


if __name__ == "__main__":
    main()

Run it with .venv/bin/python examples/29_integral_line_configurations.py.

linalg.IntegralLineAutomorphismGroup

Exact finite stabilizer of a spanning integral-line configuration.

class IntegralLineAutomorphismGroup

noether::linalg::IntegralLineAutomorphismGroup · Direct Rust declaration

pub struct IntegralLineAutomorphismGroup { /* 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/IntegralLineAutomorphismGroup@1

Executable usage: validation/unit/linalg/test_lattice_facade.py:11 · validation/unit/linalg/test_lattice_facade.py:148

linalg.IntegralLineAutomorphismGroup.action_on_line_orbits

Build the simultaneous exact action on tagged external-line orbits.

Detailed contract

Simultaneous exact action on tagged orbits of external primitive lines.

(self, seeds: Sequence[Sequence[int]]) -> IntegralLineOrbitAction

noether::linalg::IntegralLineAutomorphismGroup::action_on_line_orbits · Direct Rust declaration

pub fn action_on_line_orbits( &self, seeds: impl IntoIterator<Item = Vec<Integer>>, ) -> Result<IntegralLineOrbitAction, 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/IntegralLineAutomorphismGroup@1

linalg.IntegralLineAutomorphismGroup.apply_signed_action_to_external_line

Apply a signed stabilizer action to one external primitive line.

Detailed contract

Apply one stabilizer element to an external primitive integral line. The signed action is faithful, so its images on a cached rational basis determine the unique integral matrix. This operation reuses that basis factorization and avoids constructing or verifying an orbit containing every image of the external line.

(self, action: Permutation, line: Sequence[int]) -> tuple[int, ...]

noether::linalg::IntegralLineAutomorphismGroup::apply_signed_action_to_external_line · Direct Rust declaration

pub fn apply_signed_action_to_external_line( &self, action: &Permutation, line: Vec<Integer>, ) -> Result<Vec<Integer>, 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/IntegralLineAutomorphismGroup@1

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

linalg.IntegralLineAutomorphismGroup.configuration

Stabilized integral-line configuration.

Detailed contract

Configuration stabilized by this group.

(self) -> IntegralLineConfiguration

noether::linalg::IntegralLineAutomorphismGroup::configuration · Direct Rust declaration

pub fn configuration(&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/IntegralLineAutomorphismGroup@1

Executable usage: examples/29_integral_line_configurations.py:29 · validation/unit/linalg/test_lattice_facade.py:100 · validation/unit/linalg/test_lattice_facade.py:101 · validation/unit/linalg/test_lattice_facade.py:102 · validation/unit/linalg/test_lattice_facade.py:103 · validation/unit/linalg/test_lattice_facade.py:106

linalg.IntegralLineAutomorphismGroup.has_orientation_reversing

Whether the stabilizer contains an orientation-reversing element.

Detailed contract

Whether some configuration automorphism reverses the rank-one span.

(self) -> bool

noether::linalg::IntegralLineAutomorphismGroup::has_orientation_reversing · Direct Rust declaration

pub fn has_orientation_reversing(&self) -> bool
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/IntegralLineAutomorphismGroup@1

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

linalg.IntegralLineAutomorphismGroup.lift_signed_action

Lift a signed-action element to its verified unimodular matrix.

Detailed contract

Recover and verify the unique integral matrix inducing a signed action.

(self, action: Permutation) -> Matrix[IntegerRing]

noether::linalg::IntegralLineAutomorphismGroup::lift_signed_action · Direct Rust declaration

pub fn lift_signed_action( &self, action: &Permutation, ) -> Result<Matrix<IntegerRing>, 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/IntegralLineAutomorphismGroup@1

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

linalg.IntegralLineAutomorphismGroup.line_action

Induced permutation group on unoriented lines.

(self) -> PermutationGroup

noether::linalg::IntegralLineAutomorphismGroup::line_action · Direct Rust declaration

pub fn line_action(&self) -> &PermutationGroup
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/IntegralLineAutomorphismGroup@1

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

linalg.IntegralLineAutomorphismGroup.line_stabilizer

Exact subgroup stabilizing one unoriented configuration line.

(self, line_index: int) -> IntegralLineSubgroup

noether::linalg::IntegralLineAutomorphismGroup::line_stabilizer · Direct Rust declaration

pub fn line_stabilizer( &self, line_index: usize, ) -> Result<IntegralLineSubgroup, 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/IntegralLineAutomorphismGroup@1

linalg.IntegralLineAutomorphismGroup.matrix_generators

Unimodular matrix generators acting on column vectors.

(self) -> list[Matrix[IntegerRing]]

noether::linalg::IntegralLineAutomorphismGroup::matrix_generators · Direct Rust declaration

pub fn matrix_generators(&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/IntegralLineAutomorphismGroup@1

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

linalg.IntegralLineAutomorphismGroup.order

Exact group order, including the kernel of the unoriented line action.

Detailed contract

Exact order of the faithful signed-line action.

(self) -> int

noether::linalg::IntegralLineAutomorphismGroup::order · Direct Rust declaration

pub fn order(&self) -> &Integer
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/IntegralLineAutomorphismGroup@1

Executable usage: examples/11_qadic_witt_vectors.py:14 · examples/12_number_field_ideals.py:13 · examples/12_number_field_ideals.py:14 · examples/12_number_field_ideals.py:17 · examples/15_groebner_twisted_cubic.py:18 · examples/19_permutation_groups.py:13

linalg.IntegralLineAutomorphismGroup.orientation_signs

Orientation character on the matrix generators.

Detailed contract

Orientation character on the returned matrix generators.

(self) -> list[int]

noether::linalg::IntegralLineAutomorphismGroup::orientation_signs · Direct Rust declaration

pub fn orientation_signs(&self) -> &[i8]
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/IntegralLineAutomorphismGroup@1

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

linalg.IntegralLineAutomorphismGroup.signed_action

Faithful action on the two signed representatives of each line.

Detailed contract

Faithful induced action on the two signed representatives of each line.

(self) -> PermutationGroup

noether::linalg::IntegralLineAutomorphismGroup::signed_action · Direct Rust declaration

pub fn signed_action(&self) -> &PermutationGroup
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/IntegralLineAutomorphismGroup@1

Executable usage: validation/unit/linalg/test_lattice_facade.py:151 · validation/unit/linalg/test_lattice_facade.py:154

linalg.IntegralLineAutomorphismGroup.verify

Recheck all generator actions and the exact group order.

Detailed contract

Recheck every matrix action, generated group, order, and orientation sign.

(self) -> None

noether::linalg::IntegralLineAutomorphismGroup::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/IntegralLineAutomorphismGroup@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