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.
noether::linalg::FrobeniusSemilinearMap · Direct Rust declaration
| 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.
noether::linalg::FrobeniusSemilinearMap · Python projection
| 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.
noether::linalg::FrobeniusSemilinearMap::apply · Direct Rust declaration
| 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.
noether::linalg::FrobeniusSemilinearMap::apply_block · Direct Rust declaration
| 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).
noether::linalg::FrobeniusSemilinearMap::compose · Direct Rust declaration
| 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.
noether::linalg::FrobeniusSemilinearMap::context · Direct Rust declaration
| 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.
noether::linalg::FrobeniusSemilinearMap::frobenius_exponent · Direct Rust declaration
| 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.
noether::linalg::FrobeniusSemilinearMap::from_json · Direct Rust declaration
| 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.
noether::linalg::FrobeniusSemilinearMap::identity · Direct Rust declaration
| 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).
noether::linalg::FrobeniusSemilinearMap::matrix · Direct Rust declaration
| 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.
noether::linalg::FrobeniusSemilinearMap::restrict_scalars · Direct Rust declaration
| 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.
noether::linalg::FrobeniusSemilinearMap::source_dimension · Direct Rust declaration
| 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.
noether::linalg::FrobeniusSemilinearMap::target_dimension · Direct Rust declaration
| 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.
noether::linalg::FrobeniusSemilinearMap::to_json · Direct Rust declaration
| 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.
noether::linalg::FrobeniusSemilinearMap::verify · Direct Rust declaration
| 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