Skip to content

linalg · FrobeniusSemilinearMap

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

Worked example

The complete checked program Apply and multiply canonical sparse exact operators uses this API directly.

# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Apply and multiply canonical sparse exact operators."""

from noether import Z
from noether.linalg import SparseMatrix, Vector


def main() -> None:
    operator = SparseMatrix.from_triplets(
        Z,
        (3, 3),
        [(0, 0, 2), (0, 2, -1), (1, 1, 3), (2, 0, 4)],
    )
    vector = Vector.from_values(Z, [5, 7, 11])
    image = operator.apply(vector)
    assert image.to_values() == [-1, 21, 20]
    assert (operator @ operator).nnz == 4
    print(f"A v = {image.to_values()}; nnz(A^2) = {(operator @ operator).nnz}")


if __name__ == "__main__":
    main()

Run it with .venv/bin/python examples/05_sparse_exact_operators.py.

linalg.FrobeniusSemilinearMap

A map v -> A sigma^r(v) over a fixed-cap unramified p-adic context.

FrobeniusSemilinearMap(matrix: Matrix[_QadicContext], frobenius_exponent: int)

noether::linalg::FrobeniusSemilinearMap · Direct Rust declaration

pub struct FrobeniusSemilinearMap<R: CoefficientFrobeniusContext> { /* 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/FrobeniusSemilinearMap@1

Executable usage: validation/unit/linalg/test_semilinear_facade.py:16 · validation/unit/linalg/test_semilinear_facade.py:17 · validation/unit/linalg/test_semilinear_facade.py:29 · validation/unit/linalg/test_semilinear_facade.py:35 · validation/unit/linalg/test_semilinear_facade.py:50 · validation/unit/linalg/test_semilinear_facade.py:54

linalg.FrobeniusSemilinearMap.__call__

Coerce the supplied input through this context or mathematical map.

(self, vector: Vector[_QadicContext]) -> Vector[_QadicContext]

noether::linalg::FrobeniusSemilinearMap · 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, flint-core, m4rst, m4rst-distributed, m4rste, mzs, pwvla, spar-core, sparla, sparb, lattice-enum
GIL attached / bounded
Semantic ID noether/linalg/FrobeniusSemilinearMap@1

Executable usage: validation/unit/infra/test_discovery.py:57 · validation/unit/infra/test_public_api_index.py:155 · validation/unit/infra/test_public_api_index.py:169

linalg.FrobeniusSemilinearMap.apply

Apply this FrobeniusSemilinearMap to the supplied value.

Detailed contract

Apply v -> A sigma^r(v) after checking context and dimension.

(self, vector: Vector[_QadicContext]) -> Vector[_QadicContext]

noether::linalg::FrobeniusSemilinearMap::apply · Direct Rust declaration

pub fn apply(&self, vector: &Vector<R>) -> Result<Vector<R>, SemilinearMapError>
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/FrobeniusSemilinearMap@1

Executable usage: examples/05_sparse_exact_operators.py:16 · validation/unit/commalg/test_local_algebra.py:94 · validation/unit/commalg/test_local_algebra.py:97 · validation/unit/commalg/test_polynomial_facade.py:199 · validation/unit/commalg/test_quotient_facade.py:186 · validation/unit/groups/test_weight_characters.py:39

linalg.FrobeniusSemilinearMap.apply_block

Compute apply block for this FrobeniusSemilinearMap.

Detailed contract

Apply the semilinear map independently to every column of a dense block.

(self, block: Matrix[_QadicContext]) -> Matrix[_QadicContext]

noether::linalg::FrobeniusSemilinearMap::apply_block · Direct Rust declaration

pub fn apply_block( &self, block: &Matrix<R>, ) -> Result<Matrix<R>, SemilinearMapError>
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/FrobeniusSemilinearMap@1

Executable usage: validation/unit/infra/test_discovery.py:198 · validation/unit/linalg/test_semilinear_facade.py:22 · validation/unit/linalg/test_sparse_matrix_facade.py:113 · validation/unit/linalg/test_sparse_matrix_facade.py:65 · validation/unit/linalg/test_vector_facade.py:54

linalg.FrobeniusSemilinearMap.compose

Compose this FrobeniusSemilinearMap with another compatible map.

Detailed contract

Compose self after inner. If self(v) = A sigma^r(v) and inner(v) = B sigma^s(v), the result is A sigma^r(B) sigma^(r+s)(v).

(self, inner: FrobeniusSemilinearMap[_QadicContext]) -> FrobeniusSemilinearMap[_QadicContext]

noether::linalg::FrobeniusSemilinearMap::compose · Direct Rust declaration

pub fn compose(&self, inner: &Self) -> Result<Self, SemilinearMapError>
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/FrobeniusSemilinearMap@1

Executable usage: validation/unit/commalg/test_context_tower_workload.py:3 · validation/unit/commalg/test_polynomial_facade.py:200 · validation/unit/commalg/test_power_series_facade.py:151 · validation/unit/commalg/test_power_series_facade.py:245 · validation/unit/commalg/test_power_series_facade.py:248 · validation/unit/groups/test_permutation_group_facade.py:41

linalg.FrobeniusSemilinearMap.context

Return the context recorded by this FrobeniusSemilinearMap.

Detailed contract

Exact coefficient context of the source and target modules.

(self) -> _QadicContext

noether::linalg::FrobeniusSemilinearMap::context · Direct Rust declaration

pub fn context(&self) -> &R
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/FrobeniusSemilinearMap@1

Executable usage: validation/unit/commalg/test_acceptance_workload.py:71 · validation/unit/commalg/test_base_change.py:79 · validation/unit/commalg/test_base_change.py:81 · validation/unit/commalg/test_context_tower_workload.py:63 · validation/unit/commalg/test_context_tower_workload.py:64 · validation/unit/commalg/test_kahler_differentials.py:136

linalg.FrobeniusSemilinearMap.frobenius_exponent

Return the frobenius exponent recorded by this FrobeniusSemilinearMap.

Detailed contract

Unreduced nonnegative Frobenius exponent r.

(self) -> int

noether::linalg::FrobeniusSemilinearMap::frobenius_exponent · Direct Rust declaration

pub fn frobenius_exponent(&self) -> u64
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/FrobeniusSemilinearMap@1

Executable usage: validation/unit/linalg/test_semilinear_facade.py:21

linalg.FrobeniusSemilinearMap.from_json

Deserialize and revalidate a FrobeniusSemilinearMap from typed JSON.

Detailed contract

Deserialize and revalidate a semilinear map and its exact context.

(cls, value: str) -> FrobeniusSemilinearMap[_QadicContext]

noether::linalg::FrobeniusSemilinearMap::from_json · Direct Rust declaration

pub fn from_json(value: &str) -> Result<Self, NoetherError>where for<'de> Matrix<R>: Deserialize<'de>,
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/FrobeniusSemilinearMap@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

linalg.FrobeniusSemilinearMap.identity

Construct a FrobeniusSemilinearMap using identity.

Detailed contract

Construct the identity map on a free module of the requested dimension.

(cls, context: _QadicContext, dimension: int) -> FrobeniusSemilinearMap[_QadicContext]

noether::linalg::FrobeniusSemilinearMap::identity · Direct Rust declaration

pub fn identity(context: R, dimension: usize) -> Self
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/FrobeniusSemilinearMap@1

Executable usage: examples/01_bezout_certificates.py:10 · examples/01_bezout_certificates.py:12 · examples/01_bezout_certificates.py:14 · examples/01_bezout_certificates.py:9 · examples/02_ball_arithmetic.py:3 · examples/distributed/f2_linear_algebra.py:20

linalg.FrobeniusSemilinearMap.matrix

Return the matrix recorded by this FrobeniusSemilinearMap.

Detailed contract

Matrix A in the convention v -> A sigma^r(v).

(self) -> Matrix[_QadicContext]

noether::linalg::FrobeniusSemilinearMap::matrix · Direct Rust declaration

pub fn matrix(&self) -> &Matrix<R>
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/FrobeniusSemilinearMap@1

Executable usage: examples/03_exact_linear_systems.py:10 · examples/03_exact_linear_systems.py:12 · examples/03_exact_linear_systems.py:14 · examples/04_smith_normal_form.py:10 · examples/04_smith_normal_form.py:11 · examples/29_integral_line_configurations.py:28

linalg.FrobeniusSemilinearMap.restrict_scalars

Compute restrict scalars for this FrobeniusSemilinearMap.

Detailed contract

Restrict this semilinear map to an ordinary Z_p-linear matrix. Module coordinates are flattened in module-major order, with each q-adic coordinate expanded in ascending power-basis order. Restrict this semilinear map to an ordinary Q_p-linear matrix. Module coordinates are flattened in module-major order, with each q-adic coordinate expanded in ascending power-basis order.

(self: FrobeniusSemilinearMap[QadicRing]) -> Matrix[PadicRing]
(self: FrobeniusSemilinearMap[QadicField]) -> Matrix[PadicField]

noether::linalg::FrobeniusSemilinearMap::restrict_scalars · Direct Rust declaration

pub fn restrict_scalars(&self) -> Result<Matrix<PadicRing>, SemilinearMapError>
pub fn restrict_scalars(&self) -> Result<Matrix<PadicField>, SemilinearMapError>
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/FrobeniusSemilinearMap@1

Executable usage: validation/unit/linalg/test_semilinear_facade.py:38 · validation/unit/linalg/test_semilinear_facade.py:51

linalg.FrobeniusSemilinearMap.source_dimension

Return the source dimension recorded by this FrobeniusSemilinearMap.

Detailed contract

Dimension of the source free module.

(self) -> int

noether::linalg::FrobeniusSemilinearMap::source_dimension · Direct Rust declaration

pub fn source_dimension(&self) -> usize
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/FrobeniusSemilinearMap@1

Executable usage: validation/corpus/homalg/transverse-cone-cohomology.py:11 · validation/corpus/homalg/transverse-cone-cohomology.py:15

linalg.FrobeniusSemilinearMap.target_dimension

Return the target dimension recorded by this FrobeniusSemilinearMap.

Detailed contract

Dimension of the target free module.

(self) -> int

noether::linalg::FrobeniusSemilinearMap::target_dimension · Direct Rust declaration

pub fn target_dimension(&self) -> usize
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/FrobeniusSemilinearMap@1

Executable usage: validation/corpus/homalg/transverse-cone-cohomology.py:12 · validation/corpus/homalg/transverse-cone-cohomology.py:15

linalg.FrobeniusSemilinearMap.to_json

Serialize this FrobeniusSemilinearMap to its canonical typed JSON representation.

Detailed contract

Serialize the complete context, matrix, and Frobenius exponent.

(self) -> str

noether::linalg::FrobeniusSemilinearMap::to_json · Direct Rust declaration

pub fn to_json(&self) -> Result<String, NoetherError>where Matrix<R>: Serialize,
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/FrobeniusSemilinearMap@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

linalg.FrobeniusSemilinearMap.verify

Replay and verify the mathematical evidence carried by this FrobeniusSemilinearMap.

Detailed contract

Recheck the matrix context and dimensions defining this map.

(self) -> None

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

pub fn verify(&self) -> Result<(), VerificationError>
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/FrobeniusSemilinearMap@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